0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計(jì)

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:Shengjie Li ? 2022-06-08 16:12 ? 次閱讀

本文作者:賽靈思工程師 Shengjie Li

在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計(jì):

詳細(xì)流程:

? 打開Vitis,選擇一個(gè)Vitis工作目錄。

? Create Application,選擇一個(gè)新的XSA文件,導(dǎo)入從Vivado獲得的XSA文件。

0696d56e-dce5-11ec-ba43-dac502259ad0.png

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

06e4d98a-dce5-11ec-ba43-dac502259ad0.png

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

0748014a-dce5-11ec-ba43-dac502259ad0.png

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

07994370-dce5-11ec-ba43-dac502259ad0.png

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

07e1d6b2-dce5-11ec-ba43-dac502259ad0.png

0814f394-dce5-11ec-ba43-dac502259ad0.png

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

084a27c6-dce5-11ec-ba43-dac502259ad0.png

如何添加metal log:

Libmetal庫提供了metal_log API以便于用戶調(diào)試,用戶可以參考AR#71068使能打印功能:

https://support.xilinx.com/s/article/71068

Metal_log提供了8個(gè)等級(jí)的打印信息,用戶可以根據(jù)項(xiàng)目所處的不同階段決定開啟哪一個(gè)等級(jí)的調(diào)試信息。

0898f5a4-dce5-11ec-ba43-dac502259ad0.png

代碼簡(jiǎn)要分析:

整體流程大致如下:

1. Libmetal初始化。

2. RFDC IP初始化。

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é)所說,FPGA通過IIC接口與IIC to SPI橋接芯片進(jìn)行交互,橋接芯片通過SPI接口控制時(shí)鐘IC。配置數(shù)據(jù)在本案例中是記錄在數(shù)組中的,數(shù)據(jù)來源于TI的TICS Pro軟件。用戶需要根據(jù)實(shí)際的需求,在軟件中選擇時(shí)鐘IC的輸入輸出頻率和管腳復(fù)用,由軟件導(dǎo)出一組針對(duì)此時(shí)鐘IC的寄存器數(shù)值。

08d05e54-dce5-11ec-ba43-dac502259ad0.png

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

09092586-dce5-11ec-ba43-dac502259ad0.png

在我們目前的設(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ā)類型是參考鐘分發(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)過程共有15個(gè)階段,只有當(dāng)Tile狀態(tài)達(dá)到0xf的時(shí)候說明此Tile正常啟動(dòng),接下來可以正常工作,如果發(fā)現(xiàn)Tile狀態(tài)停在某一步,可以對(duì)照PG269 Power-on Sequence Steps章節(jié)查找原因。

095bf702-dce5-11ec-ba43-dac502259ad0.png

硬件環(huán)境及測(cè)試結(jié)果:

建議按照XTP587完成板子硬件環(huán)境setup:

1. 連接電源、USB-JTAG。

2. 安裝CLK104時(shí)鐘板。

3. 使用出廠自帶的CARLISLE連接線,將CLK104 ADC/DAC參考鐘接到板上。

4. 設(shè)置啟動(dòng)模式為JTAG。

09b98b6a-dce5-11ec-ba43-dac502259ad0.png

測(cè)試結(jié)果:

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

0a097a6c-dce5-11ec-ba43-dac502259ad0.png

附錄:

此文章提供重建工程TCL腳本,用戶可以下載附件,按照如下步驟重建Vivado工程:

1. 打開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)題:開發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時(shí)鐘設(shè)計(jì)-下

文章出處:【微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9027

    瀏覽量

    366492
  • 程序設(shè)計(jì)
    +關(guān)注

    關(guān)注

    3

    文章

    261

    瀏覽量

    30352
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    7381

原文標(biāo)題:開發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時(shí)鐘設(shè)計(jì)-下

