一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在rt-smart簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2022-01-04 15:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡(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#include
 2
 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)注明出處。

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    通過(guò)Uboot?TFTP啟動(dòng)rt-smart內(nèi)核

    介紹Windows下通過(guò) Uboot??TFTP 方式下載和啟動(dòng)rt-smart 內(nèi)核
    的頭像 發(fā)表于 06-30 12:34 ?4283次閱讀
    通過(guò)Uboot?TFTP啟動(dòng)<b class='flag-5'>rt-smart</b>內(nèi)核

    RT-Smart的資料合集

    可知,RT-Smart 32 位內(nèi)核運(yùn)行在地址空間的高地址,而用戶程序代碼運(yùn)行在低地址。2、RT-Smart物理頁(yè)內(nèi)存管理詳解伙伴系統(tǒng)在現(xiàn)代操作系統(tǒng)中被廣泛地用于分配連續(xù)的物理內(nèi)存頁(yè)。其基本思想是將物理
    發(fā)表于 03-22 15:06

    分析一下在rt-smart操作系統(tǒng)中將一個(gè)應(yīng)用程序運(yùn)行起來(lái)要經(jīng)過(guò)哪些步驟

    1、RT-Smart ELF 應(yīng)用程序加載運(yùn)行在用戶態(tài)應(yīng)用程序處理的任務(wù)中,elf 加載運(yùn)行是一個(gè)比較重要的步驟,下面就分析一下在 rt-smart 操作系統(tǒng)中,想要將一個(gè)
    發(fā)表于 04-13 17:17

    rt-smart操作系統(tǒng)中將ELF應(yīng)用程序運(yùn)行起來(lái)要經(jīng)過(guò)哪些步驟

    1、RT-Smart ELF應(yīng)用程序加載運(yùn)行在用戶態(tài)應(yīng)用程序處理的任務(wù)中,elf 加載運(yùn)行是一個(gè)比較重要的步驟,下面就分析一下在 rt-smart 操作系統(tǒng)中,想要將一個(gè)
    發(fā)表于 06-13 18:18

    rt-smart應(yīng)用程序系統(tǒng)調(diào)用實(shí)現(xiàn)過(guò)程是怎么樣的?

    rt-smart應(yīng)用程序系統(tǒng)調(diào)用實(shí)現(xiàn)過(guò)程是怎么樣的? 比如open時(shí)候怎么一步一步切換到內(nèi)核態(tài)的?
    發(fā)表于 09-08 17:00

    樹(shù)莓派上rt-smart的應(yīng)用編程入門

    文章,一些介紹及樹(shù)莓派上rt-smart的應(yīng)用編程入門(更多的從應(yīng)用程序角度入手)。后續(xù)還包括在rt-smart上的不同應(yīng)用程序介紹: wget curl移植 busybox移植 sd
    的頭像 發(fā)表于 05-13 14:10 ?3589次閱讀
    樹(shù)莓派上<b class='flag-5'>rt-smart</b>的應(yīng)用編程入門

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

    移植rt-smart到最新的板子上具體需要注意哪些細(xì)節(jié),哪些才是移植rt-smart的關(guān)鍵點(diǎn)?本文從樹(shù)莓派3b上移植rt-smart的角度,從頭分析rt-sm...
    發(fā)表于 01-25 18:48 ?0次下載
    <b class='flag-5'>rt-smart</b>移植分析:從樹(shù)莓派3b入手

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

    首發(fā):Rice 嵌入式開(kāi)發(fā)技術(shù)分享作者:RiceDIY簡(jiǎn)介rt-smart相關(guān)文章《rt-smart的第一個(gè)應(yīng)用程序,imx6ull用戶態(tài)點(diǎn)燈》《r
    發(fā)表于 01-25 19:24 ?2次下載
    《<b class='flag-5'>rt</b>-thread驅(qū)動(dòng)框架分析》-lcd驅(qū)動(dòng)

    RT-Smart ELF應(yīng)用程序加載運(yùn)行過(guò)程分析

    在用戶態(tài)應(yīng)用程序處理的任務(wù)中,elf 加載運(yùn)行是一個(gè)比較重要的步驟,下面就分析一下在 rt-smart 操作系統(tǒng)中,想要將一個(gè)應(yīng)用程序運(yùn)行起來(lái)要經(jīng)過(guò)哪些步驟。
    的頭像 發(fā)表于 11-02 09:57 ?1284次閱讀

    優(yōu)雅的在D1S上運(yùn)行RT-Smart

    -Thread Smart 是基于 RT-Thread 操作系統(tǒng)上的混合操作系統(tǒng),簡(jiǎn)稱為 rt-smart,它把應(yīng)用從內(nèi)核中獨(dú)立出來(lái),形成獨(dú)立的用戶態(tài)應(yīng)用程序,并具備
    的頭像 發(fā)表于 11-16 20:15 ?3398次閱讀

    絲滑的在RT-Smart用戶態(tài)運(yùn)行LVGL

    開(kāi)發(fā)流程 1、RT-Smart 環(huán)境搭建 下載 RT-Smart 用戶態(tài)應(yīng)用代碼: 1 git?clone?https: //github.com/RT-Thread/userapps
    的頭像 發(fā)表于 11-22 20:20 ?1591次閱讀

    RT-Smart riscv64匯編注釋

    rt-smart在全志D1上的代碼為例,主要注釋了rt-smart在riscv64上的系統(tǒng)初始化和異常處理的代碼倉(cāng)庫(kù)地址https://gitee.com/rtthread/rt
    的頭像 發(fā)表于 02-08 21:40 ?1565次閱讀

    零基礎(chǔ)上手rt-smart適配bsp

    RT-Thread Smart(簡(jiǎn)稱rt-smart)是基于RT-Thread操作系統(tǒng)衍生,面向帶MMU(Memory Management Unit),中高端應(yīng)用的芯片,例如ARM
    的頭像 發(fā)表于 08-08 10:34 ?1614次閱讀
    零基礎(chǔ)上手<b class='flag-5'>rt-smart</b>適配bsp

    RT-Smart riscv64匯編注釋

    rt-smart在全志D1上的代碼為例,主要注釋了rt-smart在riscv64上的系統(tǒng)初始化和異常處理的代碼
    的頭像 發(fā)表于 10-12 17:26 ?917次閱讀
    <b class='flag-5'>RT-Smart</b> riscv64匯編注釋

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

    RT-Smart 應(yīng)用(apps)開(kāi)發(fā)環(huán)境,ubuntu 20.04 + win10 VS Code
    的頭像 發(fā)表于 10-20 16:01 ?926次閱讀
    <b class='flag-5'>RT-Smart</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>筆記:fopen造成文件被清空問(wèn)題的分析記錄