![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OS--中间件--RTX/RTX5/FREERTOS
文章平均质量分 87
RTX/RTX5/FREERTOS 公共函数和使用方法
jianqiang.xue
欢迎交流,寻找小众MCU厂商代理合作
展开
-
FreeRTOS 从入门到精通1 --实时操作系统的前世今生
我计划用一些篇幅写介绍下当前在嵌入式系统中比较流行的开源实时操作系统FreeRTOS及其在意法半导体STM32平台上的开发与运用。在当前工业4.0,智能制造和物联网蓬勃发展的大环境下,实时操作系统将有更广泛的应用前景。“从入门到精通”这个标题起得可能有些大,更多的是想起到抛砖引玉的作用,与读者和嵌入式行业的同僚能互相切磋交流。作为开篇我想先简单介绍下实时操作系统的概念以及我们为什么要在资源紧张的嵌入式系统中使用实时操作系统。什么是实时操作系统(RTOS--Real Time Operating Sy转载 2021-09-23 09:42:17 · 857 阅读 · 0 评论 -
FreeRTOS 从入门到精通2--初识STM32CubeIDE
我介绍了下实时操作系统的一些概念和在嵌入式系统中引入实时系统的必要性。这一讲我将介绍下在STM32芯片下进行软件的开发和移植FreeRTOS的一些设置事项。认识STM32CubeIDE俗话说得好,工欲善其事,必先利其器。STM32CubeIDE是ST公司最新推出的一款免费的开发软件,基于GCC + Eclipse,并整合了STM32CubeMX(一个通过配置就能自动生成STM32代码的程序)。STM32CubeIDE的下载地址在下面,需要登记下自己的姓名和邮箱地址,然后你的邮箱便会收到程序的下载链接转载 2021-09-23 09:44:16 · 434 阅读 · 0 评论 -
FreeRTOS 从入门到精通3--第一个HelloWorld程序
我介绍了STM32CubeIDE这个强大的编程工具并基于STM32CubeMX方便地移植了FreeRTOS操作系统。不能免俗像大多数的编程教程,在这一讲中我将写一个HelloWorld程序展示下FreeRTOS,起到抛砖引玉的效果。本程序基于的开发版是stm32f4-discovery,板载一个lcd屏幕和两个led灯。本程序的目的是建立两个任务同时运行,其中第一个任务显示在lcd屏上滚动显示文字,第二个任务是使一个led灯1s闪烁。下面是本项目的main程序,限于篇幅还有着重点很多语句我不会过多介转载 2021-09-23 09:48:07 · 735 阅读 · 0 评论 -
FreeRTOS 从入门到精通4--堆栈管理知多少
我们完成了基于FreeRTOS的第一个简单的项目,目的是让读者能有个感性的认识。现在开始我将就一些FreeRTOS的一些具体技术细节进行讲解,这一讲是关于堆栈管理。虽然“堆栈“这个词大多数时候是连在一起使用的,但堆和栈其实是不同的概念。栈(stack):由编译器自动分配和释放,如存放函数的参数值,局部变量的值等堆(heap):一般由程序员分配和释放,分配方式类似于数据结构中的链表栈的空间有限,堆有很大的自由存储区(最大值由SRAM区决定),程序在编译器和函数分配内存都是在栈上进行的,同时程转载 2021-09-23 09:58:22 · 759 阅读 · 0 评论 -
FreeRTOS 从入门到精通6--队列管理
队列是一种数据结构,可以包含一组固定大小的数据。在创建队列的同时,队列的长度和所包含数据类型的大小就确认下来了。栈(Stack)也是一种数据结构,栈和队列的区别在于栈是后进先出(Last In First Out),而队列是先进先出(First In First Out)。先进先出表示的是每次写入队列的数据会放在队列的尾部,先写入的数据会先被读取,符合人类的直觉思维。队列有两种实现方式复制队列(Queue by copy)表示写入队列的数据都被完整复制到队列中了。转载 2021-09-23 10:10:26 · 860 阅读 · 0 评论 -
FreeRTOS 从入门到精通9--资源管理(互斥锁与信号量)
我们探讨了中断管理在FreeRTOS中的概念和应用,在本讲中我们将讨论FreeRTOS一个十分重要的话题--资源管理(Resource Management),并借此介绍一个值得嵌入式开发者重视的现象--优先级倒置(Priority inversion )。本个系列教程也将完结于此,很高兴读者能一路支持过来并希望能有所收获。其实通过这十讲离真正的精通还是有不少差距的,应该能起到入门及抛砖引玉的作用,而我又不小心当了回标题党。感叹完毕,让我们言归正传。什么是资源管理资源管理(Resource Mana转载 2021-09-23 10:21:26 · 479 阅读 · 0 评论 -
FreeRTOS 从入门到精通7--软件定时器应用
我们介绍了队列管理的相关知识,在这一章中我们将探讨FreeRTOS的另一个特性--软件定时器(Software Timer)的概念和应用。什么是软件定时器如果一个任务要在未来某个时间运行或者周期性地运行以实现定时或者延时控制,就需要设定一个定时器。定时器分为硬件定时器和软件定时器。硬件定时器是单片机内部的特殊功能模块,通过硬件定时器中断就可以精准地对任务的运行时间进行控制。但是单片机的硬件资源通常有限,而且不同种类单片机的定时中断的代码是不同的,对程序代码的兼容性易用性提出很高的难度。相对而言,软件转载 2021-09-23 10:16:38 · 293 阅读 · 0 评论 -
FreeRTOS 从入门到精通8--中断管理
我们介绍了软件定时器的应用,在这一讲我们将介绍中断在FreeRTOS中的应用和注意事项。什么是中断CPU在执行某一事件A时,发生另外一个更重要紧急的事件B请求CPU去处理(产生了中断),于是CPU暂时中断当前正在执行的事件A任务而对对事件B进行处理,CPU处理完事件B后再返回之前中断的位置继续执行原来的事件A,这一过程统称为中断。我在网上看到了一篇文章很形象地介绍了中断。单片机中断系统_C语言中文网中断的产生背景 请设想这样一个场景:此刻我正在厨房用煤气烧一壶水,而烧开一壶水刚好需要 10转载 2021-09-23 10:18:06 · 235 阅读 · 0 评论 -
FreeRTOS 从入门到精通5--详解任务管理
任务(Task)的介绍在FreeRTOS中,线程和任务的概念是相同的。每个任务就是一个线程,有着自己的一个程序。函数的模型示例如下所示,通常情况下包含一个不会退出的循环体。void TaskFunction( void *pvParameters ){ int32_t Mustermann = 10; for(;;) { } vTaskDelete(NULL); }这个任务函数不能有返回值(即使用return语句),不然会导致异常。如果不需要这个任务的话,必须要..转载 2021-09-23 10:06:15 · 864 阅读 · 0 评论 -
[Linux] 在linux平台搭建freertos
在linux平台搭建freertos原创 2022-07-25 13:49:01 · 1333 阅读 · 0 评论 -
[单片机框架][os层] RTX5 中间件 公共函数
Keil RTX5 是一种免版税、确定性、全功能的实时操作系统,它实现了 CMSIS-RTOS API v2,这是一种适用于基于Cortex-M 处理器的设备的通用 RTOS 接口。功能包括定期激活定时器功能、内存管理和线程之间的消息交换。现在RTX4和RTX5属于CMSIS软件包的一部分,Apache2.0授权,几乎随意商用。Github开源地址:https://github.com/ARM-software/CMSIS_5重新封装RTX5函数,以便适配RTX4 / FREERTOS / FRE.原创 2021-10-19 10:55:20 · 643 阅读 · 0 评论 -
[单片机框架][os层] RTX4 中间件 公共函数
重新封装RTX4函数,以便适配RTX5 / FREERTOS / FREERTOS_NRF_RTC。Keil RTX是为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统。它允许您创建同时执行多个功能的程序,并帮助创建更好的结构和更容易维护的应用程序。特征具有源代码的免版权,确定性RTOS灵活的调度:循环,抢占和协作具有低中断延迟的高速实时操作为资源有限的系统提供小封装无限数量的任务每个具有254个优先级无限数量的邮箱,信号量,互斥量和计时器支持多线程和线程安全操作内核感原创 2021-10-19 10:43:51 · 410 阅读 · 0 评论 -
[单片机框架][os层] freertos_rtc 中间件 公共函数
重新封装FREERTOS_NRF_RTC函数,以便适配RTX4 /RTX5 / FREERTOS。为什么要单独把RTC拿出来,因为不同MCU的RTC寄存器不一致,这里适配的是NRF52系列的。Nordic的协议栈与RTX/RTX5冲突,因为他们都使用的SVN。(具体原因参考:[nrf51][nrf52] 移植RTX或者FreeRTOS需要注意的问题)FreeRTOS 是一类 RTOS,设计得足够小以在微控制器上运行——尽管它的使用不限于微控制器应用。微控制器是一种小型且资源受限的处理器,它在单个原创 2021-10-19 11:19:09 · 538 阅读 · 0 评论 -
[RTX5][Memory] 使用OS自带的内存管理 osRtxMemoryAlloc() osRtxMemoryFree()
官方默认的RTX5是不能直接使用内存管理的,因为RTX5为了通过车规验证,所以把内存管理隐藏了原创 2023-02-25 23:06:18 · 1970 阅读 · 2 评论 -
[单片机框架][os层] freertos 中间件 公共函数
重新封装freertos函数,以便适配RTX4 /RTX5 / FREERTOS_NRF_RTC。FreeRTOS 是一类 RTOS,设计得足够小以在微控制器上运行——尽管它的使用不限于微控制器应用。微控制器是一种小型且资源受限的处理器,它在单个芯片上集成了处理器本身、只读存储器(ROM 或闪存)以保存要执行的程序,以及程序所需的随机存取存储器 (RAM)执行。通常,程序直接从只读存储器中执行。微控制器用于深度嵌入式应用程序(那些您从未真正看到处理器本身或其运行的软件的应用程序),这些应用程序通常原创 2021-10-19 11:11:28 · 2835 阅读 · 0 评论