文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM的位置無關(guān)程序設(shè)計(jì)Bootloader的應(yīng)用

    ARM的位置無關(guān)程序設(shè)計(jì)Bootloader的應(yīng)用
    發(fā)表于 10-26 21:33

    ARM匯編程序設(shè)計(jì)

    嵌入式系統(tǒng).第五章.ARM匯編程序設(shè)計(jì).ARM匯編程序設(shè)計(jì)20 目錄5 ARM匯編程序設(shè)計(jì)5.2
    發(fā)表于 12-14 07:03

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

    ,我們一直使用Vivado給我們提供的IP或者使用硬件描述語言制作 IP 。今天我們將講解如何使用HLS-高級(jí)綜合語言來創(chuàng)建屬于我們自己的IP。我們將使用的工具稱為Vitis HLS,此后稱為 HLS
    發(fā)表于 09-09 16:45

    ARM程序設(shè)計(jì)基礎(chǔ)

    ARM編譯器一般都支持匯編語言的程序設(shè)計(jì)和C/C++語言的程序設(shè)計(jì),以及兩者的混合編程。本章介紹ARM程序設(shè)計(jì)的一些基本概念,如
    發(fā)表于 09-09 14:55 ?100次下載

    arm原理與c程序設(shè)計(jì)-代碼

    arm原理與c程序設(shè)計(jì)-代碼 asp源碼:
    發(fā)表于 02-11 09:42 ?188次下載

    ARM程序設(shè)計(jì)基礎(chǔ)教材

    ARM程序設(shè)計(jì)基礎(chǔ)教材 本章的主要內(nèi)容:  ARM編譯器所支持的偽指令;  匯編語言的語句格式;  匯編語言的程序結(jié)構(gòu);  相關(guān)
    發(fā)表于 02-21 09:26 ?150次下載

    基于ARM的BSP程序設(shè)計(jì)方案

    介紹基于ARM體系的嵌入式系統(tǒng)啟動(dòng)流程基礎(chǔ)上,結(jié)合編程實(shí)例 詳細(xì)系統(tǒng)地?cái)⑹隽薆SP(板級(jí)支持包)程序的各個(gè)部分及其設(shè)計(jì)方案 并就實(shí)際程序設(shè)計(jì)的幾個(gè)難點(diǎn)問題
    發(fā)表于 06-25 14:24 ?43次下載

    ARM的位置無關(guān)程序設(shè)計(jì)Bootloader的應(yīng)用

    ARM的位置無關(guān)程序設(shè)計(jì)Bootloader的應(yīng)用 ARM處理器支持位置無關(guān)的程序設(shè)計(jì),這
    發(fā)表于 03-29 15:12 ?1224次閱讀

    ARM體系結(jié)構(gòu)與程序設(shè)計(jì)

    ARM體系結(jié)構(gòu)與程序設(shè)計(jì)》是ARM體系結(jié)構(gòu)與程序設(shè)計(jì)的一本實(shí)用指導(dǎo)書籍,通過案例詳細(xì)介紹了ARM體系結(jié)構(gòu)與
    發(fā)表于 10-27 16:37 ?2351次閱讀

    ARM_C語言程序設(shè)計(jì)詳解

    ARM_C語言程序設(shè)計(jì)詳解
    發(fā)表于 10-27 15:39 ?32次下載
    <b class='flag-5'>ARM</b>_C語言<b class='flag-5'>程序設(shè)計(jì)</b>詳解

    ARM處理器的位置無關(guān)程序設(shè)計(jì)

    ARM處理器支持位置無關(guān)的程序設(shè)計(jì),這種程序加載到存儲(chǔ)器的任意地址空間都可以正常運(yùn)行,其設(shè)計(jì)方法嵌入式應(yīng)用系統(tǒng)開發(fā)具有重要的作用。尤其
    發(fā)表于 12-01 01:16 ?547次閱讀

    Xilinx Vitis創(chuàng)建的模板軟件工程

    、及內(nèi)部管理用的CPU。Versal的軟件開發(fā)工具是Vitis。 下面是Vitis創(chuàng)建軟件工程時(shí)可以看到的CPU清單。 每個(gè)CPU可以創(chuàng)建
    的頭像 發(fā)表于 11-12 12:06 ?1801次閱讀

    怎么Vitis加速設(shè)計(jì)為Kernel創(chuàng)建面積約束

    本文來自賽靈思高級(jí)產(chǎn)品應(yīng)用工程師 Hong Han Alveo系列開發(fā)板上的平臺(tái)其實(shí)是一個(gè)DFX設(shè)計(jì)的靜態(tài)部分,Vitis 統(tǒng)一軟件平臺(tái)中使用Alveo系列開發(fā)板設(shè)計(jì)加速Kernel, 最終這些
    的頭像 發(fā)表于 06-18 10:15 ?3.7w次閱讀

    Vitis調(diào)試ARM可信固件和U-boot

    本篇博文中,我們將探討如何在 Vitis 調(diào)試 Zynq UltraScale 器件啟動(dòng)鏡像。這些啟動(dòng)鏡像包括 ARM 可信固件 (ATF) 和 U-boot。
    的頭像 發(fā)表于 08-02 10:14 ?3441次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vitis</b><b class='flag-5'>中</b>調(diào)試<b class='flag-5'>ARM</b>可信固件和U-boot

    Windows 10上創(chuàng)建并運(yùn)行AMD Vitis?視覺庫示例

    本篇文章將演示創(chuàng)建一個(gè)使用 AMD Vitis? 視覺庫的 Vitis HLS 組件的全過程。此處使用的是 Vitis Unified IDE。如果您使用的是舊版 AMD
    的頭像 發(fā)表于 05-08 14:02 ?631次閱讀
    <b class='flag-5'>在</b>Windows 10上<b class='flag-5'>創(chuàng)建</b>并運(yùn)行AMD <b class='flag-5'>Vitis</b>?視覺庫示例