1)明白:有限状态机系统在嵌入式软件中是个什么地位?(下面用粗体表示)
嵌入式系统软件的分类:
Ø 按处理器位数分类(嵌入式系统分为4位、8位、16位、32位和64位)
Ø 按产品应用类型分类(信息家电类;移动终端类;网络通信类;汽车电子类,工业控制类等)
Ø 按系统实时性来分类(根据实时性的强弱,嵌入式系统分为硬实时、软实时系统:硬实时:系统对系统响应时间有严格的要求,如果系统响应时间不能满足,会引起系统崩溃或致命的错误;软实时:系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃,唉,说实话这里不是很明白,什么是致命的错误呢?)
Ø 软件复杂程度来分类(循环轮询系统;有限状态机系统;前后台系统;单处理器多任务系统;多处理器多任务系统)
Ø 多任务时处理器数目分类(单处理器多任务系统,多处理器多任务系统)
2)明白:为什么用有限状态机系统编写嵌入式软件。
有上面可知,软件软件复杂程度来分类(循环轮询系统;有限状态机系统;前后台系统;单处理器多任务系统;多处理器多任务系统)有这么多,下面就单就没种软件的系统(架构)做说明。
循环轮询系统:最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。
通过上面的循环轮询系统的流程框图知道,循环轮训系统优点:对于简单的系统而言,便于编程和理解;没有中断机制,程序运行良好,不会出现随机问题。缺点:有限的应用领域(由于不可确定性);对于大量的I/O服务的应用,不容易实现;大的程序不便于调试。因此合适于慢速和非常快速的简单系统。
系统软件结构框架如下:Initialize()
While(true){
if(condition_1) action_1();
if(condition_2) action_2();
……
if(condition_n) acition_n();
}
有限状态机系统(下面还会详细介绍),其实我觉得有限状态机系统和前后台系统通常是同事考虑和综合设计的,就是有限状态机系统也会用到前后台,前后台系统也会用到有限状态机(具体联系参考下面的状态机系统的详细介绍)。
有限状态机是实时系统设计中一种重要的,容易建立的,应用比较广泛的,以描述控制特性为主的建模方法,它可以应用于从系统分析道设计的所有阶段。
有限状态机系统优点:简单易用,状态间关系直观看到,便于编程;可以快速执行;只是通过改变输出功能来改变机器的响应。缺点:任何时刻系统只能有一个状态,无法表示并发性,不能描述异步并发系统;在系统部件多时,状态数随之增加,导致复杂性显著增长;对于大的应用系统,难于调试。
前后台系统:
后台:一个一直在运行的系统。
前台:是由一些中端处理过程组成。
当有一前台事件(外部事件)发生时,引起中断,于是将暂停后台的运行而进行前台处理,处理完毕后又回到后台(通常称为主程序)。
前后台系统运行方式如下图:
前后台系统流程图如下图:
注意,前后台系统的重中之重就是对中断的处理,包括:需要考虑中断现场的保护和恢复,中断嵌套,中断处理过程与主程序的协调(共享)问题。前后台系统性能主要由中断
延迟时间(interrupt latency time),响应时间(response time)和恢复时间(recovery time)来刻画。
单处理器多任务系统;
|