国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

查看: 1070|回復(fù): 0
打印 上一主題 下一主題

[經(jīng)驗(yàn)] 基于Xilinx Zynq-7020/7010實(shí)現(xiàn)的雙系統(tǒng)解決方案

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-7-9 13:52:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 嵌入式
現(xiàn)代工業(yè)設(shè)備系統(tǒng)要求越來(lái)越復(fù)雜,既要強(qiáng)大的多任務(wù)的事務(wù)處理能力,又需要低延時(shí)實(shí)時(shí)任務(wù)處理能力的需求,特別是工業(yè)自動(dòng)化控制領(lǐng)域(如數(shù)控機(jī)床、機(jī)械臂)、電力監(jiān)測(cè)領(lǐng)域(如DTU、繼保設(shè)備、一二次融合設(shè)備)等應(yīng)用場(chǎng)景尤為迫切。為了滿足日益復(fù)雜的系統(tǒng)要求,基于Xilinx Zynq-7020/7010實(shí)現(xiàn)的雙系統(tǒng)解決方案。

Xilinx Zynq-7020/7010是一款集成雙核ARM Cortex-A9 + Artix-7 FPGA架構(gòu)的單芯片SoC,它的OpenAMP框架可實(shí)現(xiàn)雙核ARM Cortex-A9非對(duì)稱使用方案,從而使雙核ARM實(shí)現(xiàn)分別跑兩個(gè)系統(tǒng):一個(gè)ARM Cortex-A9跑Linux,一個(gè)ARM Cortex-A9作為實(shí)時(shí)核跑RTOS(FreeRTOS)或者裸機(jī)。實(shí)時(shí)核與FPGA端進(jìn)行低延時(shí)的高速數(shù)據(jù)交換與實(shí)時(shí)通訊控制,低延時(shí)的實(shí)時(shí)任務(wù)要求。而跑Linux的 ARM核作為更上層應(yīng)用,處理更復(fù)雜的業(yè)務(wù)事務(wù)。

Xilinx Zynq-7020/7010單芯片SoC方案配合雙系統(tǒng)的應(yīng)用為工業(yè)控制、電力一二次融合設(shè)備、醫(yī)療電子、測(cè)試測(cè)量、汽車(chē)電子、通信等應(yīng)用是更靈活、更具優(yōu)勢(shì)的解決方案。

1、echo_test案例
1.1 案例功能
案例功能:CPU0使用RPMsg向CPU1發(fā)送數(shù)據(jù),CPU1接收到數(shù)據(jù)后再使用RPMsg向CPU0回傳數(shù)據(jù)。CPU0對(duì)回傳的數(shù)據(jù)進(jìn)行驗(yàn)證,并輸出驗(yàn)證結(jié)果。
1.2 操作說(shuō)明
將CPU1裸機(jī)或FreeRTOS可執(zhí)行文件復(fù)制到評(píng)估板文件系統(tǒng)“/lib/firmware/”目錄下,并執(zhí)行如下命令加載CPU1程序。
Target# echo echo_test.elf > /sys/class/remoteproc/remoteproc0/firmware
Target# echo start > /sys/class/remoteproc/remoteproc0/state


圖 3

執(zhí)行如下命令加載RPMsg驅(qū)動(dòng),并在“/dev/”目錄下生成RPMsg設(shè)備節(jié)點(diǎn)。
Target# modprobe rpmsg_user_dev_driver


圖 4
將CPU0應(yīng)用程序可執(zhí)行文件復(fù)制到評(píng)估板文件系統(tǒng),并執(zhí)行如下命令通過(guò)RPMsg與CPU1進(jìn)行通信。
Target# ./echo_test


圖 5

輸入1,并按回車(chē)鍵進(jìn)行測(cè)試。

圖6


圖7
輸入2,并按回車(chē)鍵退出測(cè)試。

圖 8
執(zhí)行如下命令,停止CPU1程序。
Target# echo stop > /sys/class/remoteproc/remoteproc0/state

圖 9
2、matrix_multiply案例
2.1 案例功能
案例功能:CPU0隨機(jī)生成兩個(gè)矩陣并使用RPMsg向CPU1發(fā)送數(shù)據(jù),CPU1接收到數(shù)據(jù)后進(jìn)行矩陣乘法運(yùn)算,再使用RPMsg向CPU0回傳運(yùn)算結(jié)果,然后CPU0通過(guò)串口終端輸出運(yùn)算結(jié)果。

2.2 操作說(shuō)明
將CPU1裸機(jī)或FreeRTOS可執(zhí)行文件復(fù)制到評(píng)估板文件系統(tǒng)“/lib/firmware/”目錄下,并執(zhí)行如下命令加載CPU1程序。
Target# echo matrix_multiply.elf > /sys/class/remoteproc/remoteproc0/firmware
Target# echo start > /sys/class/remoteproc/remoteproc0/state

圖 10
執(zhí)行如下命令加載RPMsg驅(qū)動(dòng),并在“/dev/”目錄下生成RPMsg設(shè)備節(jié)點(diǎn)。
Target# modprobe rpmsg_user_dev_driver

圖 11
將CPU0應(yīng)用程序可執(zhí)行文件復(fù)制到評(píng)估板文件系統(tǒng),并執(zhí)行如下命令通過(guò)RPMsg與CPU1進(jìn)行通信。
Target# ./mat_mul_demo

圖 12
輸入1,并按回車(chē)鍵進(jìn)行測(cè)試。

圖 13
輸入2,并按回車(chē)鍵退出測(cè)試。

圖 14
執(zhí)行如下命令,停止CPU1程序。
Target# echo stop > /sys/class/remoteproc/remoteproc0/state

圖 15
3、內(nèi)存分配說(shuō)明
512MByte DDR容量版本核心板的內(nèi)存地址分配如下:
表 1

1GByte DDR容量版本核心板的內(nèi)存地址分配如下:
表 2

如需修改CPU1程序(OpenAMP-remote app)內(nèi)存地址空間范圍,可通過(guò)更改設(shè)備樹(shù)文件tlz7x-easyevm-s.dts、資源表rsc_table.c及鏈接文件lscript.ld對(duì)內(nèi)存地址空間進(jìn)行重新分配。三者需同步修改并保持一致,以確保固件程序鏈接地址與設(shè)備樹(shù)配置的elf_ddr_0對(duì)應(yīng)。所使用的資源(內(nèi)存和virtio設(shè)備資源)不能超出設(shè)備樹(shù)文件配置的內(nèi)存范圍。

圖 16設(shè)備樹(shù)文件tlz7x-easyevm-s.dts配置

圖 17設(shè)備樹(shù)文件tlz7x-easyevm-s.dts配置

圖 18 CPU1程序資源表rsc_table.c配置

圖 19 CPU1程序鏈接文件lscript.ld配置

上述推文中的案例是在創(chuàng)龍科技(Tronlong)基于Zynq-7010/7020處理器設(shè)計(jì)的兩款工業(yè)評(píng)估板——TLZ7x-EasyEVM、TLZ7x-EasyEVM-S上實(shí)現(xiàn)的,它由核心板+底板構(gòu)成。


圖 20 TLZ7x-EasyEVM硬件資源框圖

圖 21 TLZ7x-EasyEVM硬件資源框圖

圖 22 TLZ7x-EasyEVM-S硬件資源框圖


圖 23 TLZ7x-EasyEVM-S硬件資源框圖

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表