Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread Nano
从裸机开始,创建一个RT-Thread Nano系统工程
发布于 2018-02-06 10:58:51 浏览:4527
订阅该版
[align=center]——/// 概述 \——[align=center]☟☟☟[align=center] RT-Thread Nano是一个精炼的硬实时内核,支持多任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性,用户可以直接从MDK的Run-time Environment获取,可以使用shell高效地进行在线动态调试。在支持semaphore和mailbox特性,并运行两个线程(main线程+idle线程)情况下,ROM和RAM依然保持着极小的尺寸。我们基于Cortex M0 MCU的一个例子,编译后的大小(ROM: 3.25K, RAM: 1.04K),除去MCU需要的ROM和RAM, RT-Thread Nano本身需要的ROM是2.5K , RAM 是1K。 [align=center]![110350yuczzlzuo6p686co.jpg](/uploads/201802/06/105823dl527ce5eer952cr.jpg) 接下来将描述如何在MDK5上基于RTE(Run-Time Environment), 从裸机开始,创建一个RT-Thread RTOS的小系统工程。 [align=center]01 [align=center]**Pack安装** Pack可以通过MDK联网安装,也可以离线安装。下面开始介绍两种安装方式。**Pack Installer安装**打开MDK软件,点击工具栏的Pack Installer图标: [align=center]![110350q1wzjsd2j2fze9zh.jpg](/uploads/201802/06/105823uj8u7aggvx8hl7tw.jpg) 点击右侧的Pack,展开General,可以找到rt-thread::rthread,点击对应的Action的Install,就可以在线安装Pack了。安装成功后Action栏显示 ”Up to date”。 [align=center]![110350yi8vz7dfdf2lc8gg.jpg](/uploads/201802/06/105823v5hrwskey8wx3dgs.jpg) **手动安装****我们也可以从官网下载(****RT-Thread Nano离线安装包下载地址:[http://www.rt-thread.org/downloa ... rtthread.2.1.1.pack](http://www.rt-thread.org/download/mdk/rt-thread.rtthread.2.1.1.pack))安装文件。双击下载好的文件进行安装:**[align=center]![110452hqus2qf22fueqwzw.jpg](/uploads/201802/06/105823f7pcpwmbec3s87cp.jpg) [align=center]02 ****基础工程准备******在开始创建RT-Thread小系统之前,我们需要准备一个能正常运行的裸机工程。作为示例,这边使用的是基于STM32L072-Discovery 和Low-Level Library的一个LED 闪烁程序。程序的主要截图如下:** [align=center]![110452i02kmuummwc0kuul.jpg](/uploads/201802/06/105823thl7lls3l5hzure3.jpg) 在我们的例程中,编译下载程序后,就可以看到3个LED交替闪烁了。读者可以根据自己的需要使用其他芯片,完成一个简单的类似裸机工程。 [align=center]03 ****添加RT-Thread到工程******基于一个可以运行的裸机程序,我们来添加RT-Thread到工程。如下图,点击Manage Run-Time Environment。**[align=center]![110540zb1skazn8ok9qkon.jpg](/uploads/201802/06/105823y4rcgbd1gwzwb19f.jpg) 在Manage Rum-Time Environment里”Software Component”栏找到RTOS,Variant栏选择RT-Thread,然后勾选kernel。就可以将RT-Thread内核添加到工程了。点击”OK”就添加RT-Thread到工程了。 [align=center]![110540h4jqon1zn4wps1hw.jpg](/uploads/201802/06/105823rnmgygc8ftfcqn48.jpg) 现在可以在Project看到RT-Thread RTOS已经添加进来了,展开RTOS,可以看到这些文件被添加到工程: [align=center]![110540wwdll5d66li25d8l.jpg](/uploads/201802/06/105823km5jwxybmyst5yyz.jpg) [align=center]04 ****适配RT-Thread******在board.c完成systick的配置。以STM32L072为例,需要添加以下代码:**[list=1] (*)包含相应的头文件 (*)初始化Systick:根据系统频率和每秒tick数量,配置Systick (*)在Systick中断处理函数里添加rt_tick_increase()函数。 [/list][align=center]![110637rzlzkkk1se1l1t69.jpg](/uploads/201802/06/105823f27bf4h2sdwtk7x6.jpg) 因为RT-Thread用到了异常处理函数HardFault_Handler()和悬挂处理函数 PendSV_Handler(),所以用户代码需要保证这两个函数没有被使用。最后替换掉上面例程的delay函数:[list=1] (*)包含RT-Thread的相关头文件 (*)将delay()函数替换成rt_thread_delay(RT_TICK_PER_SECOND)。 [/list]下面是完成修改的代码: [align=center]![110637byg500nd5aslssy5.jpg](/uploads/201802/06/105823cgdphwm3qpsalmwe.jpg)编译程序之后下载到芯片就可以看到基于RT-Thread的程序运行起来了。 [align=center]05 ****更多例程******更多参看例程可以在MDK上通过Pack Installer找到。点击Pack Installer图标:** [align=center]![110637k8t77wem1zfbfa9v.jpg](/uploads/201802/06/105823dydgjgeprduuyo3u.jpg) 我们可以在Search里输入stm32l0,点击Device里的STM32L0 Serials,然后点击右侧的Example,可以看到右侧有基于stm32l0的两个例程。 [align=center]![110637nxbbfqg9w83g6xof.jpg](/uploads/201802/06/105824kfl8f2aelauefkef.jpg)
查看更多
2
个回答
默认排序
按发布时间排序
qq_还没想好
2020-08-25
这家伙很懒,什么也没写!
这个整理成文章吧
1758315512
2021-08-13
这家伙很懒,什么也没写!
增加kernel这一步按照教程都没啥问题,主要是想看你增加shell,我每次添加shell问题就不少
撰写答案
登录
注册新账号
关注者
0
被浏览
4.5k
关于作者
andychen
这家伙很懒,什么也没写!
提问
38
回答
187
被采纳
15
关注TA
发私信
相关问题
1
求高手指点,RTThread下nanosleep()函数功能如何实现?在线等啊
2
RTT1.2.2在新塘Nano130KE3BN的移植中始终出现栈溢出的问题
3
官方能否出一个nano在mdk下移植finsh到stm32的教程
4
Nano版如何启用shell
5
项目从RTT 2.x NANO移植到 RTT 3.x ENV 环境
6
nano 版本有没有集成到 IAR 中啊?
7
关于MDK5的RT-THREAD NANO中添加MSH组件的例程
8
rtt_nano版本,源代码在哪里下载啊?
9
RTT Nano 在keil 使用C++11 的问题
10
求助荔枝派nano编译后不能生成TF卡文件
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
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
【24嵌入式设计大赛】基于RT-Thread火星一号华为云平台储能监测管理系统
2
RVBacktrace RISC-V极简栈回溯组件
3
一文教你如何在VSCODE中搭建RT-Thread开发环境
4
分享第一次PR的经历
5
EtherCAT EOE移植及上手说明
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
ota在线升级
WIZnet_W5500
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
中断
flashDB
socket
Debug
GD32
编译报错
msh
keil_MDK
at_device
rt_mq_消息队列_msg_queue
ulog
C++_cpp
SFUD
本月问答贡献
出出啊
1512
个答案
341
次被采纳
小小李sunny
1437
个答案
289
次被采纳
张世争
774
个答案
167
次被采纳
crystal266
546
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部