FreeRTOS
文章平均质量分 59
MinJohnson
Improve!
展开
-
STM32 FreeRTOS系列教程(五)FreeRTOS队列
队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。当队列中有新消息时,被阻塞的任务会被唤醒并处理新消息;当等待的时间超过了指定的阻塞时间,即使队列中尚无有效数据,任务也会自动从阻塞态转为就绪态。消息队列是原创 2021-09-16 11:50:18 · 1820 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(四)任务相关API函数
上面的表格都是FreeRTOS内提供的源码,而在CubeMX生成的工程中我们只需要配置下面的东西就可以完成配置任务的目的。Task Name 任务的名字Priority是这个任务的优先级(CMSIS-V1版本支持7个优先级,而CMSIS-V2版本支持56个优先级,在此处我选择V2版本,因为V1版本不支持事件组的CubeMX配置,V2才支持)Stack Size这里分配128words 也就是128x32 bits也就是512B(其实空闲任务可以分配更少的RAM空间,但是由于)Entry Func.原创 2021-09-16 11:36:13 · 363 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(三)FreeRTOS多任务系统
参考资料:《正点原子STM32F4 FreeRTOS开发手册_V1.1》《野火FreeRTOS 内核实现与应用开发实战—基于STM32》裸机系统(前后台系统)轮询操作:写一个大的while,然后各种各样的任务都放在里面,来了中断就处理中断,处理完所有任务重新开始新的while优点:逻辑写起来简单,且代码量小缺点:实时性较差,比如我执行上图中的任务4突然要执行任务3,如果是裸机系统需要等待一个轮回才行多任务系统正常情况下是有多个任务存在的,然后每个任务都有一个优先级,先是任务列表中最高优先级的任原创 2021-09-04 21:32:13 · 421 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(二)FreeRTOS中断配置和临界段
介绍FreeRTOS中断以及其与Cortex-M中断的区别,以及临界段的设置原创 2021-09-04 20:48:44 · 696 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(一)FreeRTOS简介
参考资料:《正点原子STM32F4 FreeRTOS开发手册_V1.1》《野火FreeRTOS 内核实现与应用开发实战—基于STM32》学习RTOS的意义当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又首选51 单片机来入门。这里面说的单片机编程通常都是指裸机编程,即不加入任何RTOS(Real Time Operating System 实时操作系统)的程序。常用的RTOS 有国外的FreeRTOS、μC/OS、RTX和国内的FreeRTOS、Huawei LiteOS原创 2021-08-30 22:16:16 · 1415 阅读 · 0 评论