玩轉Zynq連載29——[ex51] 制作裸跑程序的啟動(dòng)文件BOOT.bin

發(fā)布時(shí)間:2019-9-30 14:19    發(fā)布者:rousong1989
玩轉Zynq連載29——[ex51] 制作裸跑程序的啟動(dòng)文件BOOT.bin
更多資料共享
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
1概述
         對于Zynq的裸跑程序加載,比linuxSD卡啟動(dòng)文件制作要簡(jiǎn)單得多。
         只需要在FAT32格式化后的SD卡中放置一個(gè)BOOT.bin文件即可。如圖所示,BOOT.bin中需要包含2~3個(gè)文件,對Zynq部分外設初始化并搬運下一階段代碼和配置PLfsbl.elf文件、PL的配置比特流文件(.bit)、用戶(hù)裸跑程序(.elf)。如果用戶(hù)只是在ZynqCortex A9上跑程序,無(wú)需使用PL做任何工作,那么PL的配置文件.bit也可以免了。
         Zynq上電后,BootROM率先工作,加載BOOT.bin中的FSBL,FSBL初始化一些必要的外設,如SDIO外設,用于SD卡的讀寫(xiě);FSBL也可以將PL的配置比特流.bit文件加載到PL中啟動(dòng)PL的邏輯運行,隨后加載用戶(hù)裸跑程序(通常是elf后綴的文件),裸跑程序隨后就在DDR3中運行起來(lái)。
         這里,我們來(lái)實(shí)際操作一把,使用fsbl.elf、.bit和用戶(hù)裸跑程序(.elf)這3個(gè)文件產(chǎn)生BOOT.bin文件。
         為了更好的理解Zynq的啟動(dòng)原理,建議參考文檔《玩轉Zynq-基礎篇:Zynq的啟動(dòng)過(guò)程.pdf》。
2 導出硬件信息并啟動(dòng)SDK
         參考文檔《玩轉Zynq-工具篇:導出PS硬件配置和新建SDK工程》。
3 創(chuàng )建FSBL工程
         打開(kāi)EDK后,在Project Explorer中,出現了名為zstar_zynq_ps_wrapper_hw_platform_0的文件夾,下面的一些文件都是前面Export Hardware產(chǎn)生的PS硬件配置信息以及系統初始化代碼。
         在打開(kāi)的SDK中,點(diǎn)擊菜單File --> New --> Application Project,新建一個(gè)應用工程。
         彈出的New Project中,輸入Project name(這里命名為fsbl_project)。對應的Hardware Platform必須是前面Export Hardware所對應的PL工程。然后點(diǎn)擊Next。
         選擇Avaliable TemplatesZynq FSBL。點(diǎn)擊Finish。
4 創(chuàng )建HelloWorld實(shí)例工程
         再次點(diǎn)擊菜單File --> New --> Application Project,新建一個(gè)應用工程。
         工程名(Project name)命名為HelloWorld,操作系統(OS Platform)選擇standalone,硬件平臺(Hardware Platform)選擇zstar_zynq_ps_wrapper_platform_0,點(diǎn)擊Next。
         Templates頁(yè)面中,選擇Hello World工程模板。點(diǎn)擊Finish完成工程創(chuàng )建。
         新建HelloWorld工程出現在Project Explorer中,展開(kāi)HelloWorld-->src,打開(kāi)helloworld.c源文件,修改源碼,實(shí)現每隔2s通過(guò)UART打印一串帶計數值的Hello World!信息。
         保存修改后的helloworld.c源文件,SDK會(huì )自動(dòng)編譯并生成新的HelloWorld.elf文件。
5生成BOOT.bin文件
         展開(kāi)Project Explorer中新建好的fsbl_project工程,找到Binaries下的fsbl_project.elf文件。選中fsbl_project.elf文件,右鍵單擊后,點(diǎn)擊Copy選項。Paste到專(zhuān)門(mén)新建的sd_image文件夾下。
         展開(kāi)HelloWorld工程,找到Binaries下的HelloWorld.elf文件。選中HelloWorld.elf文件,右鍵單擊后,點(diǎn)擊Copy選項。也Pastesd_image文件夾下。
         打開(kāi)...\zstar.sdk\zstar_zynq_ps_wrapper_hw_platform_0文件夾,把PL配置文件zstar_zynq_ps_wrapper.bit也復制到sd_image文件夾下。
         生成裸跑程序的啟動(dòng)文件BOOT.bin所必須的3個(gè)文件齊聚在sd_image文件夾下。
點(diǎn)擊SDK的菜單Xilinx -->Create Boot Image。
彈出的Create Boot Image對話(huà)框中,設定Output BIF file pathsd_image文件夾下,產(chǎn)生output.bif文件到該文件夾。然后依次點(diǎn)擊Boot image partitions按鈕加載fsbl_project.elf、zstar_zynq_ps_wrapper.bitHelloWorld.elf文件。
         特別需要注意的是,fsbl_project.elf的文件Partition type選擇bootloader,而zstar_zynq_ps_wrapper.bitHelloWorld.elf文件則選擇datafile。點(diǎn)擊Boot image partitions右側Add菜單,分別加載這3個(gè)文件。
         完成設定后,如圖所示,點(diǎn)擊Create Image按鈕。
         sd_image文件夾下,出現了新產(chǎn)生的BOOT.bin文件。
6 SD卡啟動(dòng)板級調試
         Micro SD卡通過(guò)讀卡器插入PC中,用FAT32進(jìn)行格式化。然后將生產(chǎn)的BOOT.bin文件拷貝到Micro SD卡中。
         Micro SD卡插入Zstar板的SD卡槽中。
         Zstar板子上,設置跳線(xiàn)帽P3SD BOOT模式,即PIN1-2短接。
         連接好串口線(xiàn)(USB線(xiàn)連接PCUSB端口和Zstar板的UART接口)和Xilinx下載線(xiàn)(下載器連接PCUSB端口和Zstar板的JTAG插座)。使用5V電源給板子供電。
         打開(kāi)串口調試助手PuTTY,正確設置端口號和波特率。
         接著(zhù)我們就能看到PuTTY上不停的打印帶數據遞增的Hello World字符串了。
本文地址:http://selenalain.com/thread-569261-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页