1. 裸机系统
裸机系统即直接操作硬件, 所有操作均在主程序中实现. 裸机系统又细分为如下两种:
1. 轮询系统
2. 前后台系统
1.1 轮询系统
轮询系统即为在裸机编程的时候, 在主程序初始化完硬件之后, 让主程序在一个死循环里面不断循环, 顺序地做各种事情, 伪代码如下 :
int main()
{
/* 初始化硬件 */
Init_HardWare();
/* 无限死循环 */
while(1) {
/* 顺序的重复处理所有事件 */
DoSomething1();
DoSomething2();
DoSomething3();
...
}
}
1.1.1 轮询系统优缺点
优点 :
代码结构简单明了, 适用于顺序执行代码, 且不需要外部事件驱动就能完成的事情.
缺点 :
顺序执行会导致系统的实时响应能力不好, 来不及及时响应事件.
1.2 前后台系统
相比轮询系统, 前后台系统是在轮询系统的基础上加入了中断, 外部事件的响应在中断中完成, 事件处理还是在主程序的无限死循环中处理, 我们称中断为前台, 无限死循环为后台, 伪代码如下 :
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
int main()
{
/* 初始化硬件 */