0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

RTThread物联网操作系统 来源:未知 作者:李倩 2018-04-02 15:58 次阅读

本文档介绍了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按需要加载。

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

在支持semaphore和mailbox特性,并运行两个线程(main线程+idle线程)情况下,ROMRAM依然保持着极小的尺寸。我们基于Cortex M0 MCU的一个例子,编译后的大小(ROM: 3.25K, RAM: 1.04K),除去MCU需要的ROM和RAM, RT-Thread Nano本身需要的ROM是2.5K , RAM 是1K。

图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图标:

图3-1 Packs安装

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

图3-2 Packs管理

手动安装

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

图3-3 Packs手动安装

4 基础工程准备

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

图4-1 STM32L072-Discovery示例

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

5 添加RT-Thread Nano到工程

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

图5-1 MDK RTE

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

图5-2 Nano内核添加

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

图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数。

图6-1 systick配置

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

图6-2 heap配置

替换例程中的delay函数:

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

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

下面是完成修改的代码:

图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。

图7-1 Nano配置

8 BSP例程

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

图8-1 pack installer

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

图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例程。

图8-3 V2M_MPS2 msh例程

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

图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获取。

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

    关注

    2264

    文章

    10852

    浏览量

    354186
  • RT-Thread
    +关注

    关注

    31

    文章

    1257

    浏览量

    39815

原文标题:RT-Thread Nano 3.0.3 快速入门指南

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    从安装到使用,RT-Thread Nano最全教程看完不信你还不会使用

    RT-Thread Nano发布以来,小编收到不少开发者询问RT-Thread Nano的配套教程实例,幸得RT-Thread开发者燕十三
    的头像 发表于 09-26 06:39 5.6w次阅读
    从安装到使用,<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>最全教程看完不信你还不会使用

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(下)

    上篇介绍了如何移植 RT-Thread Nano 内核与 Finsh 控制台到 RT1170。本篇继续介绍如何将 NXP 官方的 VGLite API 移植到 RT-Thread
    的头像 发表于 11-09 11:22 845次阅读

    基于 Keil MDK 移植 RT-Thread Nano

    RT-Thread Nano 已集成在 Keil MDK 中,可以直接在 IDE 中进行下载添加。本文档介绍了如何使用 MDK 移植 RT-Thread
    发表于 03-29 06:58

    如何基于CubeMX移植RT-Thread Nano

    本文介绍了如何基于 CubeMX 移植 RT-Thread Nano,并说明生成代码工程的步骤。RT-Thread Nano 已集成在 CubeMX 中,可以直接在 IDE 中进行
    发表于 03-29 06:56

    RT-Thread Nano 简介

    RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括
    发表于 05-14 10:22

    基于 Keil MDK 移植 RT-Thread Nano

    直接在 IDE 中进行下载添加。本文档介绍了如何使用 MDK 移植 RT-Thread Nano,并以一个 stm32f103 的基础工程作为示例进行讲解。移植 Nano 的主要步骤:
    发表于 05-14 10:32

    基于 CubeMX 移植 RT-Thread Nano

    本文介绍了如何基于 CubeMX 移植 RT-Thread Nano,并说明生成代码工程的步骤。RT-Thread Nano 已集成在 CubeMX 中,可以直接在 IDE 中进行
    发表于 05-14 16:09

    RT-Thread Studio 上使用 RT-Thread Nano

    本文介绍了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并以创建 stm32f103RB 的 Nano 工程为例。准备工作安装
    发表于 05-18 15:59

    基于 Keil MDK 移植 RT-Thread Nano

    直接在 IDE 中进行下载添加。本文档介绍了如何使用 MDK 移植 RT-Thread Nano,并以一个 stm32f103 的基础工程作为示例进行讲解。移植 Nano 的主要步骤:
    发表于 05-19 18:15

    RT-Thread Nano的相关资料下载

    RT-Thread Nano入门学习笔记作者:Linkk更新时间:2021.02.17学习过程中使用的芯片:stm32f103c8t6库函数:标准库资料获取RT-Thread官网:https
    发表于 12-09 06:59

    【国产MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下载相关开源资料请点击阅读原文这是一个航顺 HK32F030 的 RT-Thread Nano 移植示例,记录了在 Keil 裸机工程的基础上进行 RT-Thread
    发表于 11-21 18:51 42次下载
    【国产MCU系列】在 HK32F030 上移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread Nano入门学习笔记

    RT-Thread Nano入门学习笔记
    发表于 11-26 12:36 20次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入门学习笔记

    HC32F460移植RT-Thread Nano+FinSh工程源码下载

    HC32F460移植RT-Thread Nano+FinSh工程源码下载
    发表于 01-05 10:30 6次下载

    基于 Keil MDK 移植 RT-Thread Nano

    本文介绍如何基于 Keil MDK 移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例进行讲解。 RT-Thread Nano 已集成在 Keil
    发表于 01-26 17:04 16次下载
    基于 Keil MDK 移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    如何创建RT-Thread Nano工程

    本文将尝试使用国产的嵌入式实时操作系统RT-Thread,相比较于FreeRTOS,RT-Thread还是有很多有点的,比如有Fish命令行界面,国产开源免费,Nano版本代码量极小,移植起来非常
    的头像 发表于 03-19 12:13 3704次阅读