前 言
本文涉及的開發(fā)案例位于產(chǎn)品資料“4-軟件資料Demo”路徑下的base-demos和python-demos目錄。
base-demos目錄存放Linux常用開發(fā)案例,案例bin目錄存放可執(zhí)行文件,案例src目錄存放源碼。python-demos目錄存放Python開發(fā)案例,案例腳本文件無需編譯,可基于我司提供的文件系統(tǒng)直接運(yùn)行。
如需重新編譯Linux常用開發(fā)案例,請先參考《Linux系統(tǒng)使用手冊》文檔正確安裝LinuxSDK,構(gòu)建適配評估板的交叉編譯工具鏈。然后將對應(yīng)案例src目錄拷貝至Ubuntu工作目錄下,在src目錄執(zhí)行如下命令配置交叉編譯工具鏈,并執(zhí)行make命令進(jìn)行案例編譯。編譯完成后,將在當(dāng)前目錄下生成可執(zhí)行文件。
備注:LinuxSDK版本號以實(shí)際情況為準(zhǔn)。
Host#source /home/tronlong/RK3576/rk3576_linux6.1_release/buildroot/output/rockchip_rk3576/host/environment-setup
Host#make
圖 1
開發(fā)板簡介
創(chuàng)龍科技 TL3576-EVM 是一款基于瑞芯微 RK3576J/RK3576高性能處理器設(shè)計(jì)的4核ARM Cortex-A72 +4核 ARM Cortex-A53 + ARM Cortex-M0 國產(chǎn)工業(yè)評估板,Cortex-A72 核心主頻高達(dá) 2.2GHz,Cortex-A53 核心主頻高達(dá) 2.0GHz。評估板由核心板和評估底板組成,核心板 CPU、ROM、RAM、電源、晶振、連接器等所有元器件均采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率100%。同時(shí),評估底板大部分元器件亦采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率約為 99%(按元器件數(shù)量占比,數(shù)據(jù)僅供參考)。核心板經(jīng)過專業(yè)的PCBLayout 和高低溫測試驗(yàn)證,質(zhì)量穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境要求。
評估板硬件資源圖解1
評估板硬件資源圖解2
Linux常用開發(fā)案例
led_flash案例
案例功能
本案例通過向評估底板用戶可編程指示燈LED設(shè)備節(jié)點(diǎn)反復(fù)交替寫入1、0數(shù)值,實(shí)現(xiàn)LED閃爍效果。LED點(diǎn)亮與熄滅時(shí)間均為0.5s。
程序流程如下圖所示。
圖 2
LED設(shè)備節(jié)點(diǎn)為"/sys/class/leds/user-ledX/"目錄下的brightness。
圖 3
操作說明
將本案例bin目錄下的可執(zhí)行程序led_flash拷貝至評估板文件系統(tǒng),并在可執(zhí)行程序所在目錄執(zhí)行如下命令運(yùn)行程序,即可看到評估底板LED以0.5s的時(shí)間間隔進(jìn)行閃爍。同時(shí),串口終端打印系統(tǒng)全部LED設(shè)備信息和程序當(dāng)前控制的LED設(shè)備信息。
Target#./led_flash -h
Target#./led_flash -n 2
圖 4
關(guān)鍵代碼
預(yù)定義LED數(shù)組。程序由此數(shù)組獲取LED信息,數(shù)組信息必須為系統(tǒng)已有LED信息,否則程序運(yùn)行報(bào)錯(cuò)。
圖 5
LED亮滅操作和時(shí)間間隔。
圖 6
key_demo案例
案例功能
本案例通過監(jiān)聽用戶輸入按鍵USER1(KEY4)、USER2(KEY5)的狀態(tài),檢測按鍵事件。
案例將獲取按鍵事件后進(jìn)行按鍵鍵值匹配,再進(jìn)行事件處理,程序流程如下圖所示。
圖 7
操作說明
本次測試以用戶輸入按鍵USER1(KEY4)示例進(jìn)行測試,如需測試用戶輸入按鍵USER2(KEY5),請修改對應(yīng)的設(shè)備節(jié)點(diǎn)。
執(zhí)行如下命令,查看USER1(KEY4)按鍵對應(yīng)的設(shè)備節(jié)點(diǎn)。
Target#cat /proc/bus/input/devices
圖 8
圖 9
將本案例bin目錄下的可執(zhí)行程序key_demo拷貝至評估板文件系統(tǒng),在可執(zhí)行程序所在目錄執(zhí)行如下命令運(yùn)行程序,串口終端將打印提示信息。再按下評估板用戶輸入按鍵USER1(KEY4),程序?qū)z測到按鍵事件,并打印按鍵狀態(tài)信息。
Target#./key_demo -h
Target#./key_demo -d /dev/input/event5
圖 10
關(guān)鍵代碼
定義按鍵。
圖 11
監(jiān)聽按鍵事件。
圖 12
循環(huán)監(jiān)聽。
圖 13
can_echo案例
案例功能
本案例實(shí)現(xiàn)通過綁定一個(gè)CAN總線接口用于接收數(shù)據(jù),當(dāng)CAN端口接收到數(shù)據(jù)后,將數(shù)據(jù)重新發(fā)送到CAN總線接口。
程序流程如下圖所示。
圖 14
操作說明
請使用USB-CAN分析儀(型號:廣成科技USBCAN-II FD)連接評估板CAN-FD1或CAN-FD2任一接口至PC機(jī)USB接口,硬件連接如下圖所示。
本次測試以CAN-FD1接口(設(shè)備節(jié)點(diǎn)為:can0)為例進(jìn)行演示。如需測試CAN-FD2接口,請將設(shè)備節(jié)點(diǎn)修改為can1。
圖 15
評估板CAN-FD1接口與USB-CAN分析儀的連接關(guān)系如下表所示。
請參照《調(diào)試工具安裝》文檔安裝GCAN Tools調(diào)試軟件。在PC端打開GCANTools軟件,選擇設(shè)備類型,然后點(diǎn)擊“打開設(shè)備”。根據(jù)USB-CAN分析儀實(shí)際硬件連接,選擇CAN1或CAN2。等待軟件檢測到設(shè)備后,將設(shè)置波特率為"1000K",數(shù)據(jù)波特率設(shè)置為5000K,然后點(diǎn)擊“確定”,如下圖所示。
圖 16
進(jìn)入GCANTools軟件發(fā)送界面,取消"CAN FD"選項(xiàng),USB-CAN分析儀連接成功后將會顯示Connected狀態(tài),如下圖所示。
圖 17
評估板啟動(dòng)進(jìn)入評估板文件系統(tǒng),執(zhí)行如下命令配置CAN0總線波特率為1Mbps,配置數(shù)據(jù)波特率為5Mbps,并啟動(dòng)CAN0總線。
Target#ip link set can0 down
Target#ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
Target#ip link set can0 up
圖 18
將本案例bin目錄下的可執(zhí)行程序can_echo拷貝至評估板文件系統(tǒng),進(jìn)入可執(zhí)行程序所在目錄,執(zhí)行如下命令查看程序參數(shù)信息。
Target#./can_echo --help
圖 19
執(zhí)行如下命令綁定CAN-FD1接口,并接收由GCANTools發(fā)出的數(shù)據(jù),然后將接收到的數(shù)據(jù)重新發(fā)送出去。在GCANTools中輸入數(shù)據(jù)并點(diǎn)擊發(fā)送按鈕,可看到有兩幀數(shù)據(jù),一幀是發(fā)送數(shù)據(jù),另一幀是接收數(shù)據(jù)。
Target#./can_echo -v can0
圖 20
圖 21
圖 22
圖 23
可按"Ctrl + Z"暫停程序,并執(zhí)行如下命令退出程序。
Target#killall -9 can_echo
圖 24
關(guān)鍵代碼
使用socket監(jiān)聽CAN接口。
圖 25
將從CAN接口接收到的數(shù)據(jù)重新發(fā)送出去。
圖 26
tcp_udp案例
案例功能
本案例主要實(shí)現(xiàn)客戶端(client)與服務(wù)端(server)的文本數(shù)據(jù)相互收發(fā)功能。本案例包含4個(gè)程序:
tcp_server:TCP服務(wù)端測試程序。
tcp_client:TCP客戶端測試程序。
udp_server:UDP服務(wù)端測試程序。
udp_client:UDP客戶端測試程序。
程序流程如下圖所示。
圖 27TCP通信
圖 28UDP通信
服務(wù)端和客戶端程序均可在評估板、PC機(jī)Ubuntu系統(tǒng)上運(yùn)行。本章節(jié)采用評估板本地回環(huán)測試,即服務(wù)端與客戶端程序均在評估板上運(yùn)行,通過127.0.0.1進(jìn)行本地回環(huán)測試,無需經(jīng)過路由器。案例bin目錄下的4個(gè)文件均為ARM端可執(zhí)行程序。
操作說明
將本案例bin目錄下的4個(gè)可執(zhí)行程序拷貝至評估板文件系統(tǒng)。
在Ubuntu中執(zhí)行如下命令使用OpenSSH登錄評估板文件系統(tǒng),如下圖所示。
Host#sudossh root@192.168.13.27 //192.168.13.27為評估板IP地址,請根據(jù)實(shí)際情況修改
圖 29
在評估板系統(tǒng)中執(zhí)行如下命令,啟用本地回環(huán)接口。
Target#ifconfig lo up
圖 30
TCP通信測試
在可執(zhí)行程序所在目錄執(zhí)行如下命令,分別在評估板運(yùn)行TCP服務(wù)端和客戶端程序。2233為服務(wù)端程序指定的端口號,客戶端程序端口號參數(shù)需與服務(wù)端程序一致。
Target#./tcp_server 2233 //TCP服務(wù)端命令
Host#./tcp_client 127.0.0.12233 //TCP客戶端命令
程序執(zhí)行后,客戶端將會連接服務(wù)端。在服務(wù)端(Target)輸入字符串"Tronlong",按下回車鍵即可在客戶端顯示對應(yīng)內(nèi)容。在客戶端(Host)輸入字符串"Hello Tronlong",按下回車鍵即可在服務(wù)端顯示對應(yīng)內(nèi)容,如下圖所示。
圖 31TCP服務(wù)端
圖 32TCP客戶端
UDP通信測試
在可執(zhí)行程序所在目錄執(zhí)行如下命令,分別在評估板運(yùn)行UDP服務(wù)端和客戶端程序。2233為服務(wù)端程序指定的端口號,客戶端程序端口號參數(shù)需與服務(wù)端程序一致。
Target#./udp_server 2233 //UDP服務(wù)端命令
Host#./udp_client 127.0.0.12233 //UDP客戶端命令
程序執(zhí)行后,客戶端將不會自動(dòng)連接服務(wù)端。服務(wù)端在收到客戶端信息前無法得知客戶端的存在,因此需要客戶端先向服務(wù)端發(fā)送信息。
在客戶端(Host)輸入字符串"Tronlong",按下回車鍵即可在服務(wù)端顯示對應(yīng)內(nèi)容。在服務(wù)端(Target)輸入字符串"Hello Tronlong",按下回車鍵即可在客戶端顯示對應(yīng)內(nèi)容,如下圖所示。
圖 33UDP服務(wù)端
圖 34UDP客戶端
如需在PC機(jī)Ubuntu系統(tǒng)運(yùn)行服務(wù)端或客戶端程序,請將案例src源碼目錄拷貝至Ubuntu工作目錄。進(jìn)入源碼目錄后執(zhí)行make命令,即可在當(dāng)前目錄下生成x86端可執(zhí)行程序。在不同終端運(yùn)行服務(wù)端或客戶端程序的命令類似,但127.0.0.1需使用服務(wù)器IP地址替代。
Host#makeclean
Host#make CC=gcc
圖 35
關(guān)鍵代碼
以TCP通信程序?yàn)槔?/p>
tcp_client.c
注意源碼中的struct sockaddr_in、socket、connect、fgets、send、recv等數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)調(diào)用的使用。
tcp_server.c
注意源碼中的struct sockaddr_in、socket、connect、fgets、send、recv、bind、listen、accept等數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)調(diào)用的使用。
由于篇幅過長等原因,部分內(nèi)容均不逐一展示,如需獲取完整版詳細(xì)資料,請關(guān)注創(chuàng)龍科技微信公眾號或官網(wǎng),或者評論區(qū)留言,感謝您的支持!
審核編輯 黃宇
-
Linux
+關(guān)注
關(guān)注
87文章
11496瀏覽量
213250 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5622瀏覽量
103597 -
瑞芯微
+關(guān)注
關(guān)注
25文章
561瀏覽量
52310
發(fā)布評論請先 登錄
全國產(chǎn)!瑞芯微 RK3576 ARM 八核 2.2GHz 工業(yè)開發(fā)板—Linux開發(fā)環(huán)境搭建

全國產(chǎn)!瑞芯微 RK3576 ARM 八核 2.2GHz 工業(yè)開發(fā)板—Linux系統(tǒng)使用手冊

全國產(chǎn)!瑞芯微 RK3576 ARM 八核 2.2GHz 工業(yè)開發(fā)板—LVGL應(yīng)用開發(fā)案例

基于瑞芯微RK3576國產(chǎn)ARM八核2.2GHz A72 工業(yè)評估板——Docker容器部署方法說明

國產(chǎn)!瑞芯微3576-Mini(8核2.2GHz)工業(yè)評估板規(guī)格書

瑞芯微RK3576,8核2.2GHz+6T算力NPU工業(yè)核心板說明書

評論