复习FREE_RTOS
时间片长度通过FreeRTOSConfig.h中的congfigTICK_RATE_HZ定义,比如congfigTICK_RATE_HZ设为100HZ,那么时间片长度就是10ms;
portTICK_RATE_MS用毫秒作为单位时间数值,实际上也是基于congfigTICK_RATE_H;
只有FROM_ISR结尾的函数才可以用在中断中;
需要注意的一点是,在原生的 FreeRTOS 中,信号量的发送和获取在 ISR 中要使用以 FromISR 结尾
的特定函数。在 STM32Cube 生成的代码中,ST 的工程师已经把接口进行了统一,在相应的函数中,
通过查询程序状态寄存器判断当前是在 ISR 中还是在普通函数中。所以用户在使用时,统一使用
osSemaphoreWait()和 osSemaphoreRelease()函数操作即可。同样的,FreeRTOS 的其他通信方式如队列、
互斥量等,都进行了这样的处理。
错误:今天建立任务的时候没有留意任务的优先级别,结果系统默认给的是最低级的优先级,结果把任务饿死了,任务根本得不到执行,找了好长时间的原因才反应过来,原来是优先级设置错误;