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