一、前言

在实际工作中使用过ucosIII与FreeRTOS,对它们的API比较熟悉,那么当有新的项目时,应该直接二选一。为什么非得去折腾另一款新的RTOS(RTX5)?RTX5的简单介绍可以查看安富莱的总结:第3章 RTX5操作系统介绍
非得折腾去RTX5的理由:

  1. 实时性强。以低的中断延迟执行高速实时操作(对于M3/M4/M7内核可以实现零中断延迟,跟裸机一样)
  2. 确定性。
  3. 通过MDK的RTE开发环境可以一键添加。
  4. MDK配套使用终极调试工具Event Recorder。(量化线程的运行时间,各个线程在时间戳上的关系等)
  5. 在Cortex-M系列内核有安全认证。

上一年年底时,有一个新项目使用RTOS。当时RTX5中文资料缺乏,而且写代码的时间只有三周,压根不敢用RTX5来做项目(当时还没有学过RTX5),无奈之下只能继续使用FreeRTOS了。
现在RTX5的中文教程还是很少,想要系统性学习RTX5,只能通过查看RTX的英文官方手册,这对大部分嵌入式的同学来说比较困难。为此,分享我的RTX5学习笔记,尽量分享RTOS实战经验。希望能帮助同学们更快了解如何使用RTX5,缩短学习周期,尽快将RTX5用在项目上。

想了解深入了解RTOS基础知识的同学,有两份资料推荐:

  1. 《安富莱UCOSIII教程》学习。
  2. 还有一本书(强烈推荐购买):

从这两份资料,同学们可以了解:比如什么是抢占式调度,什么是时间片轮转调度,什么是合作式调度,什么是事件标志组,什么是信号量,它们的应用场景是什么等等知识。虽然主题是UCOSIII,但是RTOS的基础知识都是大同小异的。

二、RTX5

移植RTX5成功后,建议直接从线程管理开始学习RTX5。学习线程管理,消息队列,线程标志组,事件标志组后,对RTX5有一个较大的认识后,再倒回来学习配置文件的内容。

2.0、模板

做了一些模板供同学们使用。
RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN模板
RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN驱动+CANopen协议

2.1、移植

STM32F103+CubeMX-Keil上移植RTX5实时系统
STM32F407+CubeMX+Keil上移植RTX5实时系统
STM32H743+CubeMX+Keil上移植RTX5实时系统

2.2、基础知识

RTX5 | 时间延时
RTX5 | 配置文件RTX_Config.h(一)
RTX5 | 配置文件RTX_Config.h(二)
RTX5 | 配置文件RTX_Config.h(三)

2.3、线程管理(Thread Managment)

RTX5 | 线程管理01 - 创建线程(静态堆栈方式)
RTX5 | 线程管理02 - 创建线程(动态堆栈方式)
RTX5 | 线程管理03 - 线程退出osThreadExit
RTX5 | 线程管理04 - 线程加入osThreadJoin
RTX5 | 线程管理05 - 线程挂起osThreadSuspend与线程恢复osThreadResume

2.4、消息队列(Message Queue)

RTX5 | 消息队列01 - 创建消息队列
RTX5 | 消息队列02 - 放入与取出消息
RTX5 | 消息队列03 - 获取消息队列里消息的数量,并一次性提取出来
RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
RTX5 | 消息队列05 - 获取剩余空间,清空消息队列,删除消息队列
RTX5 | 消息队列06 - (实战技巧)FDCAN接收中断ISR同步线程

2.5、线程标志组(Thread Flags)

RTX5 | 线程标志组01 - 线程同步
RTX5 | 线程标志组02 - 获取线程标志与清除线程标志

2.6、事件标志组(Event Flags)

RTX5 | 事件标志组01 - 创建事件标志组
RTX5 | 事件标志组02 - 置位事件标志组,并获取事件标志组的值
RTX5 | 事件标志组03 - 线程同步(逻辑或)
RTX5 | 事件标志组04 - 线程同步(逻辑与)

2.7、时间定时器

RTX5 | 软件定时器01 - 创建一个软件定时器(单次运行)
RTX5 | 软件定时器02 - 创建一个软件定时器(连续运行)

2.8、信号量

RTX5 | 信号量01 - 信号量的使用

2.9、互斥量

RTX5 | 互斥量01 - 互斥量的使用

2.10、内存池

RTX5 | 内存池01 - 内存池的使用
RTX5 | 内存池02 - 剩下几个API
RTX5 | 内存池03 - 共享内存用于线程之间的通讯(轮询方式)
RTX5 | 内存池04 - 共享内存用于线程之间的通讯(阻塞方式)- 使用信号量

