嵌入式系统期末考试题库及答案 下载本文

内容发布更新时间 : 2024/12/22 16:05:28星期一 下面是文章的全部内容请认真阅读。

《嵌入式系统》试题库

50、 什么是基于查询的实时软件结构?有何优缺点?实时性如何决定? 答:基于查询的实时软件结构无中断机制,仅采用查询方式的实时软件结构。

优点:侧重任务的处理,软件设计简单,堆栈可预测,可调用不可重入函数(任务间不嵌 套)。

缺点:对事件响应不能实时,容易丢弃异步事件;所有的任务具有相同的优先级别,如果 一个任务执行时间不可预测,则所有任务的响应时间不可预测;主程序是一个无限循环的 结构,一个任务崩溃则引起整个系统崩溃。

实时性(最坏情况):取决于所有其它任务执行时间之和。

51、 什么是基于中断的实时软件结构?有何优缺点?实时性如何决定?

答:基于中断的实时软件结构采用纯中断方式的实时软件结构,事件和任务处理全部由中 断服务子程序完成。

优点:侧重事件的处理,利用中断优先级解决了优先级问题

缺点:容易漏掉低优先级异步事件;中断嵌套容易导致栈溢出,堆栈不可预测;调用不可 重入型函数时,要满足互斥条件。

实时性(最坏情况):高优先级任务能得到及时响应和处理。

52、 什么是前后台系统?有何优缺点?实时性如何决定?

答:前后台系统分为前台程序和后台程序。前台程序也称中断级程序,通过中断来处理事 件,在中断服务子程序中,一般对中断做一些简单的处理,然后给出事件发生的标志,待 后台程序来处理;后台程序也称任务级程序,一个死循环,循环查询各种标志位,如果标 志位置位,就执行相应的任务程序。

优点:系统结构简单,几乎不需要额外的存储开销;可以避免中断嵌套(栈溢出),避免 漏掉异步事件;可调用不可重入函数(任务间不嵌套)。

缺点:所有的任务具有相同的优先级别,如果一个任务执行时间不能确定,则所有任务响 应时间不可预测;后台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务 崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。 实时性:取决于所有其它任务的执行时间之和。

第 21 页 共 44 页

《嵌入式系统》试题库

53、 重入函数有何特点?

答:可用于递归调用或者多个过程同时调用;生成模拟栈,用来完成参数传递和保存局部 变量;其他函数不可重入,原因是参数和局部变量放在固定存储区域。

54、 一般尽量少采用重入函数,为什么?

答:重入函数会导致栈不可预测,而嵌入式系统中 RAM 容量都很小,容易导致栈溢出。 55、 关键字 static 有什么作用?

答:关键字 static 有三个作用:在函数体内,一个被声明为静态的变量在这一函数被调用 过程中维持其值不变;在文件域内(但在函数体外),一个被声明为静态的变量可以被文 件域内所有函数访问,但不能被文件域外其它函数访问。它是一个本地的全局变量;在文 件域内,一个被声明为静态的函数只可被这一文件域内的其它函数调用。那就是,这个函 数被限制在声明它的文件的本地范围内使用。

56、 关键字 const 有什么作用?

答:关键字 const 的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参 数为常量是为了告诉了用户这个参数的应用目的;通过给优化器一些附加的信息,使用关 键字 const 也许能产生更紧凑的代码;合理地使用关键字 const 可以使编译器很自然地保护 那些不希望被改变的参数,防止其被无意的代码修改。

57、 关键字 volatile 有什么作用?

答:阻止编译器优化。一个定义为 volatile 的变量是说这变量可能会被意想不到地改变 精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不 是使用保存在寄存器里的备份。

58、 列出 volatile 变量使用的几种情况。

答:并行设备的硬件寄存器(如:状态寄存器);中断服务子程序中会访问到的非自动变 量;多线程应用中被几个任务共享的变量。

59、 请指明该定义的含义并解释每个修饰关键词的作用:volatile const unsigned char UTRSTAT0。

答:易失只读状态寄存器 UTRSTAT0;

volatile:可能被外界(硬件、其他进程)改变; const:本程序不应该试图去修改它; unsigned char:无符号字节类型;

