
FreeRtos
文章平均质量分 69
今天阳光明媚吗
立志要成为嵌入式高手~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FreertosHAL库_学习笔记
队列集(Queue Set)是一种用于管理多个队列的机制,本质也是一个队列,只不过里面存放的是各队列的句柄,它允许任务同时等待多个队列中的数据,多队列管理:可以将多个队列组合在一起,通过一个队列集句柄进行统一管理。则在等待的时间里该任务处于阻塞状态,会被放到管理阻塞任务的链表里这时任务调度器在管理就绪态的链表里选择任务时就不会选到该任务,当等待的时间到了时该任务又会被放进就绪态任务链表,当每个函数都阻塞态时空闲任务就会出来处理那些“自杀”的任务,释放他们的栈。:是一种特殊的计数信号量,计数值只能是0或1。原创 2025-04-13 20:45:36 · 1011 阅读 · 0 评论 -
FreeRtos简介
为了做到这一点,每个任务都必须有个堆栈,当任务切换的时候将上下文环境保存在堆栈中,这样当任务再次执行的时候就可以从堆栈中取出上下文环境,任务恢复运行。在抢占式调度机制下,当一个高优先级任务进入就绪态时,它会立即抢占当前正在运行的低优先级任务的CPU资源,使低优先级任务进入就绪态或阻塞态,高优先级任务开始运行。前后台系统虽然简单和消耗资源少,但是实时性差,前后台系统各个任务都是排队等待轮流执行,不管多紧急的程序,没有轮到执行就只能排队等候,相当于每个任务的优先级都是一样的,所以在这个时候就需要多系统出马了。原创 2025-04-03 18:19:13 · 876 阅读 · 0 评论 -
动、静态创建任务
任务创建和删除API函数xTaskCreat() 、vTaskDelete()函数1.start_task: 用来创建其他两个任务 ,当此任务运行以后会调用删除任务vTaskDelete() 2.task1_task: 普通应用任务3.task2_task: 普通应用任务下面是动态创建任务用串口验证函数的执行:如果要使用静态方法需要将宏 ConfigSUPPORT_STATIC_ALLOCATION 设置为11.start_task: 用来创建两个任务。原创 2025-04-03 22:52:43 · 746 阅读 · 0 评论 -
任务挂起和恢复
pdFALSE: 恢复运行的任务的任务优先级低于当前正在运行的任务(被中断打断的。该函数的参数依旧是任务句柄,但是该函数有两个返回值。pdTRUE: 恢复运行的任务的任务优先级等于或者高于正在运行的任务(被中断打。断的任务),这意味着在退出中断服务函数以后必须进行一次上下文切换。任务),这意味着在退出中断服务函数的以后不需要进行上下文切换。修改main.c:当震动传感器工作将任务1挂起。在中断服务函数中恢复任务1。任务挂起和恢复API函数。原创 2025-04-04 14:58:00 · 318 阅读 · 0 评论 -
列表与列表项
例如,FreeRTOS 的任务就绪列表(pxReadyTasksLists)是一个列表,每个任务的控制块(TCB)中的状态列表项(xStateListItem)会插入到对应的就绪列表中。- 列表项按 "xItemValue"(列表项的值)"升序排列",便于快速插入和查找(如任务优先级调度)。可以看出列表项3插在了列表项1和2之间,说明列表项的 "xItemValue"决定了它在列表中的位置(按升序排列)- pxIndex: 指向列表中的一个列表项,用于遍历列表(如任务切换时遍历就绪列表)。原创 2025-04-04 17:56:35 · 1129 阅读 · 0 评论 -
FreeRTOS任务查询和信息统计API
下面例举几个常见的任务查询API(其余可参考。FreeRTOS开发手册。原创 2025-04-04 18:58:17 · 204 阅读 · 0 评论