簡介
RT-Thread Smart做為一個“新”的系統,在開發上相比原來的RT-Thread模式還是存在著挺大的不同。原來的RT-Thread開發,是把相關的應用都寫入到內核中,最終編譯在一個映像中進行運行,基本的過程就是編寫代碼,編譯,燒寫,運行或調試。而內核和應用獨立的開發方式則是,內核相對穩定、固定,改動的基本上都是應用程序。所以一般是編寫應用程序,編譯,然后通過一定的方式放入到目標板上進行運行。這個也是Linux的一貫思路、方式,會有一個把應用程序放入到目標板的過程,Linux下可以是NFS網絡文件系統的方式,然后調試也并不是都具備,或者有的時候使用命令行的gdb調試模式等<唔,有些些復雜>。
在rt-smart上也一直在思考如何簡化應用程序開發,最初的有RT-Thread Studio集成開發環境,基本上可以做到創建應用程序,編譯,調試的完整過程。但隨著rt-smart的往后延申、發展,因為它同時也提供了完整POSIX環境,可以把Linux的一些應用程序無縫地移植到rt-smart上,在編譯的時候更好的方式是在Linux下進行。這個時候只支持Windows的RT-Thread Studio就有些沒那么很好的滿足要求了。而同時VS Code還有運行在Windows主機,遠程ssh穿越到Linux的模式,這樣使用VS Code無疑會是一種便利并小巧的模式。在這樣的考慮下,那么是否可以有一份簡單的VS Code插件,把開發變得更簡單。
不服就干,一鍵,編譯/下載/調試,三連擊!
VS Code的RT-Thread Smart插件介紹
在這樣的想法下,VS Code下的RT-Thread Smart插件擴展就出爐了,簡單就是它的方式,支持的功能包括:
l創建 RT-Thread Smart 工程
l支持 CMake、Make、scons 等構建方式
l支持清理工程
l支持一鍵下載、調試
l支持在不同的平臺,例如Linux、Windows下進行開發
安裝VS Code RT-Thread Smart插件
在使用RT-Thread Smart插件時,首先是需要在VS Code中安裝它。目前VS Code RT-Thread Smart插件已經上傳到VS Code市場,所以安裝非常方便,可以直接在VS Code 的擴展市場中搜索 RT-Thread Smart,點擊安裝即可:
下面我們配合著運行RT-Thread Smart的ARM Cortex-A7開發板,ART-pi smart來使用、體驗一番吧。
搭建ART-Pi Smart環境
硬件環境搭建
● 串口連接:下方的 USB Type-C 接口,既是用作電源供電,同時也是 USB 轉 UART 接口,主要用于系統的控制臺命令行交互,包括控制臺輸入和輸出
●網絡接口:通過路由器和網線(或者通過板載的 RW007 WiFi 模塊),將開發板和測試電腦連接在同一個局域網內
(ART-Pi Smart開發板具備串口USB Type-C供電的功能,但如果你需要跑更復雜的液晶屏應用時,可能會出現供電不足的問題,這個時候可以外接USB Type-C到USB接口的方式來解決供電的問題)
準備軟件環境
(以下鏈接請復制至外部瀏覽器打開)
要在ART-Pi Smart上運行RT-Thread Smart系統,需要下載ART-Pi Smart開發板SDK及工具鏈并進行安裝。開發板的SDK放在gitee倉庫中,它主要包括 RT-Thread Smart 操作系統的源碼,BSP 驅動,應用程序 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工具鏈,其中還包括了針對內核的libc以及用戶態針對應用程序的libc。用戶可以根據自己的開發平臺(Linux,Windows)情況來選擇不同版本的工具鏈,下載鏈接是:
https://pan.baidu.com/s/1p7PRhV3dTGIb7hxv34YWYw
提取碼: ndxq
在下載工具鏈后,需要把它解壓到ART-Pi smart SDK的/tools/gnu_gcc路徑下。
另外在ART-Pi smart開發板的eMMC內已經固化了一個rt-smart 內核固件,可以上電直接開機使用(如果希望下載自己編譯的內核,可以通過u-boot + tftp 或 usb 方式加載運行)
小試牛刀寫個應用程序試試
這里將以 Windows 環境下使用 VS Code 開發 rt-smart 用戶應用程序為例來體驗VS Code的RT-Thread Smart插件擴展。
創建工程
在 VS Code 上使用Ctrlt+Shift+P快捷鍵,輸入 RT-Thread 關鍵字,選擇“創建 RT-Thread Smart 工程”, 然后按提示執行以下操作:
● 輸入ART-Pi Smart的SDK 根目錄
● 輸入工程名稱
●選擇構建方式
Linux 平臺支持 CMake、Make、scons 等構建工具
Windows 平臺支持 scons 構建工具
以 Windows 環境下使用 VS Code 開發 rt-smart 用戶應用程序為例
添加用戶功能代碼
用戶應用,我們來點個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}
編譯應用程序
1. 點擊 VS Code 左下角的“編譯”、“清理”、“下載” 狀態欄,會自動執行編譯工程、清理工程、下載用戶 APP 固件文件到開發板,這里我們選擇編譯功能。
2.編譯通過后,會自動生成用戶APP 固件,默認的名稱是hello.elf
GDB 在線調試
為了更好的支持應用程序調試,在RT-Thread Smart內核中運行了一個GDB調試樁,可以通過它來調試用戶態應用程序,源碼級調試。這種方式也是一種軟調試,免仿真器,而和PC主機連接則可以使用TCP網絡連接或者串口連接,未來在RT-Thread Smart上還會支持USB連接。
在使用VS Code插件創建rt-smart應用程序時,它會默認把相關的配置都預先設置好,對于調試來說,主要會有個板卡的IP地址設置,這點需要多注意到。在ART-Pi smart開發板上,可以通過命令行命令ifconfig來獲得板卡的IP地址。
在 VS Code 上直接按 F5 快捷鍵, 即可啟動 GDB 在線調試 rt-smart 用戶應用程序。如下圖所示,進入調試模式之后,VS Code 左側會自動跳轉到 “運行和調試” 視圖,可以查看變量、監視變量、查看調用堆棧、設置斷點等常用調試功能。
在調試的過程中,我們也可以看到板卡上的LED燈在閃爍。
最后我們用一個連貫的短視頻來結束整個過程
視頻內容(操作順序):啟動 rt-smart 內核、安裝 C/C++ 插件、RT-Thread Smart 插件、Windows 下創建 rt-smart 用戶應用程序(scons)、修改用戶代碼(增加 GPIO LED 控制)、編譯、下載、GDB 在線調試等操作。
通過這樣的方式,我們是不是發現這個開發方式很簡單,有些類似MCU上的Keil MDK/IAR的開發模式?編寫程序,編譯/燒寫/調試。非常簡潔,可以避免一些Linux初學者對于如何編譯程序,并把它下載運行的迷茫。
在后續中,RT-Thread Smart及VS Code插件還會不斷升級,包括對USB的支持,對Linux下一般應用程序,編譯/調試的支持,后續見!
RT-Thread Smart 交流平臺
如果遇到什么問題需要協助,或有什么建議和意見需要反饋的,可以加入 ART-Pi Smart 官方交流 QQ 群或者登錄論壇的 rt-smart 板塊發帖反饋。
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 論壇板塊(發帖反饋):
https://club.rt-thread.org/ask/tag/1339.html
原文標題:如何使用 VSCode 開發 RT-Thread Smart 應用程序
文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
-
WINDOWS
+關注
關注
4文章
3569瀏覽量
89301 -
應用程序
+關注
關注
38文章
3292瀏覽量
57912 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40386
原文標題:如何使用 VSCode 開發 RT-Thread Smart 應用程序
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論