2023年嵌入式助理工程师硬件试题_第1页
2023年嵌入式助理工程师硬件试题_第2页
2023年嵌入式助理工程师硬件试题_第3页
2023年嵌入式助理工程师硬件试题_第4页
2023年嵌入式助理工程师硬件试题_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式硬件助理工程师认证考试试题题库

一、选择题

1、如下说法不对的I的是(B)»

A、任务可以有类型阐明B、任务可以返回一种数值

C、任务可以有形参变量D、任务是一种无限循环

2、用图形点阵的方式显示一种16*16点阵中文需要(B)字节。

A、8B、32

C、16D、64

3、下列描述不属于RISC计算机的特点的是(C)。

A.流水线每周期前深入。

B.更多通用寄存器。

C.指令长度不固定,执行需要多种周期。

D.独立的Load和Store指令完毕数据在寄存器和外部存储器之间的传播。

4、存储一种32位数0x2168465到2023H〜2023H四个字节单元中,若以大端模式存储,则

2023H存储单元日勺内容为(D)。

A、0x21B、0x68

C、0x65D、0x02

5、NCOS-II中对关键代码段由于但愿在执行的过程中不被中断干扰,一般采用关中断的方

式,如下X86汇编代码对的并且不会变化关中断之前的中断开关状态的是(D)

A.先CLI、执行关键代码、再STI

B.先STI、执行关键代码、再CLI

C.先POPF、CLk执行关键代码、再PUSHF

D.先PUSHF、CLL执行关键代码、再POPF。

6、RS232-C串口通信中,表达逻辑1时电平是(D)。

A、OvB、3.3v

C^+5v〜+15vD、-5v-----15v

7、ARM汇编语句“ADDRO,R2,R3,LSL#l”区)作用是(A)。

A.RO=R2+(R3«1)

B.RO=(R2«1)+R3

C.R3=R0+(R2«1)

D.(R3«1)=R0+R2

8、IRQ中断的入口地址是(C)。

A、0x00000000B、0x00000008

C、0x00000018D、0x00000014

9、S3c2420X1/0□常用的控制器是(D)。

(1)端口控制寄存器(GPACON-GPHCON)。

(2)端口数据寄存器(GPADAT-GPHDAT)。

(3)外部中断控制寄存器(EXTINTN)»

(4)以上都是。

10、实时操作系统中,两个任务并发执行,一种任务要等待其合作伙伴发来信息,或建立某

个条件后再向前执行,这种制约性合作关系被成为(A)。

A.同步B.互斥C.调度D.执行

11、和PC系统机相比嵌入式系统不具有如下哪个特点(C)»

A、系统内核小B、专用性强

C、可执行多任务D、系统精简

12、ADDRO,RI,#3属于(A)寻址方式。

A.立即寻址B.多寄存器寻址

C.寄存器直接寻址D.相对寻址

13、GET伪指令的含义是(A)

A.包括一种外部文献B.定义程序的)入口

C.定义一种宏D.申明一种变量

14、存储一种32位数0x876165到2023H〜2023H四个字节单元中,若以小端模式存

储,则2023H存储单元的内容为(C)o

A、0x00B、0x87

C、0x65D、0x61

15>UCOSTI操作系统不属于(C)。

A、RTOSB、占先式实时操作系统

C、非占先式实时操作系统D、嵌入式实时操作系统

