freertos菜鸟学习踩坑记录
9.27 点灯实验失败原因
1、任务名复制从start过来忘了改
2、定义任务句柄,错误,多加了个指针。
stm32处于运行态的任务只有一个。
任务调用vtaskdelay之后进入阻塞态,直到延时周期完成。
freertos 任务函数
freertos任务函数模式
大循环for中要有的东西:
具体任务代码
能使freertos发生任务切换的api函数。如delay ,请求信号量,队列,甚至任务调度器。
*这里不是很理解,就比如点灯实验里,我的理解是,两个led为两个任务,优先级为2和3,具体的执行过程:
优先级高的task1先执行,电平反转,之后调用delay,进入阻塞态,此时优先级低的task2执行 进入运行态,电平翻转,随后调用delay,进入阻塞态,延时时间结束再进入原程序执行,也就是说并非是同时执行,其中是有一个电平翻转的时间差?
那么rtos与裸机的差别也就在 delay之后,裸机是顺序执行任务,只能被中断打断,中断结束后也是回到原任务中,而rtos则是在delay之后任务进入阻塞态,重新按优先级进行任务分配?这是我目前认识到的差别,随着学习的深入,期待更深的理解。