二、裸机系统和多任务系统

本文探讨了裸机系统中的轮询系统和前后台系统,以及多任务系统的特点。轮询系统适合顺序执行任务,但在处理外部事件时实时性较差。前后台系统通过中断改善了实时响应,而在多任务系统中,任务优先级确保了紧急事件的高效处理。随着单片机资源的增加,引入操作系统成为可能,简化了编程并提高了系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、裸机系统

1.1、轮询系统

1.2、前后台系统

2、多任务系统

1、裸机系统

裸机系统通常分成轮询系统和前后台系统。

1.1、轮询系统

轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情。

轮询系统是一 种非常简单的软件结构,通常只适用于那些只需要顺序执行代码且不需要外部事件来驱动的就能完成的事情。如果只是实现LED翻转,串口输出,液晶显示等这些操作,使用轮询系统将会非常完美。但是,如果加入了按键操作等需要检测外部信号的事件,用来模拟紧急报警,那么整个系统的实时响应能力就不会那么好了。

假设 DoSomething3 是按键扫描,当外部按键被按下,相当于一个警报,这个时候,需要立马响 应,并做紧急处理,而这个时候程序刚好执行到 DoSomething1,要命的是 DoSomethingg1 需要执行的时间比较久,久到按键释放之后都没有执行完毕,那么当执行到 DoSomething3 的时候就会丢失掉一次事件。足见,轮询系统只适合顺序执行的功能代码,当有外部事件 驱动时,实时性就会降低。

//轮询系统的伪代码
 int main(void)
 {
     /* 硬件相关初始化 */
     HardWareInit();
 
     /* 无限循环 */
     for (;;) 
     {
         /* 处理事情 1 */
         DoSomething1();
 
         /* 处理事情 2 */
         DoSomething2();
 
         /* 处理事情 3 */
         DoSomething3();
     }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值