16、若Rl=2023H,(2023H)=0x86,(2023H)=0x39,则执行指令LDRRO,[RI,#8]!后RO

时值为(D)。

A.0x2023B.0x86

C.0x2023D.0x39

17、寄存器R13除了可以做通用寄存器外,还可以做(C).

A、程序计数器B、链接寄存器

C、栈指针寄存器D、基址寄存器

18、F1Q中断的J入口地址是(A)o

A、0x000000ICB、0x00000008

C、0x00000018D、0x00000014

19、ARM指令集和Thumb指令集分别是(D)位的。

A.8位,16位B.16位,32位

C.16位,16位D.32位,16位

20、ARM寄存器组有(D)个寄存器。

A、7B、32

C、6D、37

21、若Rl=2023H,(2023H)=0x28,(2023H)=0x87,则执行指令LDRRO,[RI,#8]!后RO

时值为(D)。

A.0x2023B.0x28

C.0x2023D.0x87

22、寄存器R15除了可以做通用寄存器外,还可以做(A)

A.程序计数器B.链接寄存器

C.堆栈指针寄存器D.基址寄存器

23、嵌入式系统有硬件和软件部分构成,如下(C)不属于嵌入式系统软件。

A.系统软件B.驱动C.FPGA编程软件D.嵌入式中间件

24、uCOSTI操作系统属于(B)

A、次序执行系统B、占先式实时操作系统

C、非占先式实时操作系统1)、分时操作系统

25、ARM指令集是(B)位的。

A.16B.32

C.8D.24

26、假设Rl=0x31,R2=0x2则执行指令ADDRO,RI,R2LSLS3后,RO时值是(C)

A.0x33B.0x34

C.0x39D.0x38

27、寄存器R13除了可以做通用寄存器外,还可以做(C)

A、程序计数器B、链接寄存器

C、栈指针寄存器D、基址寄存器

28、ARM寄存器组有(C)个状态寄存器

A、7B、32

C、6D、37

29、和PC机系统相比下列哪个不是嵌入式系统独具的特点(C)

A、系统内核小B、专用性强

C、可执行多任务D、系统精简

30、Unicode编码与(A)编码方式兼容。

A、ASCII码B、GBK

C、GB2312D、区位码

31、嵌入式系统有硬件和软件部分构成,如下(C)不属于嵌入式系统软件。

A.系统软件B.驱动C.FPGA编程软件D.嵌入式中间件

32、Cache用于寄存主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用

(A)完毕。

A.硬件B,软件C.顾客D.程序员

33、在RC/OS-H系统中,OSTimeTick()函数只被如下(A)函数或过程所调用。

A.OSTicklSRB.OSShedC.OSCtxSwD.OSIntCtxSw

34、每种嵌入式操作系统均有自身的特点以吸引有关顾客,下列说法错误的是(D)。

A.嵌入式Linux提供了完善的网络技术支持;

B.pCLinux是专门为没有MMU的ARM芯片开发的;

C.NC/OS-II操作系统是一种实时操作系统(RTOS);

D.WinCE提供完全开放的源代码。

35、下列有关存储管理单元(MMU)说法错误的是(B)。

A.MMU提供的一种关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间

中运行。

B.在带MMU的操作系统控制下,运行的任务必须懂得其他与之无关的任务的存储需求状

况,这就简化了各个任务的设计。

C.MMU提供了某些资源以容许使用虚拟存储器。

D.MMU作为转换器,将程序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地

址,即在物理主存中的地址。

36、下列CPSR寄存器标志位的作用说法错误的是(D)。

A.N:负数B.Z:零C.C:进位D.V:借位

37、S3C2410X处理器为顾客进行应用设计提供了支持多主总线的IIC接口。处理器提供符

合HC协议的设备连接的串行连接线为(C)。

A.SCL和RTXB.RTX和RCX

C.SCL和SDAD.SDA和RCX

38、栈和队列欧I共同特点是(C)。

A.都是先进先出B.B.都是先进后出

C.只容许在端点处插入和删除元素D.没有共同点

39、有如下程序

main()

intx=l,a=O,b=O;

switch(x)

(

case0:b++;

case1:a++;

case2:a++;b++;

)

printf(na=%d,b=%d\nH,a,b);

}

该程序的输出成果是(A)。

A.a=2,b=lB.a=l,b=lC.a=l,b=0D.a=2,b=2

40、若已定义的函数有返回值,则如下有关该函数调用的论述中错误的是(D)。

A.函数调用可以作为独立的语句存在

B.函数调用可以作为一种函数的实参

C.函数调用可以出目前体现式中

D.函数调用可以作为一种函数的形参

41、如下说法对的的是(C)。

A.C语言程序总是从第一种的函数开始执行

B.在C语言程序中,要调用函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

42、寄存器R15用作(B)o

A.栈指针寄存器B.程序计数器

C.目前途序状态寄存器D.基地址寄存器

43、IRQ中断的优先级别是(D)。

A.1B.2

C.3D.4

