1. 裸机应用代码框架
正常的裸机应用代码架构,由一个大while循环以及一些中断服务函数构成。如下图所示,中断服务函数叫前台程序,大while叫后台程序。这种前后台式的工作系统,本质上还是一个单任务的系统。
相对而言,单任务的系统实时性较差,后台的各个任务,不管紧急程序有多高,都要排着队轮循。

伪代码示例:
void main(void)
{
sys_init();
while(1)
{
task1();
task2();
task3();
feeddog();
}
}
void ISR1_handler(void)
{
dosomthing();
}
2. 跑RTOS的应用代码框架
实时操作系统是一个的多任务系统,应用代码可以根据架构、功能、紧急程度等细分为多个任务,每个任务所消耗的资源相互独立,任务与任务间可以通过信号量,消息队列,事件组等进行同步和数据交换。
如下图所示,是freertos的一个抢占式的实时多任务系统。通过任务调度,使得这些任务高效有序的“并发”进行。
根据任务优先等级的设定,来决定当前CPU的使用权归于哪个任务。高优先级的任务可以打断低优先级的任务,中断可以打断高优先级的任务。这样就
裸机vsRTOS:代码框架与性能对比,

本文探讨了裸机应用的单任务架构与RTOS多任务架构,突出RTOS在实时性和资源利用上的优势。
最低0.47元/天 解锁文章
3137

被折叠的 条评论
为什么被折叠?



