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

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

3天内不再提示

机智云设备移植RT-Thread

机智云 2022-04-19 18:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

开发环境:


Keil版本:V5.30

RT-Thread版本:3.1.5

STM32cubeMX:V6.0.1

开发板MCU:STM32F103


机智云平台生成的应用代码是裸机版本的,而在实际应用过程中,通常会有多个功能,这个时候就需要用到实时系统,比如FreeRTOS, AzureRTOS ThreadX, RT-Thread等,笔者这里推荐RT-thread。


RT-Thread是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。


RT-Thread Nano 以软件包的方式集成在 Keil MDK 与 CubeMX 中,可以直接在软件中下载 Nano 软件包获取源码,关于RT-Thread Nano移植详情请参看笔者文章:

Keil版本:https://bruceou.blog.csdn.net/article/details/109549430

STM32cubeMX版本:https://bruceou.blog.csdn.net/article/details/109607302


3.1 Nano Pack 安装


进入打开 CubeMX,从菜单栏help 进入 Manage embeddedsoftware packages 界面,点击 From Url 按钮,进入 User DefinedPacks Manager 界面,其次点击 new,填入上述网址,然后点击 check,如下图所示:


poYBAGI3MLqAYhCtAAJvJSG52NU923.png


check 通过后,点击 OK 回到 User Defined Packs Manager 界面,再次点击 OK,CubeMX 自动连接服务器,获取包描述文件。



pYYBAGI3MMSATzBGAACFCKDxchI207.png


回到 Manage embedded softwarepackages 界面,就会发现 RT-Thread Nano 3.1.5软件包,选择该软件包,点击 InstallNow,安装之后,弹出 Licensing Agreement ,同意协议,然后点击 Finish,等待安装完成,成功安装后,版本前面的小蓝色框变成填充的黄绿色,如下图所示:


pYYBAGI3MOWARmL7AAIrT14L0zc611.png



至此,RT-Thread Nano 软件包安装完毕,退出 Manage embeddedsoftware packages 界面。



3.2添加 RT-Thread Nano 到工程

打开基础工程,点击 SelectSoftwares,选择Select Components界面,在 Pack Vendor 中选择 RealThread, 然后根据需求选择 RT-Thread 组件(此处只移植 Nano,只选择 kernel 即可),然后点击 OK 按钮,如下图所示:



pYYBAGI3MPSAT37rAAXm7LxJNb8760.png



选择组件之后,对组件参数进行配置。在工程界面 Pinout&Configuration 中,进入所选组件参数配置区,按照下图进行配置。

poYBAGI3MQ2AMYi6AAXGoNva4gk902.png


由于HardFault_Handler()和SysTick_Handler() 中断服务例程在RT-Thread的 board.c 中重新实现,做了系统 OS Tick,所以还需要删除工程里中原本已经实现的HardFault_Handler()和 SysTick_Handler() ,避免在编译时产生重复定义。如果此时对工程进行编译,没有出现函数重复定义的错误,则不用做修改。


pYYBAGI3MR6AHPWpAAdeuUS8vgI188.png



最后保存生成工程即可。

成功编译后下载到MCU即可。

关于线程的创建与使用可以参看笔者文章:

RT-Thread Nano 线程讲解:https://bruceou.blog.csdn.net/article/details/112157693