44、LDRR2,[R3,#128]的寻址方式是(C)。

A,寄存器寻址B.寄存器移位

C.变址寻址D.间接寻址

45、S3c2410有(B)个USB接口。

A.1B.2

C.3D.4

46、ARM处理器的工作模式有(C)种。

A.5B.6

C.7D.8

填空题:

1、串行通信方式有三中单工通信、双工通信和半双工通信。

2,填写gC/OS-II中任务创立函数OSTaskCreate(州四个参数的含义:

OSTaskCreate(

MyTask,//(任务日勺函数指针)

(void*)s,//(传给任务函数的参数)

&TaskStartStkLTASK_STK_SIZE-I],//(任务日勺堆栈指针)

0//(任务□勺优先级号)

);。

3、ARM7指令系统采用三级流水线指令,分别包括:里擅、译码和执行。

4、TCP/IP在多种层引入了安全机制,其中TLS协议位于(传播)层。

5、OSTaskSusnend(seif)可把,正在运行的任务挂起(或等待),参数self指任务自身的优

先级。用此函数挂起的任务可通过OSTaskResume(self)函数唤醒。

6、下列程序的输出成果是("Hello")。

maim()

{charb[]="Helloyou";

b[5]=0;

printf("%s\n",b);}

7、有数组定义皿2[2][2]={{1},{2,3}};则2[0][1响值为(_0_)o

8、在ARM处理器的多种模式中,大多数应用程序运行在(题客)模式,当一种高优先级

中断产生时会进入(迅速中断)模式,在复位或软件软中断时进入(挺0模式。

9、一种嵌入式系统构造有经典的四层构成,包括:硬件层、中间层、软件层和功能层。

10、一种FAT文献系统卷有四部分构成,包括:保留区、FAT区、根目录和数

据区。

11、事件控制块ECB中OSEventType表达一事件类型,OSEventCnt表达一信号量计数器

(和信号量H勺值)。

12、串行通信方式有三中单工通信、双工通信和半双工通信。

13、OSTaskSuspend(self)可把正在运行的任务挂起(或等待),参数self指任务

自身的优先级。用此函数挂起的任务可通过OSTaskResume(self)函数唤醒。

14、假如信号量是用于表达打印机不忙,那么该信号量的初始值应设为1。

15、若一种优先级为48的任务就绪,则在就绪表中,OSRdyTbl口的OSRdyTbl[6]H'、JD0置

位,变量OSRdyGrp的1)6置位。

16、Socket接口是TCP/IP网络的API,定义了许多函数或例程。常用时Socket

类型有两种为一流式(stream)」Socket和一数据报式(datagram)「Socket。其中_、流式

(stream)—Socket是面向连接日勺,一数据报式(datagram)_Socket是面向无连接的。

17、调试程序时调入的文献最佳为Debug版本下编译生成的.axf文献,该版本的文献包

括部分调试用到的信息。

18、S3c44B0X使用ARM7(或ARM7TDMI)内核,工作频率为66MHz。

19、在图形操作系统中,字符一般有两种存储方式:一种是图形点阵(或点阵)方式:一

种是矢量图形(或矢量图)方式。在嵌入式开发系统中使用的都是图形点阵方式。

20、和信号量用数值表达不一样,邮箱可以使一种任务向令一种任务发送一种指针型

21、变量,该变量包括了特定消息的数据构造。

22、S3c44B0提供两个.个独立的异步串口,都可以运行于—史虹—模式或—DMA—

模式。

23、16、ARM处理器的两种工作状态为ARM状态和Thmub状态。

24、17、USB家庭中有三位组员,即主机(或host)、设备(或device)、集线器(或

Hub).

25、ARM存储器有两种存储模式,即大端模式和小端模式。假设丫=0x46134存储在2023H〜

2023H四个内存单元中,若以小端模式存储,则(2023H)=_0x34、(2023H)=0x61

一、(2023H)=0x04、(2023H)-0x00<,

26、信号量有两种类型,分别为::进制(或bin"y)型和记数器(或counter)型。

27、影响流水线性能的J原因有(互卷1)和(跳转指令)。

28、某数码相机内置128MB的存储空间,拍摄辨别率设定为1600x1200像素,颜色为24

为,若不采用压缩技术,使用内部存储器最多可以存储(0)张照片,该相机最多支持

(224)种色彩。

29、对于8位二进制数,一7日勺反码和补码分别是(11111000)和(11111001)。

30、在CPU的状态寄存器中,假如符号标志为“1”,表达运算成果为(场);假如进位标

识为“0”,表达(无进位或借位)。

三、判断题

1、程序运行过程中日勺资源可以是显示屏、键盘,但不可以是一种数组或变量(X)

2、21、在UC0S-H操作系统中,已知Taskl的优先级为12,Task2的优先级为26。假如

在Task2运行过程中发生键盘中断,在执行中断服务程序时Taskl进入就绪状态,则中

断返回时Taskl得到CPU的使用权。(V)

3、若定义任务taskl的优先级为12,则不能再定义其他任务的优先级也为12(V)

4、任务创立后即开始调度(X)

5、液晶工作在文本模式下时,既可以显示英文字符也可以显示中文(X)

6、处在就绪状态的任务只能切换到运行状态(X)

7、等待消息函数WaitMessage(0)中的“0”表达此函数的超时等待时间为0秒(X)

8、若OSTaskSuspend(prio)函数把正在延时政)任务挂起,则调用一次对应欧)唤醒函数即可

使该任务切换到就绪状态。(X)

9、调试程序时,需要停止程序运行后才可查看变量内容(V)

10、UC0S-H操作系统中移植成功后即可使用文献系统(X)

11、将模拟信号转换成数字信号的电路是DA转换器。(义)

12、HC是同步串行数据总线,。(J)

13、S3C2410的处理器对内存的访问只能通过Load/Store指令来实现。3

14、NandFlash比NorFlash成本高,可靠性差。(X)

15、C语言程序可以嵌套加入汇编程序模块。(V)

16、运算放大器的输出电压范围一般不小于电源电压的范围。(X)

17、由于CPU内部寄存器的访问速度较高,根据ATPC原则,应尽量使函数的参数控制在4

个如下。(V)

18、ARM处理器构造体系中具有T变种处理器核可以工作在ARM状态和Thumb状态。(V)

四、简答题

1、ARM微处理器的编程模型是指ARM微处理器的基本工作原理和某些与程序设计有关

的基本技术细节,ARM编程模型重要有哪五个方面?重要是指什么内容?

答案要点:

ARM微处理器的工作状态:ARM状态、Thumb状态

ARM体系构造的存储器格式:大端格式、小端格式

ARM微处理器的工作模式:7种运行模式

ARM体系构造的寄存器组织:37个32位寄存器,其中31个为通用寄存器,6个为状态寄

存器,哪些寄存器是可编程访问时,取决微处理器的工作状态及详细的运行模式。

ARM微处理器的异常状态:7种异常

2、画图阐明UCOS-II操作系统各状态之间是怎样切换的,并举出至少一种对应的切换条

件或函数。

OsSemPost()

OsMboxPost()OsSemPend()

OsQPost()OsMboxPend()

OsTaskDel()OsQPostFront()OsQPend()

OsTaskResume()OsTaskSupend()

OsTimeDlyResume()OsTimeDly0

OsTimeTick()OsTimeDlyHmsmO

带箭头各任务间切换图对时,得1分;

切换条件每三个得1分,共3分,每种切换能举出一种对的条件或函数即可。

3、什么是uCOSTI操作系统的时钟节拍?

答:时钟节拍是特定的周期性中断。(1分)这个中断可以看作是系统心脏的脉动。中断间

的)时间间隔取决于不一样的I应用,一般在10ms〜200ms之间。(1分)时钟的节拍式中断使

