《整理嵌入式系统考试试题》由会员分享,可在线阅读,更多相关《整理嵌入式系统考试试题(15页珍藏版)》请在金锄头文库上搜索。
1、精品文档题答勿内线封密班得分评阅人级年 业专校学1、以下说法不正确的选项是.A、任务可以有类型说明C、任务可以有形参变量B、任务可以返回一个数值D任务是一个无限循环2、用图形点阵的方式显示一个16*16点阵汉字需要字节A 8B、32C、16D 643、卩COS-II操作系统中最多可以治理个任务.A 64B、56C、128D 63号学题答勿内线封密A程序计数器B、链接存放器C、栈指针存放器D基址存放器8、IRQ中断的入口地址是.A0x00000000B、0x00000008C、0x00000018D0x00000014、选择题本大题共10个小题,每题1分,共10 分4、存储一个32位数0x216
2、8465到2000HH2003H四个字节单元中,假设以大端模式存储,那么2000H存储单元的内容为.dA、0x21B、0x68C、0x65D、0x025、以ARM为内核的微处理器是位的.dA 4位B、8位C、16 位D32 位6、RS232-C串口通信中,表示逻辑1的电平是.dA、0vB、3.3vC、+ 5v + 15vD 5v 一 15v7、存放器R14除了可以做通用存放器外,还可以做.b9、采用RS232-C串行通信至少需要三根线,其中不包括A、电源线B、地线精品文档C、发送数据线D接收数据线10、Uni code编码与编码方式兼谷.A ASCII 码B、GBKC、GB2312D区位码、填
3、空题本大题共24个空,每空1分,共24 分得分评阅人11、 开展到现在,常用的操作系统包括三大类,分别为:批处理系统、分时系统 、和.12、在图形操作系统中,字符通常有两种存储方式:一种是 方式;一种是方式.在嵌入式开发系统中一般使用 方式.13、 ARM7指令系统采用三级流水线指令,分别包括: 、和.14、 ARM处理器有七种工作模式,分别为 、和状态.见第二套题的19题15、 OSTaskSuspend self可把正在运行的任务挂起 ,参数self指 任务本身.用此函数挂起的任务可通过 OSTaskResume函数唤醒.16、创立信号量 OSSemCreat0函数中,参数0表示.17、假
4、设一个优先级为35的任务就绪,那么在就绪表中,OSRdyTbl的 2置位,变量OSRdyGrp勺 4置位.18、 网络通信中面向连接的协议是 tcp 面向无连接的协议是 udp.三、简做题本大题共4个小题,每题5分,共20分得分评阅人19、简述进程和线程有什么区别,卩COS-II操作系统中的任务属于进程还是线程? 进程:包含正在运行的一个程序的所有状态信息,包括程序的代码、程序的数据、PC值、一组通用的存放器的当前值,堆、栈,一组系统资源如翻开的文件.进程有动态性、独立性、 并发性的特点.线程:是较进程更小的能独立运行的根本单位,是进程当中的一条执行流程,它可以满足统 一进程内不通实体间的并发
5、执行而又共享相同的地址空间.一个进程中可以同时存在多个线程 各个线程之间可以并发地执行精品文档各个线程之间可以共享地址空间 卩COS-II操作系统中的任务属于线程20、简述占先式和非占先式操作系统内核特点?并画图说明他们之间的主要区别.不可抢占调度方式:一个进程假设被选中就一直运行下去,直到它被阻塞I/O ,或正在等待其他进程,或主动地交出CPU可抢占调度方式:当一个进程在运行时,调度程序可以打断它.21、画图说明卩COS-II操作系统各状态之间是如何切换的,并标明所有可能的切换 函数.见书上118页的图和下面的说明22、什么是卩COS-II操作系统的时钟节拍?时钟节拍是一种特殊的中断,相当于
6、操作系统的心脏起搏器卩C/OS需要用户提供周期性信号源,用于实现时间延时和确认超时. 节拍率应在10到100Hz 之间,时钟节拍率越高,系统的额外负荷就越重;时钟节拍的实际频率取决于用户应用程序的精度.时钟节拍源可以是专门的硬件定时器,或 是来自50/60HZ交流电源的信号.精品文档精品文档精品文档28、37.分析 LCDLCD上显示的图形四、程序填空题本大题共2个小题,每题6分,共12 分得分评阅人23、有两个任务代码如下,其中Task_A、Task_B的优先级分别为: 上的显示结果.Void Task_A() ClearScree n();LCD_Printf( “task1 is run
7、ning!n ); OSTimeDly(400);Void Task_B() ClearScree n();LCD_Pri ntf( “ hello task2! n ); OSTimeDly(160);在LCD上的显示结果为:第一次:task1 is running!第二次: hello task2!第三次: hello task2!第四次:task1 is running!第五次: hello task2!第六次: hello task2!24、在分辨率为320x240的LCD上,执行完以下程序后,画出在并在划横线处添加注释void Main_Task(void *ld) int oldx
8、,oldy;PDC pdc;ClearScree n(); pdc=CreateDC();题答勿内线封密班SetDrawOrg(pdc, LCDWIDTH/2, LCDHEIGHT/2, & oldx, & oldy);Circle(pdc,O, 0, 50); /MoveTo(pdc, -50, -50);/Lin eTo(pdc, 50, -50);/以0, 0为圆心,50为半径画圆将画笔起点移动到-50,50 画一条起点为-50,50 终点为50, -50的直级年ArcTo(pdc, 80, -20, TRUE, 30); /画一条起点为(50,-50 )终点为(80,-20 的曲率为3
9、0的曲线业专校学Lin eTo(pdc, 80, 20);ArcTo(pdc, 50, 50, TRUE, 30);LineTo(pdc, -50, 50);ArcTo(pdc, -80, 20, TRUE, 30);Li neTo(pdc, -80, -20);ArcTo(pdc, -50, -50, TRUE, 30);OSTimeDly(3000);号学 名姓丿题答320x240 的 LCD五、程序分析题本大题共3个小题,每题6分,共18 分 得分评阅人25、下面程序是多任务中信号量的典型应用,阅读程序,分别画出各个任务的程序流程图,并说明程序要实现的功能什么.OS_EVENT *mat
10、h_Sem;int source ,dest;math_Sem=OSSemCreate(0);void task1()source = 8;OSSemPost(math_Sem);void task2() U8 err;OSSemPe nd(math_Sem,0,&err);dest = source;source =0;Task1:给source赋值对于 math_Sen调用 OSSemPosB数:检查是否有任务在等待该信号量,如果没有,将信号量的计数值加1并返回;如果有,将优先级最高的任务从等待任务列表中删除,并使它进入就绪状态; 调用OSSched(),判断是否需要进行任务切换.Task
11、2:申请信号量资源,调用 OSSemPer函数:如果信号量的计数值大于0,将它减1并返回;如果信号量的值等于0,那么调用本函数的任务将被阻塞起来,等待另一个任务 把它唤醒;调用OSSched()函数,调度下一个最高优先级的任务运行.将 source 的值传给 dest, source 清零该程序是一个操作系统中PV操作的演示程序,其中Taskl为V操作,添加信号量的 值,Task2为P操作,等待一个信号量,将信号量减 1.程序的运行结果为dest=8, source 值为 0.26、下面程序是消息循环在多任务中的应用实例,仔细阅读程序,画出程序流程图, 并说明程序要实现的功能是什么.(假设回车
12、键的键值为14)void task1() POSMSG pMsg=0;for(;) pMsg=WaitMessage(0);switch(pMsg-Message)题答勿内线封密班case OSM_KEY:on Key(pMsg-WParam,pMsg-LParam);break;DeleteMessage(pMsg);级年onKey(int nkey, int fnkey) switch(nkey)case 14:/OKLCD_printf(my name is XXX !n); break;case 7:/CancelLCD_Cls();break;Task1:1. 等待消息2. 如果消息
13、类型为 OSM_KEY3. 对于消息调用On Key函数4. 跳出循环5. 删除消息6. 跳到 1流程图略该程序是一个键盘消息处理函数,Taskl等待来自键盘的消息,一旦有键盘消息就调用 On key 函数,由OnKey函数进行具体的键盘事件处理,如果键值为14( enter键)就输出文本,如果是键值为 7 就清屏.27、下面程序是文本框控件在典型应用,认真阅读程序,画出程序流程图,并说明 程序要实现的主要功能. (假设数字键 1、数字键 2 和 del 键的键值分别为 1、2 和 10)PTextCtrl pText1;void Task1( ) POSMSG pMsg=0;structRECT rect; 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) case OSM_KEY:onKey(pMsg-WParam,pMsg-LParam);b