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

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

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

評論