滑轨厂家
免费服务热线

Free service

hotline

010-00000000
滑轨厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

如何在rt-smart简化应用程序开发-电子发烧友网

发布时间:2022-04-25 15:10:53 阅读: 来源:滑轨厂家
如何在rt-smart简化应用程序开发-电子发烧友网

简介

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 Sma创意二维码海报
rt上运行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 GC优惠券海报
C工具链,其中还包括了针对内核的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#include 2 3#include 4 5#include 6 7 8#defineGET_PIN(PORTx,PIN)(32*(PORTx-1)+(PIN&31)) 910#defineLED_PINGET_PIN(5,3)11121314structrt_device_pin_mode1516{1718rt_uint16_tpin;1920rt_uint16_tmode;2122};2324structrt_device_pin_status2526{2728rt_uint16_tpin;2930rt_uint16_tstatus;3132};333435intmain(intargc,char**argv)3637{3839rt_device_tpin_dev;4041structrt_device_pin_modepin_mode;4243structrt_device_pin_statuspin_status;444546rt_kprintf("helloworld!");47484950pin_dev=rt_device_find("pin");5152rt_device_open(pin_dev,RT_DEVICE_OFLAG_RDWR);5354pin_mode.pin=LED_PIN;5556pin_mode.mode=0;575859rt_device_control(pin_dev,0,(void*)&pin_mode);6061pin_status.pin=LED_PIN;626364pin_status.status=1;//closeled6566rt_device_write(pin_dev,0,(void*)&pin_status,sizeof(pin_status));6768rt_thread_mdelay(200);697071pin_status.status=0;//openled7273rt_device_write(pin_dev,0,(void*)&pin_status,sizeof(pin_status));747576rt_device_close(pin_dev);7778return0;7980}

编译应用程序

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物联网操作系统】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