得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时

的根据。(1分)时钟节拍率越快,系统的额外开销就越大。(1分)

4、ARM处理器有几种工作模式?并做阐明每种工作模式的含义。

答: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分

5、什么是操作系统?操作系统在“硬件、操作系统、应用程序、硬件驱动”四者中,处

在哪两层之间??

答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中所有软硬件资源的分

派与回收、控制与协调等并发的活动;操作系统提供顾客接口,使顾客获得良好的工作

环境;操作系统为顾客扩展新的系统提供软件平台。(3分)

操作系统处在应用程序和硬件驱动之间。(1分)

6、什么是嵌入式系统?分别从狭义和广义两方面阐明。

答:从广义上说,但凡与产品结合在一起具有嵌入式特点的控制系统都可以叫嵌入式系统

如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片。(2分)

从狭义上说,嵌入式系统是指而嵌入式系统一般指在开发时移植了操作系统,功能较复

杂的便携式电子设备,如、掌上电脑、MP4等,常见CPU为ARM、DSP、S0C等。(2分)

7、简述任务切换的过程。

答:当多任务内核决定运行此外的任务时,它保留正在运行任务的J目前状态,即CPU寄存

器中的所有内容。(1分)这些内容保留在任务的目前状态保留区,也就是任务自己的堆

