資料介紹
作者:ALINX
* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。
適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
此文基于第十八章內(nèi)容進(jìn)行軟件開發(fā)
【ZYNQ Ultrascale+ MPSOC FPGA教程】第十八章Hello World(上)
軟件工程師工作內(nèi)容
Vitis工程目錄為“ps_hello/vitis”
以下為軟件工程師負(fù)責(zé)內(nèi)容。
1.Vitis調(diào)試;
2.創(chuàng)建Application工程;
1)新建一個(gè)文件夾,將vivado導(dǎo)出的xx.xsa文件拷貝進(jìn)來;
2)Vitis是獨(dú)立的軟件,可以雙擊Vitis軟件打開;
也可以通過在Vivado軟件中選擇ToolsLaunch Vitis打開Vitis軟件
選擇之前新建的文件夾,點(diǎn)擊”Launch”
3)啟動Vitis之后界面如下,點(diǎn)擊“Create Application Project”,這個(gè)選項(xiàng)會生成APP工程以及Platfrom工程,Platform工程類似于以前版本的hardware platform,包含了硬件支持的相關(guān)文件以及BSP。
4)第一頁為介紹頁,直接跳過,點(diǎn)擊Next
5)選擇“Create a new platform from hardware(XSA)”,選擇“Browse”
選擇之前生成的xsa,點(diǎn)擊打開
6)最下面的Generate boot components選項(xiàng),如果勾選上,軟件會自動生成fsbl工程,我們一般選擇默認(rèn)勾選上。
7)填入APP工程名稱,在方框處點(diǎn)擊可以選擇對應(yīng)的處理器,我們這里保持默認(rèn)
8)在這個(gè)界面可以修改Domain名稱,選擇操作系統(tǒng),ARM架構(gòu)等,這里保持默認(rèn),操作系統(tǒng)選擇standalone,也就是裸機(jī)。
9)選擇”Hellow World”模板,點(diǎn)擊“Finish”完成
10)完成之后可以看到生成了兩個(gè)工程,一個(gè)是硬件平臺工程,即之前所說的Platfrom工程,一個(gè)是APP工程
11)展開Platform工程后可以看到里面包含有BSP工程,以及zynq_fsbl工程(此工程即選擇Generate boot components之后的結(jié)果),雙擊platform.spr即可看到Platform對應(yīng)生成的BSP工程,可以在這里對BSP進(jìn)行配置。軟件開發(fā)人員比較清楚,BSP也就是Board Support Package板級支持包的意思,里面包含了開發(fā)所需要的驅(qū)動文件,用于應(yīng)用程序開發(fā)??梢钥吹絇latform下有多個(gè)BSP,這是跟以往的SDK軟件不一樣的,其中zynqmp_fsbl即是fsbl的BSP,domain_psu_cortexa53_0即是APP工程的BSP。也可以在Platform里添加BSP,在以后的例程中再講。
12)點(diǎn)開BSP,即可看到工程帶有的外設(shè)驅(qū)動,其中Documentation是xilinx提供的驅(qū)動的說明文檔,Import Examples是xilinx提供的example工程,加快學(xué)習(xí)。
13)選中APP工程,右鍵Build Project,或者點(diǎn)擊菜單欄的“錘子”按鍵,進(jìn)行工程編譯
14)可以在Console看到編譯過程
編譯結(jié)束,生成elf文件
15)連接JTAG線到開發(fā)板、UART的USB線到PC
16)使用PuTTY軟件做為串口終端調(diào)試工具,PuTTY是一個(gè)免安裝的小軟件
17)選擇Serial,Serial line填寫COM3,Speed填寫115200,COM3串口號根據(jù)設(shè)備管理器里顯示的填寫,點(diǎn)擊“Open”
18)在上電之前最好將開發(fā)板的啟動模式設(shè)置到JTAG模式,拔到”O(jiān)N”的位置
19)給開發(fā)板上電,準(zhǔn)備運(yùn)行程序,開發(fā)板出廠時(shí)帶有程序,這里可以把運(yùn)行模式選擇JTAG模式,然后重新上電。選擇“hello”,右鍵,可以看到很多選項(xiàng),本實(shí)驗(yàn)要用到這里的“Run as”,就是把程序運(yùn)行起來,“Run as”里又有很對選項(xiàng),選擇第一個(gè)“Launch on Hardware(Single Application Debug)”,使用系統(tǒng)調(diào)試,直接運(yùn)行程序。
20)這個(gè)時(shí)候觀察串口軟件,即可以看到輸出”Hello World”
21)為了保證系統(tǒng)的可靠調(diào)試,最好是右鍵“Run As -> Run Configuration...”
22)我們可以看一下里面的配置,其中Reset entire system是默認(rèn)選中的,這是跟以前的SDK軟件不同的。如果系統(tǒng)中還有PL設(shè)計(jì),還必須選擇“Program FPGA”。
23)除了“Run As”,還可以“Debug As”,這樣可以設(shè)置斷點(diǎn),單步運(yùn)行
24)進(jìn)入Debug模式
25)和其他C語言開發(fā)IDE一樣,可以逐步運(yùn)行、設(shè)置斷點(diǎn)等
26)右上角可以切換IDE模式
3. 固化程序
普通的FPGA一般是可以從flash啟動,或者被動加載,ZYNQ的啟動是由ARM主導(dǎo)的,包括FPGA程序的加載,ZYNQ MPSoC啟動一般為三個(gè)步驟,在UG1085中也有介紹:
Pre-configuration satge :預(yù)加載階段由PMU控制,執(zhí)行PMU ROM中的代碼設(shè)置系統(tǒng)。PMU處理所有的復(fù)位和喚醒過程。
Configuration stage : 接下來進(jìn)入最重要的一步,當(dāng)BootRom(CSU ROM代碼的一部分)搬運(yùn)FSBL到OCM后,處理器開始執(zhí)行FSBL代碼,F(xiàn)SBL主要有以下幾個(gè)作用:
Post-configuration stage : FSBL開始執(zhí)行后,CSU ROM代碼進(jìn)入post-configuration階段,負(fù)責(zé)起系統(tǒng)干預(yù)響應(yīng),CSU為驗(yàn)證文件正確性、通過PCAP加載PL、存儲管理安全密鑰、解密等提供持續(xù)的硬件支持。
3.1 生成FSBL
FSBL是一個(gè)二級引導(dǎo)程序,完成MIO的分配、時(shí)鐘、PLL、DDR控制器初始化、SD、QSPI控制器初始化,通過啟動模式查找bitstream配置FPGA,然后搜索用戶程序加載到DDR,最后交接給應(yīng)用程序執(zhí)行。
1) 由于在新建時(shí)選擇了Generate boot components選項(xiàng),所以Platform已經(jīng)導(dǎo)入了fsbl的工程,并生成了相應(yīng)的elf文件。
2) 修改調(diào)試宏定義FSBL_DEBUG_INFO_VAL,可以在啟動輸出FSBL的一些狀態(tài)信息,有利于調(diào)試,但是會導(dǎo)致啟動時(shí)間變長。保存文件。可以看一下fsbl里包含了很多外設(shè)的文件,包括psu_init.c,qspi,sd等,大家可以再仔細(xì)讀讀代碼。當(dāng)然這個(gè)fsbl模板也是可以修改的,至于怎么修改根據(jù)自己的需求來做。
3) 重新Build Project
4) 接下來我們可以點(diǎn)擊APP工程的system,右鍵選擇Build project
5) 這個(gè)時(shí)候就會多出一個(gè)Debug文件夾,生成了對應(yīng)的BOOT.BIN
6) 還有一種方法就是,點(diǎn)擊APP工程的system右鍵選擇Creat Boot Image,彈出的窗口中可以看到生成的BIF文件路徑,BIF文件是生成BOOT文件的配置文件,還有生成的BOOT.bin文件路徑,BOOT.bin文件是我們需要的啟動文件,可以放到SD卡啟動,也可以燒寫到QSPI Flash。
7) 在Boot image partitions列表中有要合成的文件,第一個(gè)文件一定是bootloader文件,就是上面生成的fsbl.elf文件,第二個(gè)文件是FPGA配置文件bitstream,在本實(shí)驗(yàn)中由于沒有FPGA的bitstream,不需要添加,第三個(gè)是應(yīng)用程序,在本實(shí)驗(yàn)中為hello.elf,由于沒有bitstream,在本實(shí)驗(yàn)中只添加bootloader和應(yīng)用程序。點(diǎn)擊Create Image生成。
8) 在生成的目錄下可以找到BOOT.bin文件
3.2 SD卡啟動測試
1) 格式化SD卡,只能格式化為FAT32格式,其他格式無法啟動
2) 放入BOOT.bin文件,放在根目錄
3) SD卡插入開發(fā)板的SD卡插槽
4) 啟動模式調(diào)整為SD卡啟動
5) 打開串口軟件,上電啟動,即可看到打印信息,紅色框?yàn)镕SBL啟動信息,黃色箭頭部分為執(zhí)行的應(yīng)用程序helloworld
3.3 QSPI啟動測試
1) 在Vitis菜單Xilinx -> Program Flash
2) Hardware Platform選擇最新的,Image FIle文件選擇要燒寫的BOOT.bin,F(xiàn)SBL file選擇fsbl.elf。選擇Verify after flash,在燒寫完成后校驗(yàn)flash。
3) 點(diǎn)擊Program等待燒寫完成
4) 設(shè)置啟動模式為QSPI,再次啟動,可以在串口軟件里看到與SD同樣的啟動效果。
3.4 Vivado下燒寫QSPI
1) 在HARDWARE MANGER下選擇器件,右鍵Add Configuration Memory Device
2) 選擇嘗試Micron,類型選擇qspi,寬度選擇x4-single,Density選擇256,這時(shí)候出現(xiàn)wt25qu256,選擇紅框型號。
3) 右鍵選擇編程文件
4) 選擇要燒寫的文件和fsbl文件,就可以燒寫了,如果燒寫時(shí)不是JTAG啟動模式,軟件會給出一個(gè)警告,所以建議燒寫QSPI的時(shí)候設(shè)置到JTAG啟動模式
3.5 使用批處理文件快速燒寫QSPI
1) 新建一個(gè)program_qspi.txt文本文件,擴(kuò)展名改為bat,內(nèi)容填寫如下,
E:/XilinxVitis/Vitis/2020.1/bin/program_flash 為我們工具路徑,按照安裝路徑適當(dāng)修改,-f 為要燒寫的文件,-fsbl為要燒寫使用的fsbl文件,-verify為校驗(yàn)選項(xiàng)。
callE:/XilinxVitis/Vitis/2020.1/bin/program_flash -f BOOT.bin -offset 0 -flash_type qspi-x4-single -fsbl fsbl.elf -verifypause
2) 把要燒錄的BOOT.bin、fsbl、bat文件放在一起
3) 插上JTAG線后上電,雙擊bat文件即可燒寫flash。
4. 常見問題
4.1 僅有PL端邏輯的固化
有很多人會問,如果只有PL端的邏輯,不需要PS端該怎么固化程序呢?不帶ARM的FPGA固化是沒問題的,但是對于ZYNQ來說,必須要有PS端的配合才能固化程序。那么對于前面的”PL的“Hello World”LED實(shí)驗(yàn)”該怎么固化程序呢?
1) 根據(jù)本章的PS端添加ZYNQ核并配置,最簡單的方法就是在本章工程的基礎(chǔ)上添加LED實(shí)驗(yàn)的verilog源文件,并進(jìn)行例化,組成一個(gè)系統(tǒng),并需要生成bitstream。
2) 生成bitstream之后,導(dǎo)出硬件,選擇include bitstream
3) 在生成BOOT.BIN時(shí),還是需要一個(gè)app工程hello,僅僅是為了生成BOOT.BIN,默認(rèn)情況下在system右鍵Build Project,即可生成包含bitstream的BOOT.BIN。
打開Create Boot Image界面可以看到,Boot Image Partitions的文件順序是fsbl、bitstream、app,注意順序不要顛倒,利用這樣生成的BOOT.BIN就可以按照前面的啟動方式測試啟動了
在course_s2文件夾,我們提供了一個(gè)名為led_qspi_sd的工程,大家可以參考。
5. 使用技巧分享
在頻繁的修改源文件,并進(jìn)行編譯的時(shí)候,最好選擇APP工程進(jìn)行Build Project,這種情況下只會生成elf文件。
如果想生成BOOT.BIN文件,可以選擇system進(jìn)行編譯,這種情況既會生成elf也會生成BOOT.BIN,筆者最開始用的時(shí)候就吃過虧,每次編譯都是選擇system,結(jié)果每次都要等待生成BOOT.BIN,浪費(fèi)時(shí)間,大家可以注意一下。
6. 本章小結(jié)
本章從FPGA工程師和軟件工程師兩者角度出發(fā),介紹了ZYNQ開發(fā)的經(jīng)典流程,F(xiàn)PGA工程師的主要工作是搭建好硬件平臺,提供硬件描述文件hdf給軟件工程師,軟件工程師在此基礎(chǔ)上開發(fā)應(yīng)用程序。本章是一個(gè)簡單的例子介紹了FPGA和軟件工程師協(xié)同工作,后續(xù)還會牽涉到PS與PL之間的聯(lián)合調(diào)試,較為復(fù)雜,也是ZYNQ開發(fā)的核心部分。
同時(shí)也介紹了FSBL,啟動文件的制作,SD卡啟動方式,QSPI下載及啟動方式,Vivado下載BOOT.BIN方式,本章沒有FPGA加載文件,后面的應(yīng)用中會再介紹添加FPGA加載文件制作BOOT.BIN。
后續(xù)的工程都會以本章節(jié)的配置為準(zhǔn),后面不再介紹ZYNQ的基本配置。
千里之行,始于足下,相信經(jīng)過本章的學(xué)習(xí),大家對ZYNQ開發(fā)有了基本概念,高樓穩(wěn)不穩(wěn),要看地基打的牢不牢,雖然本章較為簡單,但也有很多知識點(diǎn)待諸位慢慢消化。加油!?。?/p>
- 采用Zynq UltraScale+ MPSoC滿足汽車ESD和SEED要求
- Zynq UltraScale+ MPSoC中的隔離方法應(yīng)用筆記
- Zynq UltraScale+ MPSoC生產(chǎn)勘誤表
- Zynq UltraScale+ MPSoC數(shù)據(jù)手冊:DC和AC開關(guān)特性
- Zynq UltraScale+ MPSoC驗(yàn)證數(shù)據(jù)手冊
- Zynq UltraScale+ MPSoC:軟件開發(fā)者指南
- Zynq UltraScale+ MPSoC中的隔離方法
- Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例
- 適用于Xilinx Zynq UltraScale+ MPSoC應(yīng)用的電源參考設(shè)計(jì)
- 米爾電子zynq ultrascale+ mpsoc底板外設(shè)資源清單分享
- 如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第十八章Hello World(上)
- Zynq UltraScale MPSOC數(shù)據(jù)手冊免費(fèi)下載 20次下載
- 如何使用Zynq UltraScale和MPSOC管理電源和性能資料說明 18次下載
- 針對UltraScale/UltraScale+芯片DFX應(yīng)考慮的因素有哪些(1) 537次閱讀
- Xilinx ZYNQ UltraScale+系列產(chǎn)品介紹 2405次閱讀
- FPGAs,Zynq和Zynq MPSoC器件的特點(diǎn) 2275次閱讀
- 基于Xilinx Zynq UltraScale+ RFSoC ZCU216評估套件詳細(xì)內(nèi)容介紹 9162次閱讀
- 基于Xilinx Zynq ultraScale+ 系列FPGA的AXU2CGB 開發(fā)板評測 9051次閱讀
- 米爾科技HELLO WORLD主板介紹 2325次閱讀
- 米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊介紹 2975次閱讀
- 詳解Xilinx公司Zynq? UltraScale+?MPSoC產(chǎn)品 3184次閱讀
- Xilinx Zynq UltraScale MPSoC可擴(kuò)展電源設(shè)計(jì) 1950次閱讀
- Zynq UltraScale+ MPSoC ZCU102評估套件解決方案 8640次閱讀
- Enea OSE可實(shí)現(xiàn)對Xilinx UltraScale+ MPSoC的支持 2790次閱讀
- Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞 2620次閱讀
- Zynq UltraScale+ MPSoC 上的多個(gè)Linux UIO設(shè)計(jì) 3219次閱讀
- 用ZYNQ MPSoC玩DOOM! 2539次閱讀
- Ti推出面向Zynq UltraScale+ MPSoC的電源參考設(shè)計(jì) 3588次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多