RT-Thread Nano 3.0.3 的基本功能及如何下载与使用

描述

本文档介绍了RT-Thread Nano 3.0.3 的基本功能,并介绍了如何下载及使用RT-Thread Nano 3.0.3及相关BSP例程。

RT-Thread Nano 3.0.3相比上一个版本2.1.1有了些新的变化:

新增V2M-MPS2 BSP支持

修复MDK 5.14无法复制license问题

更新board.c模板,简化不必要的配置

msh命令导出默认添加RT_USED属性,不需要另外加keep选项

更新stm32_msh和lpc824_msh例子的uart代码,不再依赖drivers ipc部分

移除drivers ipc部分源码

1 本文的目的和结构

1.1 本文的目的和背景

RT-Thread Nano 是 RT-Thread推出的极简版实时操作系统,适用于家电、消费电子、医疗设备、工控等领域大量使用的32位ARM入门级MCU的场合。本文档是快速入门文档,方便用户快速上手使用RT-Thread Nano 3.0.3。

1.2 本文的结构

本文首先介绍RT-Thread Nano 3.0.3基本功能,然后讲解了如何安装及配置RT-Thread Nano 3.0.3及如何获取RT-Thread Nano 3.0.3相关例程。

2 RT-Thread Nano 简介

RT-Thread Nano是一个精炼的硬实时内核,内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。MDK5以后采用pack形式管理芯片及各种相关组件,RT-Thread Nano也是通过MDK pack方式发布,RT-Thread Nano pack包括device drivers、kernel 和 shell (msh) 三部分功能,用户可以从MDK的Run-time Environment按需要加载。

STM32

图2-1 RT-Thread Nano主要功能

在支持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。

STM32

图2-2 RT-Thread Nano内存占用情况

用户基于Nano的应用程序可以直接迁移到RT-Thread完整版。接下来将描述如何在MDK5上基于RTE(Run-Time Environment), 从裸机开始,创建一个RT-Thread RTOS的小系统工程。

3 Pack安装

Pack可以通过MDK联网安装,也可以离线安装。下面开始介绍两种安装方式。

Pack Installer安装

打开MDK软件,点击工具栏的Pack Installer图标:

STM32

图3-1 Packs安装

点击右侧的Pack,展开General,可以找到rt-thread::rthread,点击对应的Action的Install,就可以在线安装Pack了。安装成功后Action栏显示 ”Up to date”。

STM32

图3-2 Packs管理

手动安装

我们也可以从官网下载安装文件,RT-Thread Nano离线安装包下载,双击下载好的文件进行安装:

STM32

图3-3 Packs手动安装

4 基础工程准备

在开始创建RT-Thread小系统之前,我们需要准备一个能正常运行的裸机工程。作为示例,本文使用的是基于STM32L072-Discovery 和Low-Level Library的一个LED 闪烁程序。程序的主要截图如下:

STM32

图4-1 STM32L072-Discovery示例

在我们的例程中,编译下载程序后,就可以看到3个LED交替闪烁了。读者可以根据自己的需要使用其他芯片,完成一个简单的类似裸机工程。

5 添加RT-Thread Nano到工程

基于一个可以运行的裸机程序,我们来添加RT-Thread到工程。如下图,点击Manage Run-Time Environment。

STM32

图5-1 MDK RTE

在Manage Rum-Time Environment里”Software Component”栏找到RTOS,Variant栏选择RT-Thread,然后勾选kernel,点击”OK”就添加RT-Thread内核到工程了。

STM32

图5-2 Nano内核添加

现在可以在Project看到RT-Thread RTOS已经添加进来了,展开RTOS,可以看到添加到工程的文件:

STM32

图5-3 添加了RTOS的工程

Kernel文件包括:

clock.c components.c device.c idle.c ipc.c irq.c kservice.c mem.c object.c scheduler.c thread.c timer.c

Cortex-M芯片内核移植代码:

cpuport.c context_rvds.s

应用代码及配置文件:

board.c rtconfig.h

6 适配RTThread

RT-Thread会用到了异常处理函数HardFault_Handler()和悬挂处理函数PendSV_Handler(),以及Systick中断服务函数SysTick_Handler(),所以用户代码需要保证这几个函数没有被使用,若编译提示函数重复定义,请删除自己定义的函数。

RT-Thread Nano 3.0.3 在 board.c 中默认完成了systick 的配置,用户可以修改宏RT_TICK_PER_SECOND的值配置每秒systick数。

STM32

图6-1 systick配置

RT-Thread Nano 3.0.3 默认是使用数组作为heap。

STM32

图6-2 heap配置

替换例程中的delay函数:

1). 包含RT-Thread的相关头文件

2). 将delay()函数替换成rt_thread_delay(RT_TICK_PER_SECOND)

下面是完成修改的代码:

STM32

图6-3 异常处理修改

编译程序之后下载到芯片就可以看到基于RT-Thread的程序运行起来了。

7 RT-Thread Nano配置

RT-Thread是一个高度可配置的嵌入式实时操作系统,配置文件是rtconfig.h。Nano就是rtconfig.h配置下实现了2.5K ROM,1K RAM的内核应用。用户可以根据自己的需要通过修改rtconfig.h文件里面的宏定义配置相应功能。

RT-Thread Nano默认未开启宏RT_USING_HEAP,故只支持静态方式创建任务及信号量。若要通过动态方式创建对象则需要在rtconfig.h文件里开启RT_USING_HEAP宏定义。

MDK的配置向导configuration Wizard 可以很方便的对工程进行配置,Value一栏可以选中对应功能及修改相关值,等同于直接修改配置文件rtconfig.h。

STM32

图7-1 Nano配置

8 BSP例程

目前有5个RT-Thread Nano 参考例程,2个基于stm32l0的例程,2个基于lpc824的例程,以及Nano 3.0.3 新增的基于V2M-MPS2的例程。所有例程都可以在MDK上通过Pack Installer找到。点击Pack Installer图标:

STM32

图8-1 pack installer

在Search里输入stm32l0,点击Device里的STM32L0 Serials,然后点击右侧的Example,可以看到右侧有基于stm32l0的两个例程。

STM32

图8-2 例程

V2M-MPS2 msh 例程简介

V2M-MPS2是MDK提供的开发板,配合Fast Models Debugger(需要MDK-ARM Professional授权且只支持64位系统),就可以不依赖任何硬件,在Cortex-M平台调试代码。

使用V2M-MPS2需要打开windows的telnet客户端:

win7打开telnet客户端(https://jingyan.baidu.com/article/eb9f7b6d8701ae869364e826.html)

win10打开telnet客户端(https://jingyan.baidu.com/article/ceb9fb10a9a1b48cad2ba0c4.html)

打开telnet后,在MDK的Pack Installer里面的Device选择ARM,右侧点击example,可以看到一个基于V2M_MPS2的msh例程。

STM32

图8-3 V2M_MPS2 msh例程

点击Copy,导出该例子,编译工程仿真运行,下面是运行成功的截图。

STM32

图8-4 V2M_MPS2 msh例程运行成功截图

RT-Thread 同样提供了基于RT-Thread完整版的V2M-MPS2的BSP(板级支持包)(https://github.com/RT-Thread/rt-thread/tree/master/bsp/v2m-mps2),用户可以通过github获取。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分