![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32_FreeRTOS
文章平均质量分 84
STM32_FreeRTOS
小吴的笔记本
这个作者很懒,什么都没留下…
展开
-
5 FreeRTOS的任务挂起与恢复
vTaskSuspend() 挂起任务vTaskResume() 恢复被挂起的任务xTaskResumeFromISR() 在中断中恢复被挂起的任务挂起:挂起任务类似暂停,可恢复;删除任务,无法恢复恢复:恢复被挂起的任务FromISR:带FromISR后缀是在中断函数中专用的API函数注意:1)此函数用于挂起任务,使用时需将宏INCLUDE_vTaskSuspend配置为12)无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复3)当传入的参数为NULL,则代表挂起任务自身(当前正在执行的任务)原创 2024-09-03 16:20:56 · 1012 阅读 · 0 评论 -
4 FreeRTOS的任务创建和删除
* 任务栈栈顶,必须为TCB的第一个成员 *//* 任务状态列表项 *//* 任务事件列表项 *//* 任务优先级,数值越大,优先级越大 *//* 任务栈起始地址 *//* 任务名字 */省略很多条件编译的成员} tskTCB;任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相关注意:每个任务都有属于自己的任务控制块,类似于身份证。原创 2024-09-03 09:53:12 · 520 阅读 · 0 评论 -
3 FreeRTOS移植
STM32F1系列的函数delay_init()将SysTick的时钟频率设置为CPU时钟频率的1/8,而STM32F4/G4/F7/H7/H5系列的函数delay_init()则将SysTick的时钟频率设置为与CPU相同的时钟频率,由于FreeRTOS在配置SysTick时,并不会配置 SysTick 的时钟源,因此这将导致正点原子 STM32F1 系列与正点原子 STM32F4/G4/F7/H7/H5 系列的 FreeRTOSConfig.h 文件有所差异。原创 2024-09-01 02:24:55 · 737 阅读 · 0 评论 -
2 FreeRTOS基础知识
调度器就是使用相关调度算法来决定当前需要执行的哪个任务。抢占式调度:主要是针对优先级不同的任务,每个任务都有一个优先级,优先级高的任务可以抢占优先级低的任务。(RTOS是数值越大,它的任务优先级就越大)时间片调度:主要是针对优先级相同的任务,当多个任务优先级相同时,任务调度器会在每一次系统时钟节拍到底时候切换任务。协程式调度(现在几乎不怎么用):当前执行的任务将会一直运行,同时高优先级的任务不会抢占低优先级的任务,FreeRTOS现在虽然还支持,但是官方已经表示不在更新协程式调度。原创 2024-08-30 21:36:45 · 698 阅读 · 0 评论 -
1 RTOS入门
免费开源:商业产品中使用,无潜在商业风险,无须担心可剪裁:FreeRTOS的核心代码9000+行,包含在3个.c文件中简单:简单易用,可移植性非常好优先级不限:任务优先级分配没有限制(没有限制指的是软件方法,如果使用硬件方法,STM32最多有32个优先级),多任务可同意优先级。任务不限:可创建的实时任务数量没有软件限制,但需要注意的是每一个任务都需要分配任务堆栈,而任务堆栈需要MCU分配内存抢占/协程/时间片:支持抢占式、协程式、时间片流转任务调度。原创 2024-08-30 16:24:12 · 209 阅读 · 0 评论