- 博客(2)
- 收藏
- 关注
原创 freertos中的idle钩子函数bug思考
最近在写一个小项目,freertos中的idle空闲函数的优先级最低,只有当所有的任务进入阻塞或者挂起的时候才会运行,由此机制可以将单片机的低功耗任务放到idle函数中运行。仿真发现问题出现在vApplicationIdleHook()函数,究其原因是因为调用了vTaskDelay函数发生了阻塞。定义好configUSE_IDLE_HOOK这个宏后,再去实现Hook函数。以任何方式阻塞空闲任务都可能导致没有任何一个任务进入运行状态的情况。空闲任务hook函数绝不能阻塞或挂起空闲任务。
2024-05-29 20:53:55 311
原创 freertos中匪夷所思的bug(任务名长度)
在freertos中创建任务函数xTaskCreate()第二个参数是任务的名称,为了方便理解,通常都是对于任务运行的简单描述。同时我使用xTaskGetHandle()函数,通过任务名去获得任务的句柄,但是程序运行后,我的这个任务(pwm输出)始终没有运行,通过查资料终于发现,居然是因为我的任务名太长了!在FreeRTOS.h中有个宏定义,任务名最长不能超过16字节,如果超过就没办法获得句柄。可以自己把这个值改大一点。要是有个警告也好啊,浪费两个小时的时间。
2024-04-25 00:48:07 343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人