《嵌入式助理工程师硬件试题(20页).doc》由会员分享,可在线阅读,更多相关《嵌入式助理工程师硬件试题(20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-嵌入式助理工程师硬件试题-第 20 页嵌入式硬件助理工程师认证考试试题题库一、 选择题1、以下说法不正确的是(B )。A、任务可以有类型说明B、任务可以返回一个数值C、任务可以有形参变量D、任务是一个无限循环2、用图形点阵的方式显示一个16*16点阵汉字需要(B )字节。A、8B、32C、16D、643、下列描述不属于RISC计算机的特点的是(C)。 A流水线每周期前进一步。B更多通用寄存器。C指令长度不固定,执行需要多个周期。D独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。4、存储一个32位数0x2168465到2000H2003H四个字节单元中,若以大端模式存储,
2、则2000H存储单元的内容为( D)。A、0x21B、0x68C、0x65D、0x025、COS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D)A. 先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHFD. 先PUSHF、CLI、执行关键代码、再POPF。6、RS232-C串口通信中,表示逻辑1的电平是(D )。C、5v15vD、5v15v7、 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。A.
3、 R0 = R2 + (R3 1)B. R0 =( R2 1) + R3C. R3= R0+ (R2 1) D. (R3 k=+i;p+; q-k=i+;q-; q-k=i; for(i=0;i5;i+)printf(%d,mi.k); printf(n); (1)i、p、struct NODE和m的分别占据多少字节的内存空间?(4分)(2)p和q指针初始指向的地址相差多少字节?(4分)(3)程序运行后的输出结果是什么?(4分)参考答案及要点: (1)i、p、struct NODE和m的分别占据4字节、4字节、8字节和40字节的内存空间。(2)p和q指针初始指向的地址相差32字节(3)程序运行
4、后的输出结果13431。2、在分辨率为320x240的LCD上,执行完下列程序后,画出在LCD上显示的图形并在划横线处添加注释。void Main_Task(void *Id) int oldx,oldy; PDC pdc; ClearScreen();pdc=CreateDC();SetDrawOrg(pdc, LCDWIDTH/2,LCDHEIGHT/2, &oldx, & oldy);Circle(pdc,0, 0, 50); /_MoveTo(pdc, -50, -50);/ _LineTo(pdc, 50, -50);/ _ArcTo(pdc, 80, -20, TRUE, 30);
5、 /_LineTo(pdc, 80, 20);ArcTo(pdc, 50, 50, TRUE, 30);LineTo(pdc, -50, 50);ArcTo(pdc, -80, 20, TRUE, 30);LineTo(pdc, -80, -20);ArcTo(pdc, -50, -50, TRUE, 30);OSTimeDly(3000); 答: 320x240的LCD分分)分)分)3、在划线处添加代码,完成下面的程序,实现在task1中计算1到10的平均值,完成后向task2发送信号量。Task2无限期等待信号量,等到后在LCD上显示收到平均值。_ OS_EVENT *math_Sem;_
6、;Void Task1()int i ,average=0,sum=0;_ math_Sem=OSSemCreate(0);_for(i=1;iMessage) /_判断消息的类型 1分case OSM_KEY:/键盘消息 LCD_printf(To have key on !n);/向液晶屏输出break;DeleteMessage(pMsg) ; /_删除消息 1分7、三个任务代码如下,其中task1、task2、task3的优先级分别为:29、36,48。分析LCD上的显示结果。Void task1()ClearScreen();LCD_Printf(“task1 is running!
7、n”);OSTimeDly(500);Void task2()ClearScreen();LCD_Printf(“this is task2!n”);OSTimeDly(350);Void task3()ClearScreen();LCD_Printf(“running task3!n”);OSTimeDly(200);在LCD上的显示结果为:第一次:task1 is running!(1分)第二次:this is task2!(1分)第三次:running task3!(1分)第四次:running task3!(1分)第五次:this is task2!(1分)第六次:task1 is r
8、unning!(1分)8、C语言程序#include.ucos-iiincludes.h /* uC/OS interface */#include .ucos-iiaddosaddition.h#include .incdrv.h#include OS_STK Main_StackSTACKSIZE*8=0, ; /1) 定义并初始化堆栈(数组) void Main_Task(void *Id); #define Main_Task_Prio 12 / 2) 定义任务优先级 OS_EVENT *Nand_Rw_Sem; /3) 定义信号量 OS_EVENT *Uart_Rw_Sem; int
9、 main(void)ARMTargetInit(); /开发板初始化OSInit(); /4) 操作系统初始化 uHALr_ResetMMU();/复位MMULCD_Init(); /初始化LCD模块LCD_printf(LCD initialization is OKn);/向液晶屏输出数据LCD_printf(320 x 240 Text Moden);initOSGUI();/初始化图形界面LoadFont();/调Unicode字库LCD_printf(Create task on uCOS-II.n);OSTaskCreate(Main_Task, (void *)0, (OS_S
10、TK *)&Main_StackSTACKSIZE*8-1, Main_Task_Prio); /5) 创建系统任务 OSAddTask_Init();/创建系统附加任务LCD_printf(Starting uCOS-II.n);LCD_printf(Entering graph mode.n);LCD_ChangeMode(DspGraMode);/变LCD显示模式为文本模式InitRtc();/初始化系统时钟Nand_Rw_Sem=OSSemCreate(1); / 6) 创建信号量,初值为1 ,满足互斥条件 OSStart(); /7) 操作系统任务调度开始 return 0;9、 阅
11、读下列与看门狗有关的寄存器描述,解释每一行代码的功能。看门狗定时器控制寄存器(WTCON)寄 存 器地 址读/写描 述初 始 值WTCON0x53000000读/写看门狗定控制寄存器0x8021WTCON的标识位WTCONBit描 述初 始 值Prescaler Value15:8预装比例值,有效范围值为02550x80Reserved7:6保留00Watchdog Timer5使能和禁止看门狗定时器禁止看门狗定时器使能看门狗定时器0Clock Select4:3这两位决定时钟分频因素00:1/16 01:1/3210:1/64 11:1/12800Interrupt Generation2中断的禁止和使能0=禁止中断产生1=使能中断产生0Reserved1保留0ResetEnable/Disable0禁止很使能看门狗复位信号的输出1=看门狗复位信号使能0=看门狗复位信号禁止1看门狗定时器数据寄存器(WTDAT)寄 存 器地 址读/写描 述初 始 值WTDAT0x53000004读/写看门狗数据寄存器0x8000看门狗计数寄存器(WTCNT)寄 存 器地 址读/写描 述初 始 值WTCNT0x53000008读/写看门狗计数器当前值0x8000#def
限制150内