嵌入式硬件助理工程师认证考试试题与答案doc 15页.docx
《嵌入式硬件助理工程师认证考试试题与答案doc 15页.docx》由会员分享,可在线阅读,更多相关《嵌入式硬件助理工程师认证考试试题与答案doc 15页.docx(14页珍藏版)》请在冰豆网上搜索。
![嵌入式硬件助理工程师认证考试试题与答案doc 15页.docx](https://file1.bdocx.com/fileroot1/2023-4/16/cc84bff6-3fc0-41d7-a503-7b90d5ce64b7/cc84bff6-3fc0-41d7-a503-7b90d5ce64b71.gif)
嵌入式硬件助理工程师认证考试试题与答案doc15页
嵌入式硬件助理工程师认证考试试题与答案(doc15页)
(密封线内勿答题)学校专业姓名身份证号(密封线内勿答题)
(考试时间:
120分钟)
题号
一
二
三
四
五
六
总分
分数
一、选择题(本大题共10个小题,每小题1分,共10分)
得分
评阅人
1、和PC机系统相比,下列哪点不是嵌入式系统所特有的:
()
A、系统内核小B、专用性强
C、可执行多任务D、系统精简
2、ADDR0,R1,#3属于()寻址方式。
A、立即寻址B、多寄存器寻址
C、寄存器直接寻址D、相对寻址
3、GET伪指令的含义是:
()
A、包含一个外部文件B、定义程序的入口
C、定义一个宏D、声明一个变量
4、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存
储,则2000H存储单元的内容为:
()
A、0x00B、0x87
C、0x65D、0x61
5、μCOS-II操作系统不属于:
()
A、RTOSB、占先式实时操作系统
C、非占先式实时操作系统D、嵌入式实时操作系统
6、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDRR0,[R1,#8]!
后R0的值为:
()
A、0x2000B、0x86
C、0x2008D、0x39
7、寄存器R13除了可以做通用寄存器外,还可以做:
()
A、程序计数器B、链接寄存器
C、栈指针寄存器D、基址寄存器
8、FIQ中断的入口地址是:
()
A、0x0000001CB、0x00000008
C、0x00000018D、0x00000014
9、ARM指令集和Thumb指令集分别是()位的。
A、8位,16位B、16位,32位
C、16位,16位D、32位,16位
10、ARM寄存器组有()个寄存器。
A、7B、32
C、6D、37
二、填空题(本大题共24个空,每空1分,共24分)
得分
评阅人
11、一个嵌入式系统结构有典型的四层组成,包括:
、、和
。
12、一个FAT文件系统卷有四部分组成,包括:
、、和。
13、事件控制块ECB中OSEventType表示,OSEventCnt表示。
14、串行通信方式有三中通信、通信和通信。
15、OSTaskSuspend(self)可把正在运行的任务,参数self指。
用此函数挂起的任务可通过函数唤醒。
16、如果信号量用于表示打印机是否可用,那么该信号量属于型信号量。
17、若一个优先级为48的任务就绪,则在就绪表中,OSRdyTbl[]的置位,变量OSRdyGrp的置位。
18、Socket接口是TCP/IP网络的________,定义了许多函数或例程。
常用的Socket类型有两种为________Socket和________Socket。
其中________Socket是面向连接的,________Socket是面向无连接的。
三、简答题(本大题共4个小题,每小题5分,共20分)
得分
评阅人
19、ARM处理器有几种工作模式?
并做说明每种工作模式的含义。
20、什么是操作系统?
操作系统在“硬件、操作系统、应用程序、硬件驱动”四者中,处于哪两层之间?
?
21、什么是μCOS-II操作系统的时钟节拍?
22、简述任务切换的过程。
四、程序填空题(本大题共2个小题,每小题6分,共12分)
得分
评阅人
23、在划线处添加代码,完成下面的程序,实现在task1中计算1到10的平均值,完成后向task2发送信号量。
Task2无限期等待信号量,等到后在LCD上显示收到平均值。
__________________________;
VoidTask1()
{inti,average=0,sum=0;
_________________
for(i=1;i<=10;i++)
{
sum=sum+i;
}
average=sum/10;
__________________;
for(;;)
{OSTimeDly(100);}
}
voidtask2()
{____________________;
for(;;)
{________________________;
LCD_printf("wegettheaverage!
\n");
________________________;
}
}
24、在划横线处添加代码,完成下面创建一个任务的过程,要求优先级为36,任务栈大小为256。
OS_STK[256]={0,};
voidtask1(void*Id);
#define
;//操作系统初始化
(task1,(void*)0,(OS_STK*)&task1_Stack[256-1],task1_Prio);
;//操作系统任务调度开始
五、程序分析题(本大题共3个小题,每小题6分,共18分)
得分
评阅人
25、仔细阅读下面的信号量应用程序,画出各任务的程序流程图,并说明程序要实现的功能是什么。
OS_EVENT*week_Sem;
week_Sem=OSSemCreate(0);
voidtask1()
{
LCDPrintf(“TodayisMonday.\n”);
OSSemPost(math_Sem);
}
voidtask2()
{U8err;
OSSemPend(math_Sem,0,&err);
LCDPrintf(“whatdayistaday?
.\n”);
}
26、仔细阅读下面的文本框应用程序,画出程序流程图,并说明程序要实现的主要功能是什么。
(假设数字键6、数字键8和del键的键值分别为6、8和10)
PTextCtrlpText1;
voidTask1()
{POSMSGpMsg=0;
structRECTrect;
SetRect(&rect,100,30,160,50);
pText1=CreateTextCtrl(ID_MainTextCtrl,&rect,FONTSIZE_MIDDLE,\
CTRL_STYLE_FRAME,NULL,NULL);
SetTextCtrlEdit(pText1,TRUE);
for(;;){
pMsg=WaitMessage(0);
switch(pMsg->Message){
caseOSM_KEY:
onKey(pMsg->WParam,pMsg->LParam);
break;
}
DeleteMessage(pMsg);
}
}
onKey(intnkey,intfnkey)
{switch(nkey){
case6:
AppendChar2TextCtrl(pTextCtrl,0x36,TRUE);
break;
case8:
AppendChar2TextCtrl(pTextCtrl,0x38,TRUE);
break;
case10:
TextCtrlDeleteChar(pTextCtrl,TRUE);
break;
}
}
27、认真阅读下面的列表框控件应用程序,画出程序流程图,并说明程序要实现的主要功能是什么。
(假设上移和下移键的键值分别为11和12)
PListCtrlpList1
charstr1[]=”monday”;
charstr2[]=”tuesday”;
voidMain_Task(void*Id)
{POSMSGpMsg=0;
structRECTrect;
SetRect(&rect,100,30,160,50);
pList1=CreateListCtrl(ID_MainListBox,&rect,100,FONTSIZE_MIDDLE,\
CTRL_STYLE_DBFRAME,NULL);
strChar2Unicode(Ustr,str1);
AddStringListCtrl(pList1,Ustr);
strChar2Unicode(Ustr,str2);
AddStringListCtrl(pList1,Ustr);
ReDrawOSCtrl();
for(;;){
pMsg=WaitMessage(0);
switch(pMsg->Message){
caseOSM_KEY:
onKey(pMsg->WParam,pMsg->LParam);
break;
}
DeleteMessage(pMsg);
}
}
onKey(intnkey,intfnkey)
{charUstr[];
switch(nkey){
case11:
ListCtrlSelMove(pMainListCtrl,-1,TRUE);
break;
case12:
ListCtrlSelMove(pMainListCtrl,1,TRUE);
break;
}
ReDrawOSCtrl();
}
六、系统设计题(本大题共2个小题,每小题8分,共16分)
28、实现CAN总线通信需要哪两个芯片?
画出S3C44B0利用CAN总线进行通信的硬件连接示意图。
要实现两个开发平台间通过CAN总线双机通信,应如何设计程序(给出软件设计思路或程序流程图)。
29、给出S3C44B0通过驱动器控制步进电机的硬件连接示意图;已知步进电机正转时的控制顺序为A→AB→B→BC→C→CD→D→DA,以列表的形式给出各I/O控制口的值。
可以通过哪个宏来设置I/O控制口的值。
一、选择题(本大题共10个小题,每小题1分,共10分)
1、C2、A3、A4、C5、C6、D7、C8、A9、D10、D
二、填空题(本大题共22个空,每空1分,共22分)
11、硬件层、中间层、软件层、功能层。
12、保留区FAT区根目录区数据区
13、事件类型信号量计数器(和信号量的值)
14、单工双工半双工
15、挂起(或等待)任务自身的优先级OSTaskResume(self)
16、二进制
17、OSRdyTbl[6]的D0D6
18、API流式(stream)数据报式(datagram)流式(stream)数据报式(datagram)
三、简答题(本大题共6个小题,每小题4分,共24分)
19、答:
ARM处理器有7种工作模式:
用户模式(usr)-正常程序执行的模式0.5分
快速中断模式(fiq)-FIQ异常响应时进入此模式0.5分
中断模式(irq)-IRQ异常响应时进入此模式0.5分
管理员模式(svc)-系统复位和软件中断响应时进入此模式0.5分
中止模式(abt)-用于虚拟存储及存储保护0.5分
系统模式(sys)-与用户类似,但有直接切换到其它模式等特权0.5分
未定义模式(und)-未定义指令异常响应时进入此模式0.5分
除了用户模式外,其他模式均可视为特权模式0.5分
20、答:
操作系统是计算机中最基本的程序。
操作系统负责计算机系统中全部软硬件资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统提供软件平台。
(3分)
操作系统处于应用程序和硬件驱动之间。
(1分)
21、答:
时钟节拍是特定的周期性中断。
这个中断可以看作是系统心脏的脉动。
(2分)中断间的时间间隔取决于不同的应用,一般在10ms~200ms之间。
时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。
时钟节拍率越快,系统的额外开销就越大。
(2分)
22、答:
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。
(1分)这些内容保存在任务的当前状态保存区,也就是任务自己的堆栈中。
(1分)入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的堆栈中重新装入CPU的寄存器,并开始下一个任务的运行。
这个过程就称为任务切换。
(1分)做任务切换所需要的时间取决于CPU有多少寄存器要入栈。
(1分)
四、程序填空题(本大题共5个小题,每小题4分,共20分)
23、OS_EVENT*math_Sem;
math_Sem=OSSemCreate(0);
OSSemPost(math_Sem);2分
U8err;
OSSemPend(math_Sem,0,&err);
OSTimeDly(100);2分
24、task1_Stack
task1_Prio
362分
OSInit()
OSTaskCreate
OSStart()2分
五、程序分析题(本大题共4个小题,每小题6分,共24分)
25、功能:
编写两个任务task1和task2完成要求的功能。
设task2为较高的优先级,task1中在LCD显示“TodayisMonday.\n”;task2中在LCD显示“whatdayistoday?
\n”。
要求先问后答。
(3分)
流程图:
(3分)
Task1的流程图task2的流程图
26、功能:
编写程序实现在任务task1中,首先创建一个空白的处于可编辑状态的文本框,按数字键6和8向文本框中输入内容,按del键删除最后一个字符。
(3分)
流程图:
(3分)(以下给出流程图的简略画法)
Task1:
1)创建空白文本框2)设置文本框为可编辑状态3)等待消息
4)收到消息后判断消息类型5)若为键盘消息,调键盘处理函数。
转第3)步循环6)删除消息
键盘函数中:
1)判断键值2)为键6时,向文本框输入6;为键8时,向文本框输入8;为键10时,删除最后一个字符。
27、功能:
编写程序实现在任务task1中,首先创建一个列表框,列表框中有两个列表项“monday”和“tuesday”,编程实现通过上移和下移键来选择列表项。
(3分)
流程图:
(3分)
Task1:
1)创建空白列表框2)向列表框添加条目,Monday和tuesday
3)重画列表框3)等待消息4)收到消息后判断消息类型
5)若为键盘消息,调键盘处理函数。
转第3)步循环6)删除消息
键盘函数中:
1)判断键值2)为键11时,列表框选中的条目上移一条;为键12时,列表框选中的条目下移一条。
3)重画列表框
六、系统设计题(本大题共2个小题,每小题8分,共16分)
28、1)MCP2510和TJA1050。
(2分)
2)(3分)
3)能正确表示CAN总线的初始化和发送接收编程思路(3分)
开发平台A编程思路:
1)初始化MCP25102)启动can总线收发
3)通过can口发送一个字符
开发平台B编程思路:
1)初始化MCP25102)启动can总线收发
3)通过can口接收一个字符
29、1)
2)高四位I/O控制口的值
3)可以通过宏SETEXIOBITMASK(bit,mask)来设置扩展I/O口。