FreeRTOS
2021-08-19 09:48:34 0 举报
AI智能生成
FreeRTOS学习框架图
作者其他创作
大纲/内容
大循环
循环 + 中断
前后台系统
没有实时性
缺点
裸机
本质:Task机制
有独立运行环境,独立堆栈,同一时间只有一个任务在运行,具体运行由调度器来决定
任务特点
决定执行具体哪个任务,并确保任务切换的时候保存其上下文环境在堆栈中
调度器
高优先级不等低优先级任务执行完
抢占式调度
等待任务执行完成,主动释放CPU
协作式调度
调度
就绪态
运行态
比如delay、消息队列、信号量等影响
有一个超时时间
不会直接进入运行态
阻塞态
挂起态
任务状态
0最低 configMAX_PRIORITIES-1最高
优先级
结构体 tskTCB/TCB_t
存储每个任务的属性
任务控制块
自动创建堆栈
需要内存管理文件 一般heap_4.c
xTaskCreate
configSUPPORT_STATIC_ALLOCATION 定义为 1
程序员自己实现堆栈
xTaskCreateStatic
创建函数
作为xTaskCreate的参数 pxTaskCode
大循环,没有返回值
任务函数
任务创建
任务申请的堆栈和控制块内存会自动被释放 需给定一定运行时间
任务中pvPortMalloc 申请的内存需调用pvPortFree手动回收
vTaskDelete
删除任务
挂起/恢复
相关API
任务(Task)
为资源少的MCU准备的,现在不做支持
协程共用堆栈
协程是通过宏定义实现的
协程
FreeRTOS Kernel
FreeRTOS
0 条评论
回复 删除
下一页