uart_echo案例
案例功能
實(shí)現(xiàn)RS485 UART1串口的回顯功能。RISC-V核心等待RS485 UART1串口輸入字符,再通過RS485 UART1串口終端回顯輸入的字符。
圖?23
案例測(cè)試
在U-Boot命令行執(zhí)行如下命令,關(guān)閉設(shè)備樹UART1和UART2配置。
備注:此修改方法重啟評(píng)估板后會(huì)失效。
Target# fdt set /soc/uart@2500400 status disabled
Target# fdt set /soc/uart@2500800 status disabled
Target# boot
圖?24
將本案例bin目錄下的可執(zhí)行文件amp_rv0.bin拷貝至評(píng)估板系統(tǒng)的"/lib/firmware/"目錄下,執(zhí)行如下命令,啟動(dòng)RISC-V核心并加載工程鏡像。
Target# echo amp_rv0.bin> /sys/class/remoteproc/remoteproc1/firmware //指定加載的工程鏡像
Target# echo start > /sys/class/remoteproc/remoteproc1/state //啟用RISC-V核心并加載工程鏡像
圖?25
RISC-V核心啟動(dòng)后將自動(dòng)運(yùn)行程序,在串口調(diào)試終端輸入字符后按回車,RS485 UART1串口終端將會(huì)對(duì)輸入字符進(jìn)行回顯,并打印如下類似信息。
圖?26
RS232 UART2調(diào)試串口終端將會(huì)打印如下類似信息。
圖?27
執(zhí)行如下命令,關(guān)閉RISC-V核心,程序?qū)⑼V惯\(yùn)行。
Target# echo stop > /sys/class/remoteproc/remoteproc1/state
圖?28
案例編譯
請(qǐng)將案例src文件夾拷貝至Ubuntu工作目錄下,執(zhí)行如下命令,更換sys_config.fex文件,添加RS485 UART1支持。
備注:由于實(shí)現(xiàn)RS485 UART1串口的回顯功能需要修改sys_config.fex文件,添加RS485 UART1支持。我司提供的sys_config.fex已添加RS485 UART1支持,詳情請(qǐng)查看“關(guān)鍵代碼”小節(jié)。
Host# cd /home/tronlong/T113/tina5.0_v1.0/rtos/
Host# cp board/t113_i_c906/evb1_auto/configs/sys_config.fex board/t113_i_c906/evb1_auto/configs/sys_config-back.fex
Host# cp /home/tronlong/Demo/risc-v-demos/uart_echo/src/sys_config.fex board/t113_i_c906/evb1_auto/configs/sys_config.fex
圖?29
修改完成后,請(qǐng)根據(jù)工程編譯、程序固化步驟生成工程鏡像。
關(guān)鍵代碼
1.UART1初始化,創(chuàng)建線程,開始線程。
圖?30?main.c
2.設(shè)置串口波特率為115200,數(shù)據(jù)位為8位,1位停止位,無奇偶校驗(yàn),并關(guān)閉流控制。
圖?31?main.c
3.串口任務(wù)。
圖?32?main.c
4.添加RS485 UART1支持。
圖?33?sys_config.fex
spi_rw案例
案例功能
主要演示T113-i(RISC-V)與Spartan-6(FPGA)處理器之間的SPI通信。案例源碼位于“4-軟件資料Demorisc-v-demosspi_rw”目錄下。
RISC-V實(shí)現(xiàn)SPI Master功能,具體如下:
配置SPI總線極性和相位、通信速率、數(shù)據(jù)字長(zhǎng)度等。
選擇模式為單線模式。
發(fā)送數(shù)據(jù)至SPI總線,并從SPI總線讀取數(shù)據(jù)。
打印發(fā)送和接收速率。
校驗(yàn)讀寫數(shù)據(jù),然后打印誤碼率。
FPGA端實(shí)現(xiàn)SPI Slave功能,具體如下:
FPGA將SPI Master發(fā)送的數(shù)據(jù)保存至BRAM。
SPI Master發(fā)起讀數(shù)據(jù)時(shí),F(xiàn)PGA從BRAM讀取數(shù)據(jù)通過SPI總線傳輸給SPI Master。
當(dāng)SPI總線為雙線模式,接收數(shù)據(jù)支持雙線模式,而發(fā)送數(shù)據(jù)不支持雙線模式。
圖?34?RISC-V程序流程圖
案例測(cè)試
由于評(píng)估底板拓展接口未預(yù)留SPI總線引腳,因此需參考如下方法進(jìn)行飛線連接,并且應(yīng)盡可能使用短線連接。
圖?35
1.請(qǐng)根據(jù)評(píng)估底板絲印將SPI1的測(cè)試點(diǎn)TP25(SPI1 MISO)、TP26(SPI1 MOSI)、TP27(SPI1 CLK)、TP28(SPI1 CS)通過飛線引出。
圖?36
圖?37
2.將飛線引出的引腳與創(chuàng)龍科技TL-HSAD-LX采集卡的拓展接口(KJ2)按照下表對(duì)應(yīng)關(guān)系進(jìn)行連接。