嵌入式实时操作系统RTX5快速入门 (完结)相关推荐

  1. 从零开始构建嵌入式实时操作系统2——重构

    1.前言 本人是一个普通的中年程序员,并不是圈内的大牛,写嵌入式操作系统这一系列的文章并不是要显示自己的技术,而是出于对嵌入式的热爱.非常幸运,本人毕业后的十几年一直从事嵌入式行业,遇到过各种坑,也收 ...

  2. 任哲《嵌入式实时操作系统uC/OS-II》 预备工具

    进入工作后,白天负责公司项目开发,晚上蹭加班绩效在公司学点别的东西.虽说待在嵌入式部门,但基本上负责的项目都是微控制器类方面的开发,所以要加强学习真正的嵌入式方面的学习.第一个坑uC/OS-II.我学 ...

  3. 嵌入式实时操作系统-VxWorks(基础)

    1.实时系统定义:是指那些产生系统输出的时间对于系统是至关重要的系统. 实时系统可根据时限对其性能(或效益)影响程度的不同,分为软实时系统SRT和硬实时系统HRT. 软时限是指时限的错过不会损害系统的 ...

  4. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十六章 UCOSII 实验 1任务调度...

    1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十六章 ...

  5. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...

    1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十八章 ...

  6. 【012】SylixOS嵌入式实时操作系统助力中国航天事业

    SylixOS嵌入式实时操作系统助力中国航天事业 发布于2016年09月30日 2016年9月23日,翼辉信息与中国航天科技集团上海航天计算机技术研究所在上海完成SylixOS发行版风云翼辉嵌入式实时 ...

  7. RT-Thread 创始人熊谱翔:我和 Linux、嵌入式实时操作系统 RT-Thread

    我和 Linux.嵌入式实时操作系统 RT-Thread -- RT-Thread创始人熊谱翔,2015 年 接触 Linux 说起 Linux 应该从我在校园时期说起.我是在山城--重庆邮电学院念的 ...

  8. 嵌入式实时操作系统11——操作系统内核运行原理

    先展示一个操作系统运行动态图 1.操作系统内核关键知识点 本文将用一个实际的工程例子来剖析操作系统内核运行原理.在此之前我们先回顾一下之前文章讲述的重点知识点. <嵌入式实时操作系统3--任务切 ...

  9. 嵌入式实时操作系统1——初识嵌入式实时操作系统

    嵌入式实时操作系统是什么 嵌入式实时操作系统是一个特殊的程序,是一个支持多任务的运行环境.嵌入式实时操作系统最大的特点就是"实时性",如果有一个任务需要执行,实时操作系统会立即执行 ...

最新文章

  1. markdown 图片居中_Markdown更改字体、颜色、大小,插入表格等方法
  2. 别再说你不会!kafka延迟队列
  3. Oracle单表备份三种方案
  4. JavaScript——对象合并解决方案
  5. springboot-文件上传xls及POI操作Excel
  6. 格兰杰因果关系检验r语言_R语言 t检验t.test
  7. AI主播首次上岗CCTV,撒贝宁有了个虚拟孪生兄弟“小小撒”
  8. Jenkins任务优先分配到原来的执行节点上
  9. php基础-基本语法
  10. 动态逆序对:CDQ分治
  11. 如何根据历史数据监控当前数据是否异常
  12. 谷歌浏览器fash弹框的设置
  13. 迅雷9右侧栏关闭广告
  14. 微信聊天机器人:软件和源代码,适合小白~(含wxpy、pyinstaller、腾讯AI智能问答、django等模块)
  15. Byval 和 Byref的区别
  16. Ubuntu在安装NVIDIA驱动后黑屏无法启动进入图形桌面
  17. C++之面向对象(上)
  18. 直通车教程:淘宝直通车要如何设置标题和简介?
  19. 【计算机管理——运筹学】——预测决策
  20. 非谓语动词to do做主语

热门文章

  1. leo再谈 80后 程序员为什么找不到工作
  2. Docker部署RabbitMQ
  3. 车辆运动控制(4)考虑道路曲率和轮胎滑移
  4. php ipconfig,ipconfig命令作用是什么?
  5. ADB-adb命令安装app
  6. 【通信】基于非相干信号子空间测向算法实现宽带信号的测向附matlab代码
  7. CentOS7搭建nextcloud创建私有云盘
  8. 调戏过114客服之后,我打开了新世界的大门
  9. 2017年8月1日,星期二
  10. 解决问题:使用nvm use出现exit status 1与exit status 145乱码