栈中。(1分)入栈工作完毕后来,就把下一种将要运行的任务的目前状态从任务的堆栈

中重新装入CPU的寄存器,并开始下一种任务的运行。这个过程就称为任务切换。(1分)

做任务切换所需要的时间取决于CPU有多少寄存器要入栈。(1分)

8、S3c44B0代)存储系统中,OxcOOOOOO和0xc080000的含义是什么?它们之间的51兼byte

空间做什么用?

答:OxCOOOOOO是SDRAMS起始地址,系统的I程序存储空间从0xC080000开始。(2分)

512Kbyte的J空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以

更新LCD的显示)。(2分)

9、简述你对嵌入式和嵌入式系统的理解?

答:但凡使用了CPU的便携式电子设备都可以叫嵌入式,(如电子表、超声波测距仪等职能

仪表,常见CPU为MCS51系列芯片)(2分)。而嵌入式系统一般指在开发时移植了操作

系统,功能较复杂的便携式电子设备,(如、掌上电脑、MP4等,常见CPU为ARM、DSP、

SOC等)。(2分)

10、嵌入式设计流程?

答:1)系统需求分析

2)体系构造设计

3)硬件/软件协同设计

4)系统集成

5)系统测试(每点约1分,酌情错2点,扣1分)

11、什么是代码临界区,进、出代码临界应分别做什么?

答:代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,

则不容许任何中断打入。(2分)

为保证代码临界区的执行,在进入临界区之前要关中断,而临界区代码执行完后来要立

即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。(2分)

12、简要论述嵌入式系统开发流程。

参照答案及要点:

建立开发环境;

配置开发主机;

建立引导装载程序BOOTLOADER:

下载己经移植好的操作系统:

建立根文献系统;

开发应用程序。

13、试简述常用的三极管放大电路和技术特点。

答:共射电路:具有较大的电压放大倍数和电流放大倍数,输入电阻和输出电阻适中。

共集电路:输入电阻大,输出电阻小,电压放大倍数不不小于1。

共基电路:输入电阻小,频率特性好。

14、嵌入式系统区)软件层次构造包括哪些部分?简朴阐明各部分的功能与作用。

答:驱动层程序、操作系统、应用程序接口和应用程序。

驱动层程序:为上层软件提供设备的操作接口。

操作系统:进程管理、进程间通信、内存管理等。

应用程序接口:复杂函数和数据构造的集合,简化应用程序的开发。

应用程序:实现顾客功能。

五、阅读程序题

1、根据如下程序回答问题。

structNODE

{intk;

structNODE*link;

);

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q)

{p->k=++i;p++;

q->k=i++;q—;

)

q->k=i;

for(i=0;i<5;i++)printf(',%d',,m[i].k);

printf(n\nu);

(1)i、p、structNODE和m的分别占据多少字节的内存空间?(4分)

(2)p和q指针初始指向的地址相差多少字节?(4分)

(3)程序运行后的输出成果是什么?(4分)

参照答案及要点:

(1)i、p、structNODE和m的分别占据4字节、4字节、8字节和40字节的内存空间。

(2)p和q指针初始指向的地址相差32字节

(3)程序运行后时输出成果13431。

2、在辨别率为320x240的LCD上,执行完下列程序后,画出在LCD上显示的图形并在划横

线处添加注释。

voidMain_Task(void*Id)

{intoldx,oldy;

PDCpdc;

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);//

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);

0STimeDly(3000);

)

答:

320x240的LCD

