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

RT-Smart的資料合集
分析一下在rt-smart操作系統(tǒng)中將一個(gè)應(yīng)用程序運(yùn)行起來(lái)要經(jīng)過(guò)哪些步驟
在rt-smart操作系統(tǒng)中將ELF應(yīng)用程序運(yùn)行起來(lái)要經(jīng)過(guò)哪些步驟
rt-smart應(yīng)用程序系統(tǒng)調(diào)用實(shí)現(xiàn)過(guò)程是怎么樣的?
樹(shù)莓派上rt-smart的應(yīng)用編程入門

rt-smart移植分析:從樹(shù)莓派3b入手

《rt-thread驅(qū)動(dòng)框架分析》-lcd驅(qū)動(dòng)

RT-Smart ELF應(yīng)用程序加載運(yùn)行過(guò)程分析
優(yōu)雅的在D1S上運(yùn)行RT-Smart
絲滑的在RT-Smart用戶態(tài)運(yùn)行LVGL
RT-Smart riscv64匯編注釋
零基礎(chǔ)上手rt-smart適配bsp

RT-Smart應(yīng)用開(kāi)發(fā)筆記:fopen造成文件被清空問(wèn)題的分析記錄

評(píng)論