KRS Unleashed: 5——在板子上運(yùn)行
這個(gè)項(xiàng)目是KRS Unleashed系列的一部分,KRS是原始KRS的修訂版。本文介紹了機(jī)載設(shè)置。
本文將介紹整個(gè)過程的最后一步。在前面的文章中,我們構(gòu)建了SD卡和sysroot,交叉編譯了應(yīng)用程序,并將內(nèi)核開發(fā)為xclbin文件。現(xiàn)在,我們需要將所有內(nèi)容放到板子上,設(shè)置xclbin位流并啟動應(yīng)用程序。
在解釋具體步驟之前,我想強(qiáng)調(diào)兩點(diǎn):
我目前正在設(shè)置FPGA板,如具有連接的外設(shè)和監(jiān)視器的樹莓派,以建立SSH連接并安裝缺失的依賴項(xiàng)。這是非常直接和容易做到的,但不是必需的。所有的步驟也可以通過一個(gè)簡單的JTAG連接來完成,但是我沒有為這種情況提供說明。
第二點(diǎn):在Ubuntu和Petalinux之間建立連接所需的端口是不同的,Ubuntu需要在左上角有一個(gè)插頭(如圖),而Petalinux需要在左下角進(jìn)行SSH連接。當(dāng)連接到互聯(lián)網(wǎng)時(shí),我發(fā)現(xiàn)如果我在那段時(shí)間拔掉SSH連接會更容易。
第一次啟動SD卡
第一步是建立SSH連接。對于Petalinux,這已經(jīng)配置好了,但是在Ubuntu中,您需要在每次啟動時(shí)通過JTAG設(shè)置它
或者你找到一個(gè)監(jiān)視器并通過顯示端口連接FPGA。然后你可以簡單地在Ubuntu中配置網(wǎng)絡(luò),就像你通常做的那樣,并使連接持久。
對于Ubuntu,你現(xiàn)在需要安裝一些缺失的依賴項(xiàng):
?ROS 2(在網(wǎng)站上安裝)
?ltng用于跟蹤,libgcal用于Apriltag算法
對于Petalinux,已經(jīng)包含了可安裝的依賴項(xiàng)。但是,您需要復(fù)制lttng.py和_lttng.cpython-310-aarch64-linux-gnu文件。所以從Ubuntu sysroot(包括在os_workspace/firmware_kr260_petalinux/artifacts/),并把它們放在板上,包括丟失的python包裝:
?文件位于Ubuntu sysroot下的“firmware_kria_ubuntu/sysroots/aarch64-xilinx-linux/usr/lib/python3/dist-packages”
?并且需要復(fù)制到Petalinux SD卡上的‘ /usr/lib/python3.10/ ’
準(zhǔn)備比特流
我們需要復(fù)制exports文件夾,例如通過SCP
這包含了部署比特流和用于測試的附加二進(jìn)制文件所需的一切。現(xiàn)在你需要按照通常的KRS指令,將文件移動到Ubuntu的‘ /usr/lib/firmware/xilinx ’或Petalinux的‘ /lib/firmware/xilinx ’下:
我建議重命名文件夾以匹配二進(jìn)制文件的名稱,我不知道是否有必要,但我通常遵循這種做法(參見復(fù)制命令)。
成功后,您應(yīng)該看到一條消息,風(fēng)扇應(yīng)該快速旋轉(zhuǎn)
準(zhǔn)備申請
現(xiàn)在,剩下的就是獲取ROS 2腳本了。
Ubuntu:
Petalinux:
然后像這樣啟動應(yīng)用程序:
通常,ROS 2會自動檢測通過SSH連接的本地開發(fā)機(jī)器,并將所有主題轉(zhuǎn)發(fā)到您的PC,這樣您就可以通過ROS對話中的這個(gè)有用腳本來調(diào)查它們:
最后備注/ ROS的優(yōu)化
您將注意到Kria上ROS 2的默認(rèn)配置非常需要RAM,從而導(dǎo)致潛在的崩潰和死機(jī)。因此,建議依賴組件而不是節(jié)點(diǎn),使用CycloneDDS而不是FastDDS。在“krs/”下包含了CycloneDDS的示例配置,可以在這里找到更多信息。
當(dāng)您使用此配置添加不同的DDS時(shí),在啟動應(yīng)用程序時(shí)經(jīng)常會遇到問題,因?yàn)槟枰B接板以使用CycloneDDS配置,并且您不能使用FastDDS保持舊會話仍然打開。當(dāng)你遇到像
只需使用‘ unset RMW_IMPLEMENTATION ’重新編譯您的應(yīng)用程序,關(guān)閉所有終端窗口并重做。
本文編譯自hackster.io





