<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—ARM + DSP、RISC-V核間通信開發案例

      前  言

      本文檔主要介紹T113-i處理器的ARM + DSP、RISC-V核間通信開發案例,演示T113-i處理器ARM Cortex-A7與HiFi4 DSP核心、玄鐵C906 RISC-V核心的核間通信。適用開發環境如下:
       

      Windows開發環境:Windows 7 64bit、Windows 10 64bit

      虛擬機:VMware15.5.5

      Linux開發環境:Ubuntu18.04.4 64bit

      U-Boot:U-Boot-2018.07

      Kernel:Linux-5.4.61

      LinuxSDK:T113_Tina5.0-V1.0(Linux)

      T113-i處理器支持Linux(Kernel-5.4.61)、HiFi4 DSP、玄鐵C906 RISC-V組合的OpenAMP架構設計,可滿足如工業HMI、工業PLC、物聯網網關、機器人示教器、戶用儲能EMS/BMS、汽車充電樁的需求。

      我司提供的ARM + DSP、RISC-V核間通信開發案例位于產品資料“4-軟件資料\Demo\platform-demos\rpmsg_echo\”目錄下,案例目錄說明如下表所示,其中bin目錄存放程序可執行文件,src目錄存放案例工程源文件。

       

       

      備注:

      1. 無特殊說明情況下,本文默認使用NAND FLASH配置評估板,默認從Linux系統啟動卡啟動系統(SD啟動模式)進行測試。
      2. Linux系統默認會初始化相關外設,不影響案例測試。
      3. 本文默認使用評估板USB TO UART0串口作為ARM端調試串口,RS232 UART2串口作為HiFi4 DSP/RISC-V核心調試串口,請使用Type-C線連接PC機和評估板的USB TO UART0串口,使用RS232交叉串口母母線、USB轉RS232公頭串口線,將評估板的RS232 UART2串口連接至PC機的USB接口,如下圖所示。

       

      圖 1

       

      rpmsg_echo案例

      案例功能

      案例主要使用RPMsg框架來實現異構的處理器之間進行相互通信。ARM Cortex-A7核心運行Linux系統與rpmsg_echo應用程序,HiFi4 DSP/RISC-V核心運行HiFi4 DSP/RISC-V程序,實現ARM端的rpmsg數據的接收與發送功能。

      案例程序流程圖如下:

       

      圖 2

       

      程序原理說明:

      1. HiFi4 DSP/RISC-V等待接收ARM端的rpmsg數據;
      2. ARM端的rpmsg_echo應用程序發送rpmsg數據至HiFi4 DSP/RISC-V
      3. HiFi4 DSP/RISC-V端接收到ARM端的rpmsg數據后會將數據發送回ARM端
      4. ARM端將接收來自HiFi4 DSP/RISC-V的rpmsg數據;
      5. ARM端程序與HiFi4 DSP/RISC-V程序之間循環往復接收與發送rpmsg數據,實現核間通信。

      案例測試

      將評估板上電啟動,在U-Boot倒計時結束之前按下空格鍵進入U-Boot命令行模式,執行如下命令關閉設備樹UART2配置,避免Linux內核占用案例的外設資源。
       

      U-Boot# fdt set /soc/uart@2500800 status disabled

      U-Boot# boot

       

      圖 3

       

      1.ARM Cortex-A7與HiFi4 DSP核心通信

      將本案例"dsp\bin\"目錄下的可執行文件amp_dsp0.bin拷貝至評估板系統的"/lib/firmware/"目錄下,執行如下命令,啟動HiFi4 DSP核心并加載工程鏡像。

      Target# echo amp_dsp0.bin > /sys/class/remoteproc/remoteproc0/firmware //指定加載的工程鏡像

      Target# echo start > /sys/class/remoteproc/remoteproc0/state //啟用HiFi4 DSP核心并加載工程鏡像

       

      圖 4

       

      HiFi4 DSP核心啟動后將自動運行程序,RS232 UART2串口終端將會打印如下類似信息。

       

      圖 5

       

      將案例"arm\bin\"目錄下的應用程序rpmsg_echo拷貝至評估板文件系統,執行如下命令查看程序參數信息。

      Target# ./rpmsg_echo -h

      參數解析:

      -r :rpmsg的控制節點;

      -m :發送的信息;

      -n :表示發送rpmsg數據包次數。

       

      圖 6

       

      執行如下命令運行ARM端應用程序,發送5次rpmsg數據包至HiFi4 DSP核心,當HiFi4 DSP核心每收到1次rpmsg數據包就會將數據包發送回ARM端。

      Target# ./rpmsg_echo -r dsp_rproc@0 -m tronlong -n 5

       

      圖 7

       

      ARM端程序運行時,RS232 UART2串口終端將會打印如下類似信息。

       

      圖 8

       

      執行如下命令,關閉HiFi4 DSP核心,程序將停止運行。同時RS232 UART2調試串口終端會打印如下類似信息。

      Target# echo stop > /sys/class/remoteproc/remoteproc0/state

       

      圖 9

       

      圖 10

       

      2.ARM Cortex-A7與RISC-V核心通信

      將本案例"risc-v\bin\"目錄下的可執行文件amp_rv0.bin拷貝至評估板系統的"/lib/firmware/"目錄下,執行如下命令,啟動RISC-V核心并加載工程鏡像。

      Target# echo amp_rv0.bin > /sys/class/remoteproc/remoteproc1/firmware //指定加載的工程鏡像

      Target# echo start > /sys/class/remoteproc/remoteproc1/state //啟用HiFi4 DSP核心并加載工程鏡像

       

      圖 11

       

      RISC-V核心啟動后將自動運行程序,RS232 UART2串口終端將會打印如下類似信息。

       

      圖 12

       

      將案例"arm\bin\"目錄下的應用程序rpmsg_echo拷貝至評估板文件系統,執行如下命令查看程序參數信息。

      Target# ./rpmsg_echo -h

      參數解析:

      -r :rpmsg的控制節點;

      -m :發送的信息;

      -n :表示發送rpmsg數據包的次數。

       

      圖 13

       

      執行如下命令運行ARM端應用程序,發送5次rpmsg數據包至RISC-V核心,當RISC-V核心每收到1次rpmsg數據包就會將數據包發送回ARM端。

      Target# ./rpmsg_echo -r c906_rproc\@0 -m tronlong -n 5

       

      圖 14

       

      ARM端程序運行時,RS232 UART2串口終端將會打印如下類似信息。

       

      圖 15

       

      執行如下命令,關閉RISC-V核心,程序將停止運行。

      Target# echo stop > /sys/class/remoteproc/remoteproc1/state

       

      圖 16

       

      圖 17

       

      案例編譯

      請將產品資料“4-軟件資料\Demo\platform-demos\rpmsg_echo\”案例目錄下的arm、dsp和risc-v目錄的源碼拷貝至Ubuntu工作目錄。

      1.ARM程序

      進入案例應用程序源碼目錄,執行如下命令,配置應用程序交叉編譯工具鏈環境變量,然后進行編譯,編譯完成將會在當前目錄下生成rpmsg_echo可執行程序。

      備注:若為eMMC配置評估板,請將路徑"tlt113-evm-nand"修改為"tlt113-evm-emmc"。

      Host# CC=/home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/bin/arm-linux-gnueabi-gcc make

       

      圖 18

       

      1.RISC-V程序

      請根據《RISC-V案例開發手冊》的工程編譯、程序固化步驟生成工程鏡像。

      2.HiFi4 DSP程序

      請根據《DSP案例開發手冊》的工程編譯、程序固化步驟生成工程鏡像。

      關鍵代碼

      1.ARM

      main.c文件位于案例"rpmsg_echo\arm\src\"目錄下。
       

      創建并打開rpmsg端點。

       

      圖 19

       

       

      通過rpmsg發送數據。

       

      圖 20

       

      通過rpmsg接收數據。

       

      圖 21

       

      關閉rpmsg端點

       

      圖 22

       

      2.HiFi4 DSP

      main.c文件位于案例"rpmsg_echo\dsp\src\"目錄下。

      創建任務并開始任務調度。

       

      圖 23

       

      初始化msgbox和openamp,并創建rpmsg控制器和端點。

       

      圖 24

       

      拷貝數據至信息隊列。

       

      圖 25

       

      申請內存,創建并開啟rpmsg_echo_thread線程。

       

      圖 26

       

      標記線程停止標志,釋放內存。

       

      圖 27

       

      3.RISC-V

      main.c文件位于案例"rpmsg_echo\risc-v\src\"目錄下。

      初始化openamp,并創建rpmsg控制器和端點。

       

      圖 28

       

      拷貝數據至信息隊列。

       

      圖 29

       

      申請內存,創建并開啟rpmsg_echo_thread線程。

       

      圖 30

       

      標記線程停止標志,釋放內存。

       

      圖 31

       

      posted @ 2025-08-18 14:18  創龍科技-黃工  閱讀(18)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品国产美女久久久| 日本真人添下面视频免费| 轮台县| 久久一日本道色综合久久| 久久亚洲国产精品久久| 狠狠综合久久av一区二| 狠狠色噜噜狠狠狠狠av不卡| 天天爽夜夜爽人人爽曰| 久久99精品久久久学生| 最新亚洲av日韩av二区| 亚洲成熟女人av在线观看| 日韩精品欧美高清区| 好爽毛片一区二区三区四| 极品人妻少妇一区二区三区| AV喷水高潮喷水在线观看COM| 彭水| 内射合集对白在线| 欧洲精品色在线观看| 大竹县| 99在线小视频| 东京热人妻无码一区二区av| 天天看片视频免费观看| 日韩午夜福利视频在线观看| 99久久精品久久久久久婷婷| 欧美日韩亚洲国产| 视频一区视频二区视频三| 亚洲中文一区二区av| 色婷婷日日躁夜夜躁| 色综合久久中文字幕综合网| 国产日韩久久免费影院| 亚洲一区二区三区小蜜桃| 欧洲免费一区二区三区视频| 无码日韩做暖暖大全免费不卡| 1精品啪国产在线观看免费牛牛| 精品视频在线观看免费观看| 久久国产一区二区三区| 日本东京热不卡一区二区| 亚洲色大成永久WW网站| 国内精品久久久久影院网站| 亚洲码和欧洲码一二三四| 国产午夜成人久久无码一区二区|