嵌入式软件开发的挑战
被考次数: 9次
被考频率: 中频率
答错率:    49%
知识难度:
考试要求: 掌握     
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式系统程序设计  > 嵌入式软件开发基础知识


本知识点历年真题试卷分布
>> 试题列表    
 

 
       在开发嵌入式软件时,会面临如下的一些挑战和问题。
       软硬件协同设计
       嵌入式系统由硬件和软件组成,因此,在系统设计时,需要考虑哪些功能用硬件来实现,哪些功能用软件来实现。硬件实现的优点是速度快,缺点是芯片成本高,耗电量大,且需要占用额外的空间。软件实现的优点是灵活性高,如果算法发生了改变,那么修改软件是很容易的。例如,以TCP/IP协议栈的实现为例。几十年来,都是用软件来实现,因为这种方法为改变协议提供了灵活性。在台式机环境下,TCP/IP协议栈被绑定在操作系统中,这是可以接受的,因为桌面计算机有大量的内存和外存容量。不过,现在已经出现了TCP/IP协议栈的单芯片实现方案,这种方法极大地加速了协议的处理过程。它的另一个优点就是可以把它集成到嵌入式硬件中,从而使嵌入式系统具备网络功能。
       嵌入式操作系统
       嵌入式应用的开发可以分为无操作系统和有操作系统两种情形。
       (1)无操作系统的情形。这种情形下,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统,软件的规模也很小,基本上属于硬件的附属品。开发人员可以混合使用汇编语言和C语言,实现存储管理、输入/输出管理和任务管理等服务。这种方式的优点是:软件是为特定的应用而专门编写的,因而代码的结构紧凑,体积小、效率高,既提高了运行速度,又节省了存储空间。
       (2)有操作系统的情形。开发时首先将一个可用的嵌入式操作系统移植到目标处理器,当程序员在开发应用程序时,不是直接面对嵌入式硬件设备,而是在操作系统的基础上编写,操作系统会提供必要的API接口函数来实现各种功能。在这种情形下,开发人员不必操心存储管理、任务管理等一般性的事务,而是将精力集中在应用软件的开发上。因而开发速度更快,编写出来的代码更加可靠。这也是现在广泛采用的一种开发方法。
       代码优化
       一般来说,桌面应用软件的开发人员不必过多考虑代码优化的问题,因为处理器的功能强大,内存的容量也足够用,而且在响应时间上,即使有几秒钟的误差也不会带来显著的区别。但是在嵌入式系统中,存储器容量和执行时间通常是最主要的约束条件。尽管编译器会实现代码上的优化,但编程人员仍必须精心编写代码,并对代码进行优化,开发出运行速度快、存储空间少、维护成本低的软件。有时,为了达到系统所要求的响应时间,编程人员可能需要使用汇编语言来编写部分代码。
       有限的输入/输出功能
       在台式机环境下,一般都使用键盘和鼠标作为输入设备,显示器作为输出设备。但是在嵌入式系统中,不一定存在这些外设。事实上,大多数嵌入式系统的输入/输出功能是有限的。例如,只有小键盘(具有8个或12个功能键)可用于输入数据。在输出设备上,可能只有少量的LED,或每行8到12个字符且仅有两行的小型LCD显示器。而有些嵌入式系统根本就没有键盘或显示器这样的I/O设备来与用户进行交互。例如,在许多过程控制系统中,采用电信号来作为输入并产生电信号来作为输出。因此,开发、测试和调试这一类的系统更具有挑战性,必须采用特殊的程序来测试这些系统。
       总之,嵌入式软件的开发具有很大的挑战性,需要开发人员具有扎实的软、硬件基础,能灵活运用不同的开发手段和工具,具有较丰富的开发经验。如果要设计出可靠、稳定、高效的嵌入式软件,就必须综合考虑多种因素,如并发性、兼容性、实时性、层次性、可扩展性、有限的资源、多样性和可读性等。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有