3.將評(píng)估底板LVDS LCD接口的第26引腳(GND)連接至TL-HSAD-LX采集卡拓展接口(KJ13)的第1引腳,進(jìn)行共地連接。
圖?38
TL-HSAD-LX采集卡上電啟動(dòng),加載運(yùn)行案例"bram_spibin"目錄下的程序可執(zhí)行文件,bram_spi程序支持SPI單線模式。
評(píng)估板上電啟動(dòng),在U-Boot命令行執(zhí)行如下命令,關(guān)閉UART1節(jié)點(diǎn)并刪除usb0_vbus節(jié)點(diǎn)GPIO配置。
備注:此修改方法重啟評(píng)估板后會(huì)失效。
Target# fdt set /soc/uart@2500400 status disabled
Target# fdt rm /usb0-vbus gpio
Target# boot
圖?39
將本案例bin目錄下的可執(zhí)行文件amp_rv0.bin拷貝至評(píng)估板系統(tǒng)的"/lib/firmware/"目錄下,執(zhí)行如下命令,啟動(dòng)RISC-V核心并加載工程鏡像。
Target# echo amp_rv0.bin> /sys/class/remoteproc/remoteproc1/firmware //指定加載的工程鏡像
Target# echo start > /sys/class/remoteproc/remoteproc1/state //啟用RISC-V核心并加載工程鏡像
圖?40
RISC-V核心啟動(dòng)后將自動(dòng)運(yùn)行RISC-V程序,RS232 UART2串口終端將會(huì)打印如下類似信息。
圖?41
在RS232 UART2串口終端,點(diǎn)擊回車鍵,執(zhí)行如下命令查詢程序命令參數(shù)。
Target# spi_rw -h
圖?42
功能測(cè)試
在RS232 UART2串口終端,執(zhí)行如下命令運(yùn)行程序,RISC-V通過SPI總線寫入2KByte隨機(jī)數(shù)據(jù)至FPGA BRAM,然后讀出數(shù)據(jù)、進(jìn)行數(shù)據(jù)校驗(yàn),同時(shí)打印SPI總線讀寫速率和誤碼率,如下圖所示。
Target# spi_rw -s 5000000 -OH -m 1 -S 2048 -c 2
參數(shù)解析:
-s:設(shè)置通信時(shí)鐘頻率(Hz);
-O:時(shí)鐘極性反轉(zhuǎn)(CPOL=1);
-H:下降沿采集數(shù)據(jù)(CPHA=1);
-m:選擇模式傳輸模式(1表示單線模式。2表示雙線模式);
-S:設(shè)置傳輸數(shù)據(jù)大小,單位為Byte;
-c:循環(huán)傳輸數(shù)據(jù)包的次數(shù)。
圖?43
本次測(cè)試指定SPI總線通信時(shí)鐘頻率為5MHz,則SPI單線模式理論通信速率為:(5000000/1024/1024/8)MB/s ≈0.596MB/s。從上圖可知,本次實(shí)測(cè)SPI單線模式寫速率為0.565MB/s,讀速率為0.565MB/s,誤碼率為0.0%。
備注:由于本案例硬件采用飛線方式進(jìn)行連接,因此若設(shè)置SPI總線通信時(shí)鐘頻率超過10MHz,可能會(huì)出現(xiàn)誤碼現(xiàn)象。
案例編譯
將案例src源碼目錄拷貝至Ubuntu工作目錄下,進(jìn)入源碼目錄。執(zhí)行如下命令,拷貝src源碼目錄下的spi_rw文件夾到LinuxSDK目錄"rtos/lichee/rtos-hal/hal/test/"下。
Target# cd /home/tronlong/T113/tina5.0_v1.0/rtos/
Target# cp -r /home/tronlong/Demo/risc-v-demos/spi_rw/src/spi_rw/ lichee/rtos-hal/hal/test/
圖?44
執(zhí)行如下命令,修改LinuxSDK目錄"rtos/lichee/rtos-hal/hal/test/"下的Makefile。
Target# vi lichee/rtos-hal/hal/test/Makefile
圖?45
添加如下內(nèi)容:
obj-y += spi_rw/ //編譯完成后請(qǐng)將該內(nèi)容注釋,否則可能影響其他案例編譯
圖?46
執(zhí)行如下命令,備份并更換位于案例src源碼目錄下的sys_config.fex文件,添加SPI1支持。
備注:我司提供的sys_config.fex已添加SPI1支持,詳情請(qǐng)查看“關(guān)鍵代碼”小節(jié)。
Host# cp board/t113_i_c906/evb1_auto/configs/sys_config.fex board/t113_i_c906/evb1_auto/configs/sys_config-back.fex
Host# cp /home/tronlong/Demo/risc-v-demos/spi_rw/src/sys_config.fex board/t113_i_c906/evb1_auto/configs/sys_config.fex
圖?47
修改完成后,請(qǐng)根據(jù)工程編譯、程序固化步驟生成工程鏡像。
RISC-V關(guān)鍵代碼
1.單線模式。
圖?48?spi_rw.c
2.配置SPI總線。
圖?49?spi_rw.c
3.SPI傳輸功能實(shí)現(xiàn)。
圖?50?spi_rw.c
4.添加SPI1支持。
圖?51?sys_config.fex
審核編輯 黃宇
-
嵌入式開發(fā)
+關(guān)注
關(guān)注
18文章
1157瀏覽量
50203 -
RISC-V
+關(guān)注
關(guān)注
49文章
2926瀏覽量
53411
發(fā)布評(píng)論請(qǐng)先 登錄
論實(shí)時(shí)性,RISC-V究竟比ARM強(qiáng)多少?
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—雙屏異顯方案演示
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux系統(tǒng)使用手冊(cè)(三)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux系統(tǒng)使用手冊(cè)(二)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—視頻開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—ARM + FPGA通信案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—ARM + DSP、RISC-V核間通信開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—RISC-V案例開發(fā)手冊(cè)(上)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—DSP案例開發(fā)手冊(cè)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—物聯(lián)網(wǎng)模塊開發(fā)案例(上)
【創(chuàng)龍TLT113-MiniEVM開發(fā)板試用體驗(yàn)】開箱評(píng)測(cè)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—GDB程序調(diào)試方法說明
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—MQTT通信協(xié)議案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux-RT應(yīng)用開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—LVGL應(yīng)用開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—RISC-V案例開發(fā)手冊(cè)(下)
評(píng)論