60、 请指出下述求平方函数的错误并写出正确代码。 int square(volatile int *ptr) {

return (*ptr) * (*ptr); }

答:由于指针 ptr 指向 volatile 变量,该变量的值可能被硬件、其他进程所改变,两次读的 值可能不一样,因此这段代码可能返不是你所期望的平方值。 正确的代码如下:

第 22 页 共 44 页

《嵌入式系统》试题库

int square(volatile int *ptr) {

int a;

a = *ptr; // 只读一次 return a * a; }

61、 谈一谈 S3C44B0x 的中断响应的详细过程。 答:S3C44B0x 的中断响应的详细过程为: ① 中断源向中断控制器发出中断请求;

② 中断控制器通过 IRQ/FIQ 向 CPU 发出中断请求; ③ CPU 响应中断并查询中断源得到中断向量表入口地址; ④ 到中断向量表相应入口地址取指令执行,该处为跳转指令; ⑤ 执行跳转指令,跳转到中断服务子程序处执行。

62、 什么是 DMA 传输?

答:一种快速传送数据的机制,不需要 CPU 的参与,数据传递可以从 I/O 接口到内存,从 内存到 I/O 接口,从一段内存到另一段内存。

63、 谈一谈 S3C44B0x 的 DMA 响应的详细过程。 答:S3C44B0x 的 DMA 响应的详细过程为: ① I/O 接口电路向 DMA 控制器发出 DMA 请求; ② DMA 控制器向总线仲裁器发出总线请求; ③ 总线仲裁器向 DMA 控制器回答总线应答信号; ④ DMA 控制器向 I/O 接口电路回答 DMA 应答信号; ⑤ DMA 传输开始,完毕引起中断。

64、 定时/计数器的基本构成有哪些?

答:控制寄存器、状态寄存器、计数初值寄存器、计数器、计数输出寄存器。

65、 嵌入式软件有何特点?

第 23 页 共 44 页

《嵌入式系统》试题库

答:软件要求固态化存储,应用有较强的实时性需求,硬件资源环境比较苛刻,软件代码 具有高质量和高可靠性,多任务操作系统是主流发展方向。

66、 什么是嵌入式操作系统?

答:一种支持嵌入式系统应用的操作系统软件,是嵌入式系统极为重要的组成部分。通常 包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。具 有通用操作系统的基本特点:能够有效管理越来越复杂的系统资源,能够把硬件虚拟化, 简化的驱动程序移植和维护,能够提供库函数、驱动程序、工具集以及应用程序。

67、 为什么需要嵌入式操作系统?

答:嵌入式处理器性能提高,资源(内存、I/O 接口)增多;任务要求复杂,实时、多任 务、编程困难;许多的任务需求是相同的,完全可以将一些相同的功能作为一个通用模块 实现,这就是操作系统,它屏蔽了底层硬件的细节,方便用户,提供了标准的、可剪裁的 系统服务软组件。

68、 谈一谈以处理器为核心的嵌入式系统设计流程?

答:需求分析,看看用户需要解决哪些问题;选择处理器和相应的硬件;硬件的设计,原 理图和 PCB;软件的设计,处理器的初始化,中断,外设等等;系统调试、测试。

69、 谈一谈以嵌入式操作系统为核心的嵌入式系统设计流程?

答:一个嵌入式系统,处理器和核心电路是固定的,操作系统及典型的外设驱动程序是固 定的;嵌入式系统设计所需要做的工作,是不是要添加什么外设,写一些所添加的外设的 驱动程序,编写应用程序——纯软件的工作;选择成熟的嵌入式操作系统,避免重复劳动, 缩短开发周期,从而降低产品成本。

70、 谈一谈加载嵌入式操作系统的优缺点。

答:优点:程序的设计和扩展变得容易,任务分析成模块,简化应用程序的设计,对实时 性要求苛刻的事件得到了快速、可靠的处理,通过有效的系统服务,使得系统资源得到更 好的利用。缺点:额外的存储开销,2~5%的 CPU 额外负荷,内核的费用。

第 24 页 共 44 页