以原点为圆心,50为半径画圆(0.5分

画笔移动到坐标(一50,—50)处(0.5分)

从坐标(一50,-50)到(50,-50)画直线(0.5分)

从目前坐标开始以30为半径顺时针画圆弧到坐标(80,-20)(0.5分)

3、在划线处添加代码,完毕下面的程序,实目前taskl中计算1到10的平均值,完毕后

向task2发送信号量。Task2无限期等待信号量,等到后在LCD上显示收到平均值。

0SEVENT*mathSem:_;

VoidTaskl()

{inti,average=0,sum=0;

mathS6m=0SSemCreate(0);

for(i=l;i<=10;i++)

(

sum=sum+i;

average=sum/10;

OSSemPost(mathSem);

for(;;)

{OSTimeDly(lOO);}

)

voidtask2()

{U8err;;

for(;;)

OSSemPend(mathSem,0,&err);

LCD_printf(,zwegettheaverage!\n");

____OSTimeDly(lOO);;

)

)

4、在划横线处添加代码,完毕下面创立一种任务的过程,规定优先级为36,任务栈大小为

256-

OS_STKtasklStack[256]={0,};

voidtaskl(void*Id);

#definetasklPrio36

OSInitQ;〃操作系统初始化

OSTaskCreate(taskl,(void*)0,(OS_STK*)&taskl_Stack[256-l],taskl_Prio);

OSStartO;//操作系统任务调度开始

5、ARM指令集的每一条指令都是4字节的,下面是一段中断入口程序,在空白处填上该

中断的)类型和中断向量。

ENTRY

BStartup;复位中断,0x001分

BUndefHandle;未定义指令中断,0x041分

BSWIHandle;软中断,0x081分

BPAbtHandle;预取中断,0x0C1分

BDAbtHandle;数据中断,0x00(X)0010

NOP;系统保留未用,0x00000014

BIRQHandle;IRQ中断,0x181分

BFIQHandle;迅速中断,OxlC1分

6、下面的程序描述了键盘消息的创立和使用过程,认真阅读并在划横线的地方添加合适H勺

注释。

voidKey_Scan_Task(void*Id)〃按键扫描任务

{U32key;

INT8Uerr;

POSMSGpmsg;

for(;;){

OSMboxPend(Key_MailBox,0,&err);〃祈求键盘邮箱1分

key=Zlg7289_ReadKey();

pmsg=OSCreateMessage(NULL,OSM_KEY,KeyBoard_Map[key],0);

;〃祈求到我达有键按下H勺邮箱1分

if(pmsg)

SendMessage(pmsg);〃_创立消息1分

voidMain_Task(void*Id)〃接受键盘消息的任务

{POSMSGpMsg=0;〃创立消息构造

for(;;)

{〃死循环

pMsg=WaitMessage(O);〃发送消息1分

switch(pMsg->Message){〃判断消息的I类型1分

caseOSM_KEY:〃键盘消息

LCD_printf(HTohavekeyon!\n");〃向液晶屏输出

break;

}

DeleteMessage(pMsg);〃删除消息1分

7、三个任务代码如下,其中taskl、task2、task3的优先级分别为:29、36,48。分析LCD

上的显示成果。

Voidtaskl()

{ClearScreen();

LCD_Printf(atasklisrunning!\nn);

OSTimeDly(500);

Voidtask2()

{ClearScreen();

LCD_Printf(athisistask2!\n>,);

0STimeDly(350);

)

Voidtask3()

{ClearScreen();

LCDPrintf(urunningtask3!\n");

0STimeDly(200);

)

在LCD上的显示成果为:

第一次:tasklisrunning!(1分)

第二次:thisistask2!(1分)

第三次:runningtask3!(1分)

第四次:runningtask3!(1分)

第五次:thisistask2!(1分)

第六次:tasklisrunning!(1分)

8、C语言程序

#includen..\ucos-ii\includes.h"/*uC/OSinterface*/

#includeU..\ucos-ii\add\osaddition.h"

#include"..VincXdrv.h1'

#include<string.h>

OS_STKMain_Stack[STACKSIZE*8J={0,};//l)定义并初始化堆栈(数组)

voidMain_Task(void*Id);

#defineMain_Task_Prio12//2)定义任务优先级

OS_EVENT*Nand_Rw_Sem;//3)定义信号量_______________

OS.EVENT*Uart_Rw_Sem;

intmain(void)

(

ARMTargetlnit。;〃开发板初始化

OSInit();//4)操作系统初始化

uHALr_ReselMMU();〃复位MMU

LCDJnitQ;〃初始化LCD模块

LCD_printf("LCDinitializationisOK\n");〃向液晶屏输出数据

LCD_printf(H320x240TextMode\nH);

inilOSGUI();〃初始化图形界面

LoadFont();〃调Unicode字库

LoadConfigSys();〃使用config.sys文献配置系统设置

LCD_printf(HCreatetaskonuCOS-IL..\nu);

OSTaskCreate(Main_Task,(void*)0,(OS_STK*)&Main_Stack[STACKSIZE*8-l],

Main_Task_Prio);//5)创立系统任务

OSAddTask」nit();〃创立系统附加任务

LCD_printf(MStartinguCOS-IL..\nn);

LCD_printf("Enteringgraphmode...\nn);

LCD_ChangeMode(DspGraMode);〃变LCD显示模式为文本模式

InitRtc();〃初始化系统时钟

Nand_Rw_Sem=OSSemCreate(I);//6)创立信号量,初值为1,满足互斥条件

OSStart();//7)操作系统任务调度开始

return0;

9、阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。

看门狗定期器控制寄存器(WTCON)

寄存地址读/写描述初始值

WTCON0x53000000读/写看门狗定控制寄存静0x8021

WTCON的标识位

WTCONBit描述初始值

PrescalerValue|15:8]预装比例值,有效范围值为。〜2550x80

ReservedP:6]保留00

使能和严禁看门狗定期器

WatchdogTimer[5]0=严禁看门狗定期器0

1=使能看门狗定期器

这两位决定期钟分频原因

ClockSelect[4:3]00:1/1601:1/3200

10:1/6411:1/128

Interrupt⑵中断H勺严禁和使能0

Generation0=严禁中断产生

1=使能中断产生

ReservedUI保留0

严禁很使能看门狗复位信号的输出

Reset

[0]1=看门狗复位信号使能1

Enable/Disable

0=看门狗复位信号严禁

看门狗定期器数据寄存器(WTDAT)

寄存器地址读/写描述初始值

WTDAT0x53000004读/写看门狗数据寄存器0x8000

看门狗计数寄存器(WTCNT)

寄存器地址读/写描述初始值

WTCNT0x53000008读/写看门狗计数器目前值0x8000

#definerWTCON(*(volatileunsigned*)0x53000000)//第1行

^definerWTDAT(*(volatileunsigned*)0x53000004)//第2行

4definerWTCNT(*(volatileunsigned*)0x53000008)//第3行

voidwatchdogtest(void)

rWTCON=((PCLK/1000000-1)«8)|(3«3)|(1«2);//第4行

rWTDAT=7812;//第5行

rWTCNT=7812;//第6行

rWTCON|=(1«5);//第7行

)

参照答案及要点:

第卜3行:定义看门狗控制寄存器、数据寄存器和计数寄存器为rWTCON、rWTDAT和rWTCNT。(2分)

第4行:设置看门狗的预装比例值为1000000,分频原由于1/128,并使能中断。(6分)

第5-6行:对数据寄存器和计数寄存器赋值为7812。(2分)

第7行:启动看门狗。(2分)

10、下面程序是多任务中信号量日勺经典应用,阅读程序,分别画出各个任务的程序流程图,

并阐明程序要实现的功能什么。

0S_EVENT*math_Sem;

intsource,dest;

mathSem=0SSemCreate(0);

voidtaskl()

(

for(;;){

source=8;

OSSemPost(math_Sem);

)

)

voidtask2()

{U8err;

for(;;){

OSSemPend(math_Sem,0,&err);

dest=source;

source=0;

答:功能:编写两个任务taskl和task2实现规定的功能。设task2为较高的优先级,taskl

中给一种全局变量source赋值;task2中读取这个变量时值到另一种全局变量dest中,然

后清零source变量。规定先赋值后读取。(3分)

流程图:(3分)

请求信号量

SOURCE=1ifcSOUCE^I

给DEST

发送信号量1

SOURCE清零

Taskl的流程图task2的流程图

六、应用实践题

1、运用串口1实现两个开发平台间的双机通信。规定1)画出双机通信的串口连接图。2)

要实现开发平台A发送某个数,开发平台B接受到后加1再回送给开发平台Ao应怎样设计

程序,给出编程思绪或画出程序流程图。

1)(2分)

RS-232RS-232

中行接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论