关注+星标公众号,不错过精彩内容
作者 | strongerHuang
裸机 vs 系统
裸机情况下,就是一个while死循环:
int main(void)
{
/* 初始化 */
while(1)
{
/* 循环处理多项事情 */
}
}
换上RTOS就是为了提高CPU利用率,使其执行多个任务(多个while):
void Task1(void)
{
/* 初始化 */
while(1)
{
/* 处理事情1 */
}
}
void Task2(void)
{
/* 初始化 */
while(1)
{
/* 处理事情2 */
}
}
void Task3(void)
void Task4(void)
......
OS空闲任务
我们打开Windows系统的任务管理器,不操作电脑时,你会发现一个进程CPU占有率很高:
void OS_TaskIdle (void *p_arg)
{
OS_CPU_SR cpu_sr = 0u;
p_arg = p_arg; /* Prevent compiler warning for not using 'p_arg' */
for (;;) {
OS_ENTER_CRITICAL();
OSIdleCtr++;
OS_EXIT_CRITICAL();
OSTaskIdleHook(); /* Call user definable HOOK */
}
}
printf("CPU在偷懒了...\n\r");
------------ END ------------
●专栏《嵌入式工具》
●专栏《嵌入式开发》
●专栏《Keil教程》
●嵌入式专栏精选教程
关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。