第1章什么是嵌入式编程
我们将学到:
·嵌入式系统的基础知识
·面向对象编程与结构化编程
·使用C语言实现类、继承、状态机
1.1 嵌入式系统有何特殊之处
本书完全着眼于嵌入式系统的开发。为此,需要区分嵌入式系统和其他系统。在深入讨论之前,我们需要理解这种区别,这样才能领会用来开发嵌入式系统的那些模式和技术的真谛。
嵌入式系统可以定义为:不提供通用的计算环境,而是致力于完成现实世界中具体功能的计算系统。显然,这样定义的嵌入式系统非常宽泛,它包括了心脏起搏器中的微型8位嵌入式计算机,与控制航天设备相关的32位计算机,交通设施、飞行器的消防控制,以及C4ISR(Command,Control,Communications,Computers,Intelligence,Surveillance,and Reconnaissance,指挥、控制、通信、计算机、情报、监视和侦察)系统的广域网中用于战场管理的数以百计的强大计算机系统。很多嵌入式系统没有磁盘,没有人机交互,并且仅���很少的存储空间,但是嵌入式系统的市场空间却远比这些简单设备更宽广。
嵌入式系统无处不在:
·在医药领域,嵌入式系统包括植入设备(如心脏起搏器、去纤颤器、胰岛素泵)、监测设备(如心电图(ECG/EKG)监视器、血气监测仪、血压计、肌电图(EMG)显示器)、成像系统(如CT、SPECT、PET、TEM和X射线成像仪),以及**输送装置(如病人呼吸机、**汽化器和输液泵)。
·在电信行业,涵盖了手机、交换设备、路由器、调制解调器和卫星等设备。
·在汽车制造领域,嵌入式系统优化发动机燃烧,管理变速器中的能量传输,监控传感器数据,控制防抱死系统,提供**保障并且提供咨询娱乐服务,例如:CD和DVD播放器、GPS导航(在一些地方,它可以提供雷达和激光探测甚至是主动雷达和激光探测应对系统)。
·在办公领域,嵌入式系统管理电话、打印机、复印机、传真机、照明设备、数字投影仪、安保系统、防火系统和灭火系统。
·在家中,例子包括微波炉、电视机、收音机、洗衣机,甚至包括真空吸尘器。
嵌入式系统已经能控制、增强、监控和管理几乎所有高科技设备,从电视机到火车,再到工厂自动化系统,而且其应用呈上升趋势。
嵌入式系统有个重要的子集即实时系统。很多人错误地认为“实时”就是“很快”,这种理解是不正确的。实时系统是一种在系统中必须满足实时性约束才能正确运行的系统。通常来看,可以将实时系统简单地分为两类:其中的一类是“硬”实时系统,它以系统实时性约束中的*后期限作为建模依据,在*后期限到来之前,指定的活动必须完成;“软”实时系统则是相对于“硬”实时系统而言的?,它加入时间期限以外的标准(经常是随机的)来满足系统的实时性约束。这些标准包括平均吞吐量、平均执行时间、*大脉冲长度或其他的衡量标准。所有的系统都可以建模为硬实时系统,但是这样做经常造成“过度设计”,过度设计造成系统运行速度过快且拥有更多可用资源(实际上这些都是不需要的),同时也提高了系统的续生成本(recurring cost,近似于“制造成本”)。
尽管所有的系统都以硬实时系统作为建模模型,但事实上很多系统并不是真正的硬实时系统。如果系统响应偶尔延迟,甚至整个输入事件丢失,大多数系统将继续正常工作。把实时系统建模为“硬”实时的主要原因是,可以通过数学分析简化系统的实时性约束。