2006年下半年嵌入式系统设计师级答案

上午答案
(1) C (16) D (31) C (46) A (61) D
(2) A (17) B (32) B (47) B (62) D
(3) C (18) D (33) C (48) B (63) A
(4) B (19) C (34) B (49) A (64) B
(5) C (20) B (35) D (50) C (65) A
(6) B (21) D (36) D (51) B (66) B
(7) D (22) A (37) B (52) A (67) D
(8) A (23) C (38) D (53) D (68) C
(9) B (24) C (39) B (54) D (69) A
(10) C (25) D (40) B (55) C (70) C
(11) B (26) B (41) D (56) B (71) C
(12) C (27) C (42) C (57) A (72) D
(13) B (28) B (43) A (58) C (73) B
(14) A (29) B (44) D (59) A (74) A
(15) A (30) B (45) B (60) A (75) C

下午答案
试题一
[问题1]

[问题2]
 (1) A,或语音对话/按下按钮
 (2) B,或发送信息到通讯模块
 (3) E,或要求监听
 (4) C,或监听命令
 (5) F,或通过GSM发送信息
 (6) D,或接收成功要求监听信息
正确的处理顺序为:③,或ABCDEF
[问题3]
   


试题二
 
(1) 00 1101 1100 
 (2) 00dch 
 (3) push ds
 (4) add ax,y[bx]
 (5) mov z[bx],ax

试题三
[问题1]
  在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,需要互斥访问的资源称为临界资源,如打印机、共享变量、表格等。

[问题2]
  代码一所示的方法不能实现资源互斥访问。
  例如,考虑如下的情形:
  (a) 初始化的时候,flag数组的两个元素值均为FALSE
  (b) 任务0先执行,在执行while循环语句时,由于flag[1]=FALSE,所以顺利结束,不会被卡住。假设这个时候来了一个时钟中断,打断它的运行;
  (c) 任务1去执行,在执行while循环语句时,由于flag[0]=FALSE,所以顺利结束,不会被卡住,然后就进入了临界区;
  (d) 后来当任务0再执行时,也进入了临界区,这样就同时有两个任务在临界区
[问题3]
  简要说明:繁忙等待的基本思路是:当一个任务要进入临界区,首先需要检查是否允许它进入,若允许,则直接进入;否则,则循环等到,使用一个循环语句不断执行测试指令,从而浪费了大量的CPU资源。
[问题4]
  可能会出现死锁

试题四
[问题1]
  在编译时确定。
[问题2]
  固定分区、可变分区。
[问题3]
  代码段。
[问题4]
  全局变量gvCH和gvShort由于没有设置初始值,所以放在bss段当中。
  全局变量gvInt和gvLong有初始值,所以放在data段当中。
  指针p和数组array,它们都是main函数的局部变量,所以存放在栈当中。
[问题5]
  堆空间。

试题五
[问题1]
  异步通信系统的数据传输,其接收器时钟与发送器时钟是不同步的。
[问题2]
  一帧数据是从最低有效位开始传输的。
  传输线在逻辑1时处于空闲状态。当每帧数据开始传输时,先发送一个起始位。起始位是从逻辑1到0的迁移,这个变化表明一帧数据开始传输,接收端则在开始检测到起始位的时候,按照收发两端事先约定好的通讯速度,检测后面的数据位,从而组成一帧数据。
  在传输的最后,利用1个停止位(逻辑1)使传输线回到空闲状态。然后发送方才可以发送下一个字节的数据。
[问题3]
  如果设计系统的最高波特率标准为115200bps,则时钟至少为115200×16=1.8432MHz
[问题4]
  实现了两路的串口,每个串口为3条连接线。

回目录 老顽童校对整理 2006年12月