最后的效果就不在演示了,和上一章是一样的,到这里,机智云设备端基本玩的差不多,后面就可以使用所学知识做一些项目开发了。

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

    关注

    2313

    文章

    11191

    浏览量

    374599
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread设备树的适配方法 | 技术集结

    本文基于RT-Thread现有的DM(设备模型)框架,以Rock2F开发板为例,系统梳理了RK3528SoC的快速移植流程,涵盖了CLK、Pinctrl、ADC、NVMEM、Thermal、RNG等
    的头像 发表于 04-04 18:05 3112次阅读
    <b class='flag-5'>RT-Thread</b> 中<b class='flag-5'>设备</b>树的适配方法 | 技术集结

    恩智浦亮相RT-Thread 20周年开发者大会

    日前,“开源向实·生产力进化启示录”全球峰会暨RT-Thread 20周年开发者大会在上海成功举办,恩智浦作为RT-Thread的紧密合作伙伴,在活动中重磅亮相,展示双方在共建RT-Thread OS开发生态方面的新成果、新方案
    的头像 发表于 01-26 09:07 744次阅读

    移植最新版的rt-thread nano时程序进入到entry就报错,为什么?

    我在移植最新版的rt-thread nano时发现程序只要一进去entry函数就直接跳到一个死循环里,我使用的编译器是armgcc10.2版本。然而我移植旧版的rt-thread na
    发表于 10-09 07:17

    基于RT-Thread的EK-RA2E2 设备驱动移植与应用 | 技术集结

    目录前言环境配置HelloRT-ThreadGPIO输入与中断I2C主机驱动SPI主机驱动ADC设备驱动PWM设备驱动Flash设备驱动WDT设备驱动1前言本文说明如何在
    的头像 发表于 10-05 10:06 6333次阅读
    基于<b class='flag-5'>RT-Thread</b>的EK-RA2E2 <b class='flag-5'>设备</b>驱动<b class='flag-5'>移植</b>与应用 | 技术集结

    使用RT-Thread studio 开发RT-Thread Nano项目的时候 串口的驱动是要自己写吗?

    刚入坑。使用RT-Thread studio 开发RT-Thread 标准板项目的时候直接使用里边的串口uart_dev=rt_device_find(“uart5”);然后操作设备
    发表于 09-26 08:14

    CubeMX移植RT-Thread 3.1.5文件重复怎么解决?

    CubeMX6.7.0内移植RT-Thread Nano3.1.5文件重复,主要是两个部分 1、 和 两个地方重复rtconfig.h 2、shell相关的文件也会重复 和 请问下各位有没有办法可以解决这个问题的?
    发表于 09-24 07:11

    rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?

    rt-thread studio2.2.9如何使用最新的RT-Thread v5.2.0 released? 原先以为修改index_all.json,发现联网的时候,会自动覆盖 另lastet版本
    发表于 09-16 06:06

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了一个全面、系统的RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微控制器的核心
    的头像 发表于 08-24 10:05 1266次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作系统<b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的RT-Thread Nano移植

    本篇还是以移植RT-Thread Nano到MCUXpresso IDE为主,移植的代码可以在nxpic.org.cn论坛搜索到。
    的头像 发表于 08-21 09:49 6944次阅读
    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的<b class='flag-5'>RT-Thread</b> Nano<b class='flag-5'>移植</b>

    如何移植 RT-Thread Nano 并创建 2 个线程?

    基于 BSP 中的 GPIO_OutputInput 演示,展示了如何移植 RT-Thread Nano 并创建 2 个线程。
    发表于 08-19 07:45

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行
    的头像 发表于 07-17 14:40 3622次阅读
    <b class='flag-5'>RT-Thread</b> Nano硬核<b class='flag-5'>移植</b>指南:手把手实现VGLite图形驱动适配 | 技术集结

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术创新与开源生态
    的头像 发表于 07-04 09:04 2815次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    揭秘RT-Thread上的AUTOSAR CP系统

    本文探讨了RT-Thread与AUTOSARCP的融合,解决车载ECU开发中实时性、安全性与灵活性的平衡问题。通过分层安全内核(rt-safetyos/autoos)和工具链整合,兼容AUTOSAR
    的头像 发表于 06-23 20:22 3424次阅读
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系统

    STM32与机智连接实现步骤与技巧(下篇):机智代码移植与优化

    在《STM32与机智连接实现步骤与技巧(上篇)》中,我们介绍了硬件连接和通信协议配置。本篇将重点讲解如何将机智相关代码移植到STM32,
    的头像 发表于 05-23 18:10 1337次阅读
    STM32与<b class='flag-5'>机智</b><b class='flag-5'>云</b>连接实现步骤与技巧(下篇):<b class='flag-5'>机智</b><b class='flag-5'>云</b>代码<b class='flag-5'>移植</b>与优化

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread作为全球领先
    的头像 发表于 05-21 18:02 1428次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进