簡介
RT-Thread Smart做為一個“新”的系統(tǒng),在開發(fā)上相比原來的RT-Thread模式還是存在著挺大的不同。原來的RT-Thread開發(fā),是把相關(guān)的應(yīng)用都寫入到內(nèi)核中,最終編譯在一個映像中進行運行,基本的過程就是編寫代碼,編譯,燒寫,運行或調(diào)試。而內(nèi)核和應(yīng)用獨立的開發(fā)方式則是,內(nèi)核相對穩(wěn)定、固定,改動的基本上都是應(yīng)用程序。所以一般是編寫應(yīng)用程序,編譯,然后通過一定的方式放入到目標板上進行運行。這個也是Linux的一貫思路、方式,會有一個把應(yīng)用程序放入到目標板的過程,Linux下可以是NFS網(wǎng)絡(luò)文件系統(tǒng)的方式,然后調(diào)試也并不是都具備,或者有的時候使用命令行的gdb調(diào)試模式等<唔,有些些復(fù)雜>。
在rt-smart上也一直在思考如何簡化應(yīng)用程序開發(fā),最初的有RT-Thread Studio集成開發(fā)環(huán)境,基本上可以做到創(chuàng)建應(yīng)用程序,編譯,調(diào)試的完整過程。但隨著rt-smart的往后延申、發(fā)展,因為它同時也提供了完整POSIX環(huán)境,可以把Linux的一些應(yīng)用程序無縫地移植到rt-smart上,在編譯的時候更好的方式是在Linux下進行。這個時候只支持Windows的RT-Thread Studio就有些沒那么很好的滿足要求了。而同時VS Code還有運行在Windows主機,遠程ssh穿越到Linux的模式,這樣使用VS Code無疑會是一種便利并小巧的模式。在這樣的考慮下,那么是否可以有一份簡單的VS Code插件,把開發(fā)變得更簡單。
不服就干,一鍵,編譯/下載/調(diào)試,三連擊!
VS Code的RT-Thread Smart插件介紹
在這樣的想法下,VS Code下的RT-Thread Smart插件擴展就出爐了,簡單就是它的方式,支持的功能包括:
l創(chuàng)建 RT-Thread Smart 工程
l支持 CMake、Make、scons 等構(gòu)建方式
l支持清理工程
l支持一鍵下載、調(diào)試
l支持在不同的平臺,例如Linux、Windows下進行開發(fā)
安裝VS Code RT-Thread Smart插件
在使用RT-Thread Smart插件時,首先是需要在VS Code中安裝它。目前VS Code RT-Thread Smart插件已經(jīng)上傳到VS Code市場,所以安裝非常方便,可以直接在VS Code 的擴展市場中搜索 RT-Thread Smart,點擊安裝即可:
下面我們配合著運行RT-Thread Smart的ARM Cortex-A7開發(fā)板,ART-pi smart來使用、體驗一番吧。
搭建ART-Pi Smart環(huán)境
硬件環(huán)境搭建
● 串口連接:下方的 USB Type-C 接口,既是用作電源供電,同時也是 USB 轉(zhuǎn) UART 接口,主要用于系統(tǒng)的控制臺命令行交互,包括控制臺輸入和輸出
●網(wǎng)絡(luò)接口:通過路由器和網(wǎng)線(或者通過板載的 RW007 WiFi 模塊),將開發(fā)板和測試電腦連接在同一個局域網(wǎng)內(nèi)
(ART-Pi Smart開發(fā)板具備串口USB Type-C供電的功能,但如果你需要跑更復(fù)雜的液晶屏應(yīng)用時,可能會出現(xiàn)供電不足的問題,這個時候可以外接USB Type-C到USB接口的方式來解決供電的問題)
準備軟件環(huán)境
(以下鏈接請復(fù)制至外部瀏覽器打開)
要在ART-Pi Smart上運行RT-Thread Smart系統(tǒng),需要下載ART-Pi Smart開發(fā)板SDK及工具鏈并進行安裝。開發(fā)板的SDK放在gitee倉庫中,它主要包括 RT-Thread Smart 操作系統(tǒng)的源碼,BSP 驅(qū)動,應(yīng)用程序 demo 等。可以通過 Git 方式下載 ART-Pi Smart SDK 包(Windows、Linux都可以):
git clone https://gitee.com/rtthread/ART-Pi-smart.git
RT-Thread Smart的工具鏈是基于musl libc的GNU GCC工具鏈,其中還包括了針對內(nèi)核的libc以及用戶態(tài)針對應(yīng)用程序的libc。用戶可以根據(jù)自己的開發(fā)平臺(Linux,Windows)情況來選擇不同版本的工具鏈,下載鏈接是:
https://pan.baidu.com/s/1p7PRhV3dTGIb7hxv34YWYw
提取碼: ndxq
在下載工具鏈后,需要把它解壓到ART-Pi smart SDK的/tools/gnu_gcc路徑下。
另外在ART-Pi smart開發(fā)板的eMMC內(nèi)已經(jīng)固化了一個rt-smart 內(nèi)核固件,可以上電直接開機使用(如果希望下載自己編譯的內(nèi)核,可以通過u-boot + tftp 或 usb 方式加載運行)
小試牛刀寫個應(yīng)用程序試試
這里將以 Windows 環(huán)境下使用 VS Code 開發(fā) rt-smart 用戶應(yīng)用程序為例來體驗VS Code的RT-Thread Smart插件擴展。
創(chuàng)建工程
在 VS Code 上使用Ctrlt+Shift+P快捷鍵,輸入 RT-Thread 關(guān)鍵字,選擇“創(chuàng)建 RT-Thread Smart 工程”, 然后按提示執(zhí)行以下操作:
● 輸入ART-Pi Smart的SDK 根目錄
● 輸入工程名稱
●選擇構(gòu)建方式
Linux 平臺支持 CMake、Make、scons 等構(gòu)建工具
Windows 平臺支持 scons 構(gòu)建工具
以 Windows 環(huán)境下使用 VS Code 開發(fā) rt-smart 用戶應(yīng)用程序為例
添加用戶功能代碼
用戶應(yīng)用,我們來點個LED燈:
1#include2 3#include 4 5#include 6 7 8#defineGET_PIN(PORTx,PIN)(32*(PORTx-1)+(PIN&31)) 9 10#defineLED_PINGET_PIN(5,3) 11 12 13 14structrt_device_pin_mode 15 16{ 17 18rt_uint16_tpin; 19 20rt_uint16_tmode; 21 22}; 23 24structrt_device_pin_status 25 26{ 27 28rt_uint16_tpin; 29 30rt_uint16_tstatus; 31 32}; 33 34 35intmain(intargc,char**argv) 36 37{ 38 39rt_device_tpin_dev; 40 41structrt_device_pin_modepin_mode; 42 43structrt_device_pin_statuspin_status; 44 45 46rt_kprintf("helloworld! "); 47 48 49 50pin_dev=rt_device_find("pin"); 51 52rt_device_open(pin_dev,RT_DEVICE_OFLAG_RDWR); 53 54pin_mode.pin=LED_PIN; 55 56pin_mode.mode=0; 57 58 59rt_device_control(pin_dev,0,(void*)&pin_mode); 60 61pin_status.pin=LED_PIN; 62 63 64pin_status.status=1;//closeled 65 66rt_device_write(pin_dev,0,(void*)&pin_status,sizeof(pin_status)); 67 68rt_thread_mdelay(200); 69 70 71pin_status.status=0;//openled 72 73rt_device_write(pin_dev,0,(void*)&pin_status,sizeof(pin_status)); 74 75 76rt_device_close(pin_dev); 77 78return0; 79 80}
編譯應(yīng)用程序
1. 點擊 VS Code 左下角的“編譯”、“清理”、“下載” 狀態(tài)欄,會自動執(zhí)行編譯工程、清理工程、下載用戶 APP 固件文件到開發(fā)板,這里我們選擇編譯功能。
2.編譯通過后,會自動生成用戶APP 固件,默認的名稱是hello.elf
GDB 在線調(diào)試
為了更好的支持應(yīng)用程序調(diào)試,在RT-Thread Smart內(nèi)核中運行了一個GDB調(diào)試樁,可以通過它來調(diào)試用戶態(tài)應(yīng)用程序,源碼級調(diào)試。這種方式也是一種軟調(diào)試,免仿真器,而和PC主機連接則可以使用TCP網(wǎng)絡(luò)連接或者串口連接,未來在RT-Thread Smart上還會支持USB連接。
在使用VS Code插件創(chuàng)建rt-smart應(yīng)用程序時,它會默認把相關(guān)的配置都預(yù)先設(shè)置好,對于調(diào)試來說,主要會有個板卡的IP地址設(shè)置,這點需要多注意到。在ART-Pi smart開發(fā)板上,可以通過命令行命令ifconfig來獲得板卡的IP地址。
在 VS Code 上直接按 F5 快捷鍵, 即可啟動 GDB 在線調(diào)試 rt-smart 用戶應(yīng)用程序。如下圖所示,進入調(diào)試模式之后,VS Code 左側(cè)會自動跳轉(zhuǎn)到 “運行和調(diào)試” 視圖,可以查看變量、監(jiān)視變量、查看調(diào)用堆棧、設(shè)置斷點等常用調(diào)試功能。
在調(diào)試的過程中,我們也可以看到板卡上的LED燈在閃爍。
最后我們用一個連貫的短視頻來結(jié)束整個過程
視頻內(nèi)容(操作順序):啟動 rt-smart 內(nèi)核、安裝 C/C++ 插件、RT-Thread Smart 插件、Windows 下創(chuàng)建 rt-smart 用戶應(yīng)用程序(scons)、修改用戶代碼(增加 GPIO LED 控制)、編譯、下載、GDB 在線調(diào)試等操作。
通過這樣的方式,我們是不是發(fā)現(xiàn)這個開發(fā)方式很簡單,有些類似MCU上的Keil MDK/IAR的開發(fā)模式?編寫程序,編譯/燒寫/調(diào)試。非常簡潔,可以避免一些Linux初學(xué)者對于如何編譯程序,并把它下載運行的迷茫。
在后續(xù)中,RT-Thread Smart及VS Code插件還會不斷升級,包括對USB的支持,對Linux下一般應(yīng)用程序,編譯/調(diào)試的支持,后續(xù)見!
RT-Thread Smart 交流平臺
如果遇到什么問題需要協(xié)助,或有什么建議和意見需要反饋的,可以加入 ART-Pi Smart 官方交流 QQ 群或者登錄論壇的 rt-smart 板塊發(fā)帖反饋。
ART-Pi Smart :
https://art-pi.gitee.io/smart-website/
ART-Pi Smart SDK :
https://gitee.com/rtthread/ART-Pi-smart
ART-Pi Smart 官方交流 QQ 群 :622828244
rt-smart 論壇板塊(發(fā)帖反饋):
https://club.rt-thread.org/ask/tag/1339.html
原文標題:如何使用 VSCode 開發(fā) RT-Thread Smart 應(yīng)用程序
文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3503瀏覽量
87889 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3198瀏覽量
57363 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1239瀏覽量
39438
原文標題:如何使用 VSCode 開發(fā) RT-Thread Smart 應(yīng)用程序
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論