FreeRTOS自学记

*中断中 处理一定要快进快出
*CPU占用率的计算十分耗费时间 所以项目调试的时候用,产品发布时不用
*二值信号量创建完之后需要释放之后才会生效
*互斥信号量创建完之后默认是有效的;不能用于中断中
*二值信号量和互斥信号量的区别:互斥信号量有优先级继承机制,可以减缓优先级反转问题
*定时器毁掉函数中不能使用vTaskDelay();等阻塞函数 否则不能使用

/*任务调度器:
1.创建空闲任务
2.创建软件定时器
3.关中断
4.初始化一些静态全局变量
5.xPortStartScheduler();{
设置PendSV、Systick中断优先级
初始化滴答定时器,中断周期,中断使能,systick使能
如果mcu有FPU的话,开启FPU
如果使用FPU的的话,开启惰性压栈
开启第一个任务
}
*/

/*任务创建函数
1.申请任务堆栈内存
2.申请任务控制块内存
3.调用prvInitialiseNewTask(){
初始化堆栈为0xa5
获取栈顶,保存在pxTopOfStack
保存任务名字
保存任务优先级到任务控制块中
初始化两个列表项,状态列表项和事件列表项
初始化各种任务控制块成员变量
初始化堆栈
保存记录任务句柄
添加任务到就绪列表中{
}
}初始化任务
4.添加新创建任务到就绪列表中

发布了11 篇原创文章 · 获赞 5 · 访问量 453

猜你喜欢

转载自blog.csdn.net/weixin_43739167/article/details/104288127