前 言
本文為TD-FD工程開發的指引文檔,提供工程編譯、程序加載等開發流程說明。
開發環境
Windows開發環境:Windows10 64bit
開發工具:TD_5.9.1_DR1_2025.1_NL、FD_2025.1_SP1
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。

注意事項
(1)請先按照《開發環境搭建》文檔安裝TD、FD等軟件以及進行JTAG驅動安裝,使用下載器(廠家:安路科技,型號:AL-LINK-FT-V1.0)連接評估板JTAG接口至PC端USB接口。
(2)請先將評估板啟動方式選擇撥碼開關設置為000(1~3),此檔位為JTAG模式,再將評估板上電。
1TD工程的程序加載、創建與編譯
1.1 程序加載
1.1.1通過下載器加載
本章節以產品資料“4-軟件資料DemoFPGA-demosFPGA-HDL-demos”目錄下的led_flash案例為例,演示通過下載器加載程序的操作方法。此案例的功能是控制評估底板PL端的LED3進行閃爍。
在此之前,請將對應案例目錄拷貝至Windows非中文路徑下并解壓案例目錄下的project.zip壓縮包。
備注:Windows路徑有長度限制,路徑太長將會導致工程打開出錯。
在TD軟件菜單欄中依次點擊"Tools -> Debug Server Setting"。
圖?1
在彈出的對話框中,勾選"AL-LTHK-FT(Locsl Host)","Local Port"設置為5555,"JTAG CLK Freg"選擇3MHz,"Cable Select 0"選擇FT94VM980,點擊"Apply and Close"。
圖?2
將評估板上電啟動。在菜單欄中依次點擊"Tools -> Download"。
圖?3
在彈出的對話框中,軟件會自動識別"0:DR1M90",若未自動識別可點擊"Refresh"。然后點擊"Add"添加鏡像。
圖?4
選擇led_flash_dr1m90.bit鏡像,然后點擊“打開(O)”。
圖?5
添加鏡像完成后,點擊"Run"。
圖?6
程序加載完成后,評估底板LED3將會進行閃爍。
圖?7
1.1.2通過PS端加載
本小節以產品資料“4-軟件資料DemoFPGA-demosAll-Programmable-SoC-demos”目錄下的axi_gpio_led案例為例,演示通過PS(Linux系統)加載PL工程的方法。
將dtbo動態設備樹鏡像文件和PL工程編譯生成的.bit鏡像文件拷貝至評估板文件系統的"/lib/firmware/"目錄下(若該目錄不存在,請新建)。其中.bit鏡像文件位于“4-軟件資料DemoFPGA-demosAll-Programmable-SoC-demosaxi_gpio_ledhwbin”目錄下。將PL端可執行文件重命名為system_wrapper.bit,然后執行如下命令加載PL端鏡像。
Target# mkdir -p /lib/firmware
Target# cp pl.dtbo /lib/firmware/
Target# cp axi_gpio_led_dr1m90.bit /lib/firmware/system_wrapper.bit
Target# mount -t configfs none /sys/kernel/config
Target# mkdir /sys/kernel/config/device-tree/overlays/full //創建full目錄,可根據實際情況修改
Target# echo pl.dtbo > /sys/kernel/config/device-tree/overlays/full/path //dtbo文件名稱請根據實際情況修改
圖?8
如需重新加載dtbo動態設備樹鏡像文件,請執行如下命令先刪除full目錄,再重新創建full目錄加載dtbo。
Target# rmdir /sys/kernel/config/device-tree/overlays/full
Target# mkdir /sys/kernel/config/device-tree/overlays/full
Target# echo pl.dtbo > /sys/kernel/config/device-tree/overlays/full/path
圖?9
查看"/sys/class/gpio/"目錄下生成的gpiochip322節點,地址為0x80100000,與axi_gpio_led案例給AXI GPIO IP分配的地址一致。
Target# ls /sys/class/gpio/gpiochip* -l
圖?10
生成gpio322節點,配置gpio322為output。
Target# echo 322 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio322/direction
圖?11
通過gpio322控制底板LED3亮滅。
Target# echo 1 > /sys/class/gpio/gpio322/value
Target# echo 0 > /sys/class/gpio/gpio322/value
圖?12
1.2 PL端動態設備樹編譯
本小節以產品資料“4-軟件資料DemoFPGA-demosAll-Programmable-SoC-demos”目錄下的axi_gpio_led案例為例,演示PL端功能相關的動態設備樹的編譯方法。
axi_gpio_led案例的動態設備樹文件pl.dtsi位于“4-軟件資料DemoFPGA-demosAll-Programmable-SoC-demosaxi_gpio_ledswlinux_systemsrc”目錄下,其內容如下。
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/soc/base_fpga_region";
#address-cells = <0x2>;
#size-cells = <0x2>;
__overlay__ {
#address-cells = <0x2>;
#size-cells = <0x2>;
firmware-name = "system_wrapper.bit";
config-complete-timeout-us = <3000000000>;
};
};
fragment@1 {
target-path = "/soc";
__overlay__ {
#address-cells = <0x2>;
#size-cells = <0x2>;
axi_gpio0: gpio@80100000{
/* AXI_GPIO: AXI_GPIO_0 */
status = "okay";
reg = <0x0 0x80100000 0x0 0x1000>;
compatible = "anlogic,axi-gpio-1.00.a";
#gpio-cells = <2>;
#interrupt-cells = <0x2>;
gpio-controller;
anlogic,interrupt-present = <0x1>;
anlogic,all-inputs = <0x0>;
anlogic,all-outputs = <0x0>;
anlogic,dout-default = <0x00000000>;
anlogic,gpio-width = <0x1>;
anlogic,gpio2-width = <0x20>;
anlogic,tri-default = <0xFFFFFFFF>;
anlogic,is-dual = <0x0>;
};
};
};
};
請將其拷貝至Ubuntu工作目錄,并在此目錄執行如下命令,使用dtc工具編譯動態設備樹源文件。編譯完成后,將在當前目錄下生成dtbo動態設備樹鏡像文件。
Host# dtc -v
Host# dtc -q -@ -O dtb -o pl.dtbo pl.dtsi
圖?13
1.3TD工程創建與編譯
本章節主要演示TD工程創建與編譯方法。如無需重新編譯或創建工程,請忽略本章節內容。
1.3.1創建TD工程
打開TD軟件,在菜單欄中依次點擊"Project -> New Project..."。
圖?14
在彈出的對話框中,根據實際情況設置Project Name(工程名)和Project Path(工程存放路徑),"Device Family"選擇"DR1","Device Name"選擇"DR1M90GEG484","Device Speed"選擇"-2",點擊"OK"創建工程。
圖?15
圖?16
在菜單欄中依次點擊"Source -> New Source..."。
圖?17
在彈出的對話框中,根據實際情況設置File Name(文件名)和Location(源碼存放路徑),"File Type"選擇"Verilog",勾選"Add To Project",點擊"OK"。
圖?18
圖?19
打開"led_flash.v"文件,在代碼編輯區編寫代碼并保存。
圖?20
鼠標右鍵點擊"FLAG Flow"中的"Syn Opt -> Read Design",點擊"Run"。
圖?21
在彈窗中點擊"OK"。
圖?22
然后雙擊"FLAG Flow"中的"IO Constraint",打開管腳分配界面。
圖?23
從底板原理圖可知,LED3引腳為R15,電壓1.8V,故設置"Location"為"R15","IOStandard"為"LVCMOS18",并點擊保存。
圖?24?用戶指示燈原理圖
圖?25
在彈窗選擇約束文件類型,此處以選擇"Single Line"為例,然后點擊"OK"。
圖?26
請自定義約束文件的路徑和名稱,然后點擊“保存”。
圖?27
在彈出的界面中點擊"Yes",將約束文件添加到工程。
圖?28
至此,已完成約束文件配置,雙擊打開"led_flash.adc"文件,可看到約束文件內容。
圖?29
1.3.2導入TD工程
打開TD軟件,在菜單欄中依次點擊"Project -> Open Project..."。
圖?30
選擇需要導入的工程所在目錄下的工程文件,點擊“打開”。
圖?31
在彈出的界面中點擊"OK"。
圖?32
即可完成導入。
圖?33
1.3.3編譯TD工程
鼠標右鍵點擊"FLAG Flow"中的"Phy Opt -> Generate Bitstream",點擊"Run All"。
圖?34
編譯完成后,在工程"xxx_Runsbest_result"目錄下將會生成.bit鏡像文件。
圖?35
圖?36
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
Linux
+關注
關注
88文章
11758瀏覽量
219004 -
評估板
+關注
關注
1文章
931瀏覽量
31176
發布評論請先 登錄
DR1 系列評估板 PS 端裸機與 FreeRTOS 開發案例手冊
DR1 評估板 PL 端 FPGA 開發完全指南:基礎案例與 ADC 采集模塊詳解(一)
DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉實時控制方案
基于 DR1M90 的 Linux-RT 內核開發:從編譯配置到 GPIO / 按鍵應用實現(1)
基于安路DR1M90 FPSoC的Linux系統全流程開發指南(4)
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(3)
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(1)
一步步完成安路飛龍 DR1M90 Linux 系統固化:啟動卡制作 + eMMC 固化
安路DR1M90評估板:從基礎外設到通信模塊測試指南
創龍科技DR1M90工業評估板的關鍵優勢
【米爾MYC-YM90X安路飛龍DR1開發板】HMI人機界面開發
【米爾-安路MYD-YM90X 創意秀】點燈也是入門絕活
【米爾MYC-YM90X安路飛龍DR1開發板】安路科技 SALDRAGON開發板介紹
免費送30套開發板!米爾-安路飛龍派創意秀限時活動
DR1M90 評估板 TD-FD 工程與 Linux 多場景應用開發指南
評論