異構(gòu)R5實(shí)時(shí)系統(tǒng)開發(fā)筆記-米爾基于國(guó)產(chǎn)芯馳D9360商顯板
本文將介紹基于米爾電子MYD-YD9360商顯板的R5協(xié)處理器開發(fā)方案測(cè)試。
本處參考<R5協(xié)處理器開發(fā)筆記>對(duì)D9360中的協(xié)處理器進(jìn)行開發(fā)測(cè)試
開發(fā)之前請(qǐng)確認(rèn)編譯環(huán)境正??梢哉?duì)鏡像進(jìn)行編譯
具體參考之前編譯Ubuntu系統(tǒng)文章,自行編譯buildroot系統(tǒng)測(cè)試
1.1 打開RTOS驅(qū)動(dòng)
freeRTOS的源碼放在ssdk包下面,我們可以通過圖形化界面啟動(dòng)RTOS系統(tǒng)。D9的ssdk圖形化界面是通過menuconfig.sh腳本配置打開,此腳本在ssdk/tools下。以D9360為例,如下:
ddj@ubuntu:~/YD9X/MYD-YD9X-SDK_V1.0/source/ssdk$ pwd/home/ddj/YD9X/MYD-YD9X-SDK_V1.0/source/ssdk
1.2 添加RTOS例程驅(qū)動(dòng)
RTOS系統(tǒng)例程在examples/kunlun/drivers
ddj@ubuntu:~/YD9X/MYD-YD9X-SDK_V1.0/source/ssdk/examples/kunlun/drivers$ ls
新建一個(gè)abc目錄
并配置Kconfig和rules.mk文件
返回driver目錄下 配置Kconfig添加ABC去東門模塊初始狀態(tài)和圖形界面類型
ABC驅(qū)動(dòng)模塊的初始狀態(tài)和圖形界面類型
在rules.mk文件下,添加如下內(nèi)容
MODULES += $(LOCAL_DIR)/abc: 如果配置選項(xiàng) CONFIG_ABC_TEST 為 "y",則會(huì)將 $(LOCAL_DIR)/abc 添加到變量 MODULES 中。這意味著當(dāng)啟用了 "ABC Test" 功能時(shí),會(huì)將 $(LOCAL_DIR)/abc 模塊添加到模塊列表中。
R5核數(shù)據(jù)發(fā)送到A55核中
將rpmsg目錄下的rpmsg_test.c文件復(fù)制到abc.c文件中,該驅(qū)動(dòng)描述如何通過RPMSG協(xié)議進(jìn)行核間通信。我們可以在此程序基礎(chǔ)上加入自己的協(xié)議,以下是R5核發(fā)送“Hello, RPMSG!”字符串到A55核,并打印出接收到的信息的函數(shù)。
1.3、1.4
----------------具體代碼參加米爾公眾號(hào)------------------------------------
保存所有代碼
編譯系統(tǒng) 燒錄
MODULES += $(LOCAL_DIR)/abc: 如果配置選項(xiàng) CONFIG_ABC_TEST 為 "y",則會(huì)將 $(LOCAL_DIR)/abc 添加到變量 MODULES 中。這意味著當(dāng)啟用了 "ABC Test" 功能時(shí),會(huì)將 $(LOCAL_DIR)/abc 模塊添加到模塊列表中。
R5核數(shù)據(jù)發(fā)送到A55核中
將rpmsg目錄下的rpmsg_test.c文件復(fù)制到abc.c文件中,該驅(qū)動(dòng)描述如何通過RPMSG協(xié)議進(jìn)行核間通信。我們可以在此程序基礎(chǔ)上加入自己的協(xié)議,以下是R5核發(fā)送“Hello, RPMSG!”字符串到A55核,并打印出接收到的信息的函數(shù)。
1.5結(jié)果顯示
在R5核調(diào)用rpmsg_test例程,向A55核發(fā)送信息
R5界面>rpmsg_test send 0 3 1>Sent: 123456789Received: 123456789
>rpmsg_test send 1 3 1>Sent: 123456789Received: 123456789
A55界面root@myd-jd9x:~# [ 22.223170] virtio_rpmsg_bus virtio0: virtio send susses[ 34.943644] sd,rpmsg-ipcc soc:ipcc@1: ipcc send susses
在A55核調(diào)用echo_test例程,向R5發(fā)送信息,打印如下:
A55界面root@myd-jd9x:~# echo_test -d virtio0.rpmsg-echo.-1.30 -c 1
Echo test startupdate rpmsg-mtu=496 from kernelsend string:Hello,RPMsg!receive string:Hello,RPMsg!
R5界面>Sending data (length 20): H e l l o , R P M s g !
評(píng)論