已解决
FreeRTOS学习2018.6.27
来自网友在路上 159859提问 提问时间:2023-10-27 02:40:32阅读次数: 59
最佳答案 问答题库598位专家为你答疑解惑
《FreeRTOS学习》
1.freeRTOS基本功能函数:
定义任务:ATaskFunction();
创建任务:xTaskCreate();
改优先级:vTaskPrioritySet();
系统延时:vTaskDelay();
精确延时:vTaskDelayUntil();
空闲任务钩子函数:vApplicationIdleHook();
2.freeRTOS实用总结:
1.使用互斥信号量保护临界区代码。
2.程序中注意避免优先级反转和死锁问题。
3.使用守护任务避免上述问题。
4.内存管理(FreeRTOS的head_2.c):pvPortMalloc()、vPortFree()
3.错误排查(栈溢出):
可使用下述函数完成程序中的栈溢出处理:
uxTaskGetStackHighWaterMark();
查询运行中,栈的最小剩余空间。(可用来做栈空间的规划,可进行实测得到运行的最小剩余空间,来推断应该对任务规划多少栈空间。)
扩展:是否可以运用该函数,完成预先判断栈溢出的功能,可规定如果程序运行中最小剩余空间超过定义的最小值后,对该任务进行关闭,并扩大其栈空间后再开启,如果可行,则可达到自动栈空间规划。
vApplicationStackOverflowHook();
栈溢出钩子函数。
可运用该函数完成栈溢出的处理,如果程序还能挽回,则可进行相应的操作。
附:
仿真时发现不能打断点
在项目Option->C/C++compiler->Output选项卡中需勾选Generate debug informat设置。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"FreeRTOS学习2018.6.27":http://eshow365.cn/6-25628-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!