嵌入式技术
本期话题:
简单来说,嵌入式系统是,不提供通用的计算环境,致力于完成现实世界中的具体功能的计算系统。 嵌入式系统与其他系统是有很多不同之处的,那么嵌入式系统哪些特殊的地方呢? 今天,我们就来简单聊一聊这个问题。
聊一聊:
嵌入式系统的有一个子集:实时系统。这是一种在系统中必须满足实时性约束才能正确运行的系统。这种系统有两类:
硬实时系统,在规定的时间结束之前,指定的活动必须完成。
软实时系统,在规定的时间内,尽可能的去完成任务,允许有一些超时。
下边介绍几点嵌入式系统开发的一些特殊性。
(1)嵌入式设计约束
与编写通用计算机软件不同,嵌入式系统发布时通常集成了系统所需的所有硬件。这个硬件平台不支持用户自行扩展。硬件资源对嵌入式系统来说非常关键,有时候受硬件的限制,软件需要做出很多优化。
性能问题也是系统设计的一个关键点,例如,吞吐量、快速响应能力等。
其他需要考虑的约束还有,可靠性、健壮性、安全性等等。
(2)开发工具
嵌入式开发,大部分情况是利用交叉编译工具,在主机上开发编译,将编译后的程序在目标机上运行。
这些开发工具包括:编译器、连接器、程序装载器、调试器工具集等。
(3)嵌入式中间件
中间件是一种使用某种方法将软件组件连接的软件。对于嵌入式系统来说,有些中间件软件作为嵌入式软件的一部分进行开发。有些是分离开发的。
当系统中的不同组件由不同的组织开发时,使用标准的中间件可以给开发者提供明显的好处。
(4)与硬件协同开发
很多嵌入式工程涉及电子和机械硬件与软件开发同时进行。
软件开发者需要根据硬件如何工作进行开发软件,硬件的任何调整都会影响到软件的开发情况。不到硬件最终发布,是不能开发出正确的软件。
因此,硬件和软件需要协同开发,互相进行适配和调整。
(5)调试和测试
编写软件不是一件困难的事,而编写有正确功能的软件是不容易的。
嵌入式软件开发,经常忽略的是单元测试,如果可以尽可能的提前进行。这样可以提前发现软件的bug。
嵌入式软件开发适用的一些单元测试:功能测试、性能测试、先决条件测试、边界测试、压力测试、回归测试等等。
在嵌入式平台上要实现这些测试,有时候是比较困难,可以采取以下策略:
"printf"测试,通过在程序中添加信息打印,输出在某个设备上查看。
主机上测试,在开发主机上进行验证测试。
主机模拟,通过模拟软件模拟目标平台,对程序进行执行测试。
除了以上这些,当然还有很多其他特殊性,可以补充探讨。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !