一、RTduino
RTduino是RT-Thread实时操作系统的Arduino生态兼容层,为RT-Thread社区的子社区,旨在兼容Arduino社区生态来丰富RT-Thread社区软件包生态(如上千种分门别类的Arduino库,以及Arduino社区优秀的开源项目),并降低RT-Thread操作系统以及与RT-Thread适配的芯片的学习门槛。通过RTduino,可以让用户使用Arduino的函数、编程方法,轻松地将RT-Thread和BSP使用起来。用户也可以直接使用Arduino社区第三方库(例如传感器驱动库、算法库等)直接用在RT-Thread工程中,极大地补充了RT-Thread社区生态。
RTduino 支持以下开发环境
1、GCC
2、VSCode
3、RT-Thread Studio
4、Keil MDK5
K5、eil MDK6
注: RTduino作为RT-Thread软件包,其本身支持GCC工具链以及Keil AC5、AC6集成开发环境(IDE),但由于Arduino社区第三方库均为GCC工具链下编写,因此建议使用基于GCC工具链的开发环境。
适配RTduino的RT-Thread BSP
二、基于 STM32F407 芯片 建立工程
基于芯片创建工程,RT-Thread 内核是 4.1.1
选择工程的 RT-Thread Settings
选择,并保存。
等待下载完成,如下:
增加头文件,可参考 rt-thread 源码 版本 v5.1.0 中的 星火一号(stm32f407-rt-spark)
将以下文件复制到工程中。
复制后,工程 applications 文件夹如下:
编译,发现报错,提示
../packages/RTduino-latest/core/HardwareSerial.h:21:10: fatal error: pins_arduino.h: No such file or directory
头文件路径:
添加头文件路径,添加 c和c++ 的头文件路径。
编译,发现还是报错,提示如下:
../applications/arduino_pinout/pins_arduino.c:13:10: fatal error: drv_gpio.h: No such file or directory
将#include <drv_gpio.h> 改为 #include <drv_common.h> 即可
#include <drv_gpio.h>
改为
#include <drv_common.h>
重新编译,正常通过。
三、下载,测试
下载工具使用 FlyMcu。
下载地址:
http://www.mcuisp.com/chinese%20mcuisp%20web/ruanjianxiazai-chinese.htm
生成 hex 文件:
下载到开发板,运行结果如下:
参考:
https://docs.rtduino.com/#/zh/
https://gitee.com/rtduino/RTduino