为什么需要main函数
系统在开始执行的时候先执行启动文件里的复位程序,复位程序里面会调用C库函数__main,
__mian的作用是初始化好系统变量、如全局变量,只读的,可读可写的。__main最后会调用__rtentry,再由__rtentry调用main函数,从而由汇编跳入C语言。
裸机系统
裸机系统通常分为轮询系统和前后台系统
轮询系统
轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后在一个死循环里不断循环,顺序地做各种事情。轮询系统只适合顺序执行地功能代码,当有外部事件驱动时,实时性就会降低。
前后台系统
在轮询系统地基础上加入中断。外部事件地的响应在中断里面完成, 事件的处理回到轮询系统中完成。
多线程系统
多线程系统的事件响应也是在中断中完成,但是事件的处理是在线程中完成。线程同样具有优先级。当一个紧急的事件被中断标记之后,如果对应的线程的优先度足够高,就会立马得到响应。
在多线程系统中,根据系统的功能,把程序主体分割成以一个个独立的,无限循环且不能返回的小程序,这些小程序就称为线程。每个线程都是独立的、互不干扰的,具备自身的优先级,由操作系统进行调度管理。
加入操作系统后无需设计程序的执行流,也不用担心每个功能模块是否存在干扰。