rtthread studio快速创建工程
1,官网下载最新的rtthread studio,一路安装即可
2,ENV(可选)
env是RTT 开发辅助工具,提供编译构建环境,图形化配置以及软件包管理,内置的menuconfig提供了配置裁剪工具,可以对内核,组件和软件包裁剪
先去下载env工具,安装,双击打开env,然后上方点击鼠标右键,设置,找到integration,注册,保存即可。然后就可以右键随意目录下打开了
1,生成keil工程
scons --target=mdk5,然后可以去IDE编译
2,默认gcc自动编译
scons即可,默认是gcc
3.menuconfig
输入以上指令即可进入配置页面,可以自动处理依赖关系。
上下左右箭头切换菜单,回车就是OK
空格就是打开或者关闭选择
?查看帮助
/搜索
4.软件包管理pkgs
使用之前先执行pkgs --upgrade
先找到软件包,然后选中,接着输入指令pkgs --update即可下载
1.新建工程
文件->新建->rtthread项目
选择基于芯片,版本号用4.1.1版本(其他版本有的不行),选择芯片型号,log口,下载口等配置
2.双击rt-thread settings配置
1.搜索eth,组件里面使能网络社保驱动程序
2.搜索lwip,版本2.1.2
3.搜索mebdtls,版本latest
4.搜索旧版本,使能旧版本兼容性支持
5.编译
6.点击图标->打开调试配置->点击Download->更改复位模式为system reset->确定退出
3.双击cubemx配置
配置时钟,下载方式,log串口,以及其他使用的外设。
打开RT-Thread studio,出现如下弹框,点击确定。
注意:上面的STM32CubeMX必须关闭,否则这个弹窗将不会出现。
4.编译一堆问题如何解决
1.先检查cubemx文件夹下有没有SConscript文件,如果有就跳过创建环节,检查内容。如果没有则创建,选择cubemx文件,右键->新建->文件,输入文件名SConscript,点击完成
2.复制下面的代码到刚刚sconscript文件
注意需要使用的c文件一定要包含在代码段中,否则就算c文件在该文件夹下也不会参与编译,从而导致编译报错!!
import os
#引入os模块
from building import *
#导入building的所有模块cwd = GetCurrentDir()
#获取获取当前路径,并保存至变量cwd
src = Glob('*.c')
#获取当前目录下的所有 C 文件,并保存至src变量# add cubemx drivers
#由于RT-Thread工程中存在部分相同函数文件,所以对src重新赋值
#文件中的stm32g4xx_it.c 、 system_stm32g4xx.c不加入构建
#其余文件按相同格式填写到下述括号内
src = Split('''
Src/stm32g4xx_hal_msp.c
Src/main.c
Src/dma.c
Src/gpio.c
Src/usart.c
''')#创建路径列表,并保存至path中
path = [cwd]
path += [cwd + '/Inc']
#这是 RT-Thread 基于 SCons 扩展的一个方法(函数)。
group = DefineGroup('cubemx', src, depend = [''], CPPPATH = path)Return('group')
#这部分代码文章最后有解释
保存文件,在工程里面左边窗口点击右键弹出更新软件包。再次编译OK
5.在RT-Thread中调用CubeMx生成的函数
1.检查时钟配置,打开drv_clk.c,发现RT-Thread Studio已经自动将CubeMx的时钟配置更新到RT-Thread工程中。
新增加外设需要去以下文件增加宏定义
board.h
stm32f4xx_hal_conf.h
不同版本路径有差别
rt_weak void rt_hw_board_init() //大写RT_WEAK改为小写rt_weak,版本原因
#include "sensor.h"改为#include "drivers/sensor.h",因为没有sensor目录了
#include "drv_gpio.h" 改为#include "drv_common.h"
参考1
参考2