電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 2611|回復(fù): 2
收起左側(cè)

基于SD卡啟動(dòng)裸機(jī)程序

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-6-24 15:20:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
開(kāi)發(fā)環(huán)境說(shuō)明

表 1
開(kāi)發(fā)板型號(hào)
是否支持本實(shí)驗(yàn)
TLZ7x-EasyEVM
支持
TLZ7xH-EVM
支持

本文以TLZ7x-EasyEVM開(kāi)發(fā)板為例,核心板SoC芯片型號(hào)為XC7Z020,演示使用SD卡啟動(dòng)Zynq裸機(jī)程序的方法。
基于SD卡啟動(dòng)的裸機(jī)程序主要包含兩類(lèi),一是ARM(PS端)+FPGA(PL端)的All-Programmable-SoC-demos例程,二是純PS(不依賴(lài)PL端)的Baremetal(NoOS)裸機(jī)例程。兩類(lèi)裸機(jī)程序的運(yùn)行都需要依賴(lài)FSBL的BOOT.BIN文件和U-Boot的u-boot.bin文件引導(dǎo),主要區(qū)別在于Baremetal(NoOS)裸機(jī)例程不包含PL端xxx.bin程序。
從SD卡啟動(dòng)SoC裸機(jī)程序說(shuō)明
分別參照《基于TcL腳本生成Vivado工程及編譯》、《基于TcL腳本生成xsdk工程及編譯》文檔,編譯All-Programmable-SoC-demos例程。
將SD存儲(chǔ)卡格式化為FAT32格式,或者直接使用SD系統(tǒng)啟動(dòng)卡的boot分區(qū),SD系統(tǒng)啟動(dòng)卡boot分區(qū)即為FAT32格式。將PS端的xxx.elf程序和PL端xxx.bin程序復(fù)制到SD卡,另外將BOOT.BIN和u-boot.bin兩個(gè)文件也添加復(fù)制到SD卡。
以光盤(pán)"All-Programmable-SoC-demos\tl-axi-gpio-led-demo"例程為例,PS端程序?yàn)?quot;tl-axi-gpio-led-demo\sw\axi_gpio_baremetal_demo\bin\axi_gpio.elf",PL端程序?yàn)?quot;tl-axi-gpio-led-demo\hw\bin\axi_gpio_xc7z020.bin"。

表 2
對(duì)應(yīng)文件名
職責(zé)說(shuō)明
FSBL\image\embeddedsw-[Git系列號(hào)]-[版本號(hào)\BOOT.BIN
初始化DDR等外設(shè),加載U-Boot鏡像文件
U-Boot\U-Boot-2017.01\image\u-boot.bin
加載運(yùn)行裸機(jī)程序
xxx.elf
PS端裸機(jī)程序
xxx.bin
PL端程序,SoC例程依賴(lài)此文件


設(shè)置u-boot環(huán)境變量
將開(kāi)發(fā)板撥碼開(kāi)關(guān)撥到101001(1~6),此模式為SD卡啟動(dòng)模式。開(kāi)發(fā)板上電啟動(dòng),快速按任意鍵進(jìn)入U(xiǎn)-Boot命令行修改環(huán)境變量。

在U-Boot命令行下執(zhí)行如下指令,設(shè)置需要加載的PL端xxx.bin程序,PL端程序名應(yīng)根據(jù)實(shí)際情況修改,如果是Baremetal(NoOS)例程則無(wú)需執(zhí)行此命令。
Uboot# setenv bitstream_image axi_gpio_xc7z020.bin
執(zhí)行如下指令,設(shè)置需要加載的PS端xxx.elf程序,PS端程序名應(yīng)根據(jù)實(shí)際情況修改。
Uboot# setenv app_image axi_gpio.elf
執(zhí)行如下指令設(shè)置啟動(dòng)方式為appboot,并保存設(shè)置好的環(huán)境變量。
Uboot# setenv sdboot 'run appboot'
Uboot# saveenv


從SD卡啟動(dòng)裸機(jī)程序
開(kāi)發(fā)板斷電,重新上電啟動(dòng)后,調(diào)試終端打印信息如下圖所示。打印"## Starting application at 0x00100000 ..."信息后,開(kāi)發(fā)板開(kāi)始運(yùn)行裸機(jī)程序。本次操作運(yùn)行的是tl-axi-gpio-led-demo的裸機(jī)程序,運(yùn)行程序后會(huì)打印"AXI GPIO TEST",并且可以看到底板的LED2在閃爍。


恢復(fù)U-Boot環(huán)境變量
經(jīng)過(guò)前面步驟修改過(guò)環(huán)境變量后,U-Boot啟動(dòng)時(shí)將會(huì)讀取相應(yīng)的裸機(jī)程序。如需正常啟動(dòng)Linux系統(tǒng),在U-Boot命令行下執(zhí)行如下指令恢復(fù)默認(rèn)的環(huán)境變量。
Uboot# env default -a
Uboot# saveenv




嵌入式DSP、ARM、FPGA多核技術(shù)開(kāi)發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload

1

主題

1224

帖子

5701

積分

四級(jí)會(huì)員

Rank: 4

積分
5701
沙發(fā)
發(fā)表于 2020-6-24 21:35:22 | 只看該作者
頂起………………

0

主題

6122

帖子

2萬(wàn)

積分

凡億讀者

積分
20610
板凳
發(fā)表于 2020-6-26 11:06:32 | 只看該作者
謝謝分享基于SD卡啟動(dòng)裸機(jī)程序

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表