目录
现有的嵌入式实时操作系统很多,有FreeRTOS、RT-Threads、uC/OS-II等等,大多数都是开源的,但开源不代表免费,对于学习而言,建议uC/OS-II或者FreeRTOS,不过uC/OS-II开源但不免费,而FreeRTOS开源又免费,所以建议初学者选择FreeRTOS进行学习。
嵌入式系统经常在无人值守、环境恶劣和时间限制等等的条件下运行,如果条件偏向于时间限制,就需要嵌入式系统具有实时机制,嵌入式实时操作系统的设计就显得非常重要。
-
任务
当嵌入式系统只有单核(往往只有单核)的时候,意味任何时候只有一个任务在执行,由于嵌入式系统是多任务系统,于是任务之间存在切换,所以任务之间的交替工作需要调度器的存在。同时由于调度器的存在,任务就存在状态的概念。
特点:死循环、不会返回、不会执行到函数末尾,只能被删除或者一直运行
状态:纵观分为运行态和非运行态,其中非运行态分为就绪态、阻塞态和挂起态(小白应该觉得还有一个称为僵尸态)
调度:任务的切换需要调度器的工作,调度器有调度算法去判断当前选择哪一个任务执行,因此任务存在优先级和时间片,优先级越高,任务越快得到执行,时间片越短,任务正常切换的频率越快