Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
RT-Thread学习中的小技巧
发布于 2018-09-04 10:57:40 浏览:3163
订阅该版
* 本帖最后由 san兄弟 于 2018-10-9 16:08 编辑 * 初学RT-Thread,尚未入门:shutup:,目前在摸索阶段,把摸索过程中发现的小技巧记录下来:)! **2018.09.04记录**![FastAdmin]() 1. 重要的网站[RT-Thread官网](https://www.rt-thread.org/):[https://www.rt-thread.org/](https://www.rt-thread.org/)[RT-Thread开发者论坛](https://www.rt-thread.org/qa/forum.php):[https://www.rt-thread.org/qa/forum.php](https://www.rt-thread.org/qa/forum.php)[GitHub官网](https://github.com/):[https://github.com/](https://github.com/)[正点原子官方论坛](http://www.openedv.com):[http://www.openedv.com](http://www.openedv.com) 2. Env工具支持自动补全,按Tab键即可。例如要求“在 Env 命令行中输入menuconfig”,我们输入men之后按Tab,则出现完整的menuconfig;要求“输入命令scons”,我们输入sco之后按Tab键,则出现完整的scons。 3.官方BSP中的template工程为工程模板(分MDK4、MDK5、IAR三种),修改模板配置后在使用Env生成工程时就不需要每次修改了,一劳永逸。 4.scons --dist命令的使用,借用朱天龙大神的解释。 ![scons命令.jpg](/uploads/201809/04/105559l6rwrxki663g1xtk.jpg) 由于RT-Thread源代码包含大量的BSP,工程间共用了很多操作系统相关的文件,而我需要生成自己平台相关的独立工程,在发现这个命令之前,我是将需要使用的文件拷贝出来后一个个重新添加的,累得半死,都有放弃的心理了(:loveliness:不会轻易放弃的哈),后来在Evn工具里使用scons --dist命令可以直接将自己使用的BSP相关的文件提取出来,生成dist文件夹,里面有独立工程,实在是太方便了。使用3.0.x版本需要先根据自己使用的编译软件执行SETRTT_CC=xxx指令(xxx代表gcc、keil、iar中的一种),例如我使用的是keil,具体步骤:(1)SETRTT_CC=keil,回车键;(2)scons –-dist,回车键。搞定(之前一直编译出错,经朱天龙大神指导后完美解决)。使用3.1.1及以上版本可以直接使用scons --dist指令。 **2018.09.05记录**![FastAdmin](https://www.rt-thread.org/qa/static/image/hrline/5.gif) 5.使用正点原子的stm32f429-Apollo开发板,发现USB-232的串口只能使用原子哥的XCOM V2.0接收,其它串口调试助手测试了SecureCRT 8.3、realterm、PuTTY都无法接收,原因是正点原子的开发板的复位电路和串口相连,导致使用其它串口调试助手时开发板无法正常复位,而使用正点原子的XCOM V2.0是由于软件在打开串口的时候先发送了复位信号。 开发板中另外两路使用DB9插头的串口可以正常使用各种软件! 感谢坛友flyboy的指点,引用过来! ![串口解释.jpg](/uploads/201809/05/172158gof9eebq188ia1a9.jpg) 6. [stm32f429-Apollo的BSP串口输出与官方应用笔记不一致](https://www.rt-thread.org/qa/thread-7938-1-1.html)是因为RT-Thread源码的BSP中,STM32F4xx-HAL程序中使用的是传统命令行模式(msh),而stm32f429-Apollo程序中使用的是finsh的C语言解释器模式,这两种是不一样的功能模块,可以通过Env工具查看和打开,打开msh功能后,串口输出即和应用笔记中给出的一致。 感谢坛友yqiu的指点! ![finsh和msh.jpg](/uploads/201809/05/173454w5cegw6xbcdzi13z.jpg) finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要 用于调试或查看系统信息。finsh支持两种模式: 1. C语言解释器模式,为行文方便称之为c-style; 2. 传统命令行模式,此模式又称为msh(module shell)。 **2018.10.09记录**![FastAdmin](https://www.rt-thread.org/qa/static/image/hrline/5.gif) 7. 使用Env工具修改官方BSP中的stm32f429-apollo工程,只要关闭了SPI5,重新生成工程后下载到配套的正点原子Apollo开发板中,串口会输出hard fault on thread: init,如下图,出现hard fault的原因是,在Env工具中关闭SPI5后,新的rtconfig.h文件中删除了RT_USING_SPI5的宏定义,但是此时SPI5相关的部分函数并没用进行条件编译的判断,比如drv_spi_flash.c中的rt_hw_spi5_init函数和rt_hw_spi_flash_with_sfud_init函数,同时这两个函数加入了系统的自动初始化列表,也就是在系统启动时就进行了调用。因此在调用是发生了错误,进入了hard fault,毕竟SPI5的时钟都没打开呢! 我的解决方法是给这两个函数都加上了条件编译#ifdef RT_USING_SPI5语句,给编译错误的spi_bus->parent.user_data = &stm32f4_spi5;也加上该语句,这样当SPI5被打开时也不影响其使用。第二个方法是在用Env工具修改时,关闭SPI5的同时关掉RT-Thread Components -> Device Drivers -> Using SPI Bus/Device device drivers选项,这样spi相关的驱动文件就都不会加入到工程中了。貌似方法二正规点~ ![hard fault on thread-init.jpg](/uploads/201810/09/092003uels2zqsbmbz759e.jpg)
查看更多
16
个回答
默认排序
按发布时间排序
andychen
2018-09-04
这家伙很懒,什么也没写!
很好的总结记录!
我夏了夏天
认证专家
2018-09-04
Life isn't about finding yourself, life is about creating yourself.
赞 :D
san兄弟
2018-09-04
这家伙很懒,什么也没写!
>很好的总结记录! --- 多多指导:handshake
san兄弟
2018-09-04
这家伙很懒,什么也没写!
>赞 --- 刚开始学习,多指教
venus5712
2018-09-07
这家伙很懒,什么也没写!
多谢!
san兄弟
2018-09-11
这家伙很懒,什么也没写!
>多谢! --- :handshake
yanwennian
2018-09-13
这家伙很懒,什么也没写!
scons --dist指令很给力啊:lol
san兄弟
2018-09-14
这家伙很懒,什么也没写!
>scons --dist指令很给力啊 --- 省时省力:victory:
rockjg0917
2018-09-17
这家伙很懒,什么也没写!
用scons --dist命令发现两个问题。 1.dist文件夹下的工程打开会报错,提示OS相关文件未找到。 2.重新menuconfig可以解决上述问题,但是这样系统相关文件又被定位到RTT_ROOT目录下的文件,跟dist下的rt-thread文件没有关系了。 所以我想请问,你们有没有报错?报错是如何解决的?谢谢!
san兄弟
2018-09-20
这家伙很懒,什么也没写!
>用scons --dist命令发现两个问题。 >1.dist文件夹下的工程打开会报错,提示OS相关文件未找到。 >2.重新menuco ... --- 是有1这个问题,我是拷贝出来以后,使用env执行scons --target=mdk5 -s重新生成工程就没有问题了
撰写答案
登录
注册新账号
关注者
0
被浏览
3.2k
关于作者
san兄弟
这家伙很懒,什么也没写!
提问
8
回答
36
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
2
GD32F450 片内 flash驱动适配
3
STM32H7R7运行CherryUSB
4
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
5
使用RC522软件包驱动FM1722
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
6
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部