在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計(jì):
詳細(xì)流程:
? 打開(kāi)Vitis,選擇一個(gè)Vitis工作目錄。
? Create Application,選擇一個(gè)新的XSA文件,導(dǎo)入從Vivado獲得的XSA文件。

?為工程取一個(gè)名,以Empty Application(C)為模板新建工程。

?勾選BSP中的庫(kù),雙擊platform.spr,選中standalone_psu_cortexa53_0下的Board Support Package,選擇Modify BSP Settings,勾選libmetal庫(kù),保存。

? 導(dǎo)入源碼,從附件中找到main.c,可以直接拷貝到工程src目錄下,或者右鍵src目錄選擇Import sources。

? 添加工程Symbol。右鍵工程選擇C/C++ build settings,在Symbols中添加__BAREMETAL__。


? 編譯工程,如果有宏定義相關(guān)報(bào)錯(cuò),應(yīng)該是底層IP命名問(wèn)題,可以在xparameters.h中找到實(shí)際的宏定義。

如何添加metal log:
Libmetal庫(kù)提供了metal_log API以便于用戶調(diào)試,用戶可以參考AR#71068使能打印功能:
https://support.xilinx.com/s/article/71068
Metal_log提供了8個(gè)等級(jí)的打印信息,用戶可以根據(jù)項(xiàng)目所處的不同階段決定開(kāi)啟哪一個(gè)等級(jí)的調(diào)試信息。

代碼簡(jiǎn)要分析:
整體流程大致如下:
1. Libmetal初始化。
3. IIC/GPIO/SPI Mux初始化。
4. CLK104時(shí)鐘IC復(fù)位。
5. CLK104時(shí)鐘配置。
6. 設(shè)置RFDC Clock Distribution。
7. 查看RFDC IP狀態(tài)。
這里主要強(qiáng)調(diào)一下三個(gè)部分,一是時(shí)鐘配置,二是Clock Distribution,三是狀態(tài)檢查。
如前面章節(jié)所說(shuō),FPGA通過(guò)IIC接口與IIC to SPI橋接芯片進(jìn)行交互,橋接芯片通過(guò)SPI接口控制時(shí)鐘IC。配置數(shù)據(jù)在本案例中是記錄在數(shù)組中的,數(shù)據(jù)來(lái)源于TI的TICS Pro軟件。用戶需要根據(jù)實(shí)際的需求,在軟件中選擇時(shí)鐘IC的輸入輸出頻率和管腳復(fù)用,由軟件導(dǎo)出一組針對(duì)此時(shí)鐘IC的寄存器數(shù)值。

Clock Dsitribution部分,IP驅(qū)動(dòng)提供了相關(guān)的結(jié)構(gòu)體和API,具體組成部分可以參考PG269文檔相關(guān)部分。以下是DAC Tile的時(shí)鐘分發(fā)網(wǎng)絡(luò)配置代碼:

在我們目前的設(shè)計(jì)中,使用LMX2594產(chǎn)生的高頻參考時(shí)鐘輸入到DAC Tile1,因此結(jié)構(gòu)體中指定source tile為XRFDC_TILE_ID1;此時(shí)鐘分發(fā)組內(nèi)最北的是DAC Tile3,最南的是DAC Tile0;分發(fā)類(lèi)型是參考鐘分發(fā),因此選擇XRFDC_DIST_OUT_RX;參考鐘頻率為6400,采樣率為6400;將此結(jié)構(gòu)體傳入到XRFdc_SetClkDistribution函數(shù)中,函數(shù)內(nèi)部會(huì)檢查當(dāng)前配置是否有效,并在配置結(jié)束以后啟動(dòng)tile。
檢查IP狀態(tài)是最后一步,IP啟動(dòng)過(guò)程共有15個(gè)階段,只有當(dāng)Tile狀態(tài)達(dá)到0xf的時(shí)候說(shuō)明此Tile正常啟動(dòng),接下來(lái)可以正常工作,如果發(fā)現(xiàn)Tile狀態(tài)停在某一步,可以對(duì)照PG269 Power-on Sequence Steps章節(jié)查找原因。

硬件環(huán)境及測(cè)試結(jié)果:
建議按照XTP587完成板子硬件環(huán)境setup:
2. 安裝CLK104時(shí)鐘板。
3. 使用出廠自帶的CARLISLE連接線,將CLK104 ADC/DAC參考鐘接到板上。
4. 設(shè)置啟動(dòng)模式為JTAG。

測(cè)試結(jié)果:
由打印的IP status對(duì)比可見(jiàn),時(shí)鐘成功配置,所有DAC和ADC Tile均進(jìn)入到狀態(tài)0xf。

附錄:
此文章提供重建工程TCL腳本,用戶可以下載附件,按照如下步驟重建Vivado工程:
1. 打開(kāi)Vivado 2021.2。
-對(duì)Windows系統(tǒng),雙擊桌面Vivado圖標(biāo)或到此目錄尋找執(zhí)行文件C:XilinxVivado2021.2invivado.bat。
- 對(duì)Linux系統(tǒng),source/settings64.sh。
2. 在Vivado console中,將當(dāng)前目錄更換到下載的附件目錄。Cd。
3. Source ./vivado_project.tcl。
Vitis工程需要用戶自行創(chuàng)建,本文會(huì)提供測(cè)試源代碼。
原文標(biāo)題:開(kāi)發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時(shí)鐘設(shè)計(jì)-下
文章出處:【微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
ARM
+關(guān)注
關(guān)注
135文章
9552瀏覽量
391798 -
程序設(shè)計(jì)
+關(guān)注
關(guān)注
3文章
263瀏覽量
31690 -
Vitis
+關(guān)注
關(guān)注
0文章
157瀏覽量
8340
原文標(biāo)題:開(kāi)發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時(shí)鐘設(shè)計(jì)-下
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ARM的位置無(wú)關(guān)程序設(shè)計(jì)在Bootloader中的應(yīng)用
ARM匯編程序設(shè)計(jì)
使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享
ARM程序設(shè)計(jì)基礎(chǔ)
ARM程序設(shè)計(jì)基礎(chǔ)教材
基于ARM的BSP程序設(shè)計(jì)方案
ARM的位置無(wú)關(guān)程序設(shè)計(jì)在Bootloader中的應(yīng)用
ARM體系結(jié)構(gòu)與程序設(shè)計(jì)
ARM處理器的位置無(wú)關(guān)程序設(shè)計(jì)
Xilinx Vitis能創(chuàng)建的模板軟件工程
怎么在Vitis加速設(shè)計(jì)中為Kernel創(chuàng)建面積約束
在Vitis中調(diào)試ARM可信固件和U-boot
在Windows 10上創(chuàng)建并運(yùn)行AMD Vitis?視覺(jué)庫(kù)示例
在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計(jì)
評(píng)論