嵌入式硬件助理工程师认证考试试题题库_第1页
嵌入式硬件助理工程师认证考试试题题库_第2页
嵌入式硬件助理工程师认证考试试题题库_第3页
嵌入式硬件助理工程师认证考试试题题库_第4页
嵌入式硬件助理工程师认证考试试题题库_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式硬件助理工程师认证考试试题题库9、S3C2420X I/O 口常用的控制器是( D)。选择题1、 以下说法不正确的是( B )。A、任务可以有类型说明 C任务可以有形参变量2、用图形点阵的方式显示一个A、8C、 163、B、任务可以返回一个数值D、任务是一个无限循环16*16 点阵汉字需要( B )字节。B、32D、 64列描述不属于 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 、执行关键代码、再 STIB. 先STI、执行关键代码、再CLIC. 先 POPF、 CLI 、执行关键代码、再 PUSHFD. 先 PUSHF 、 CLI 、执行关键代码、再 POPF。6、RS232-C串口通信中,表示逻辑 1的电平是(D )。A、0vB、 3.3vC、 5v 15vD

3、、 5v 15v7、ARM 汇编语句 “ADD R0,R2,R3,LSL#1”的作用是(A )。A. R0 = R2 + (R3 << 1)B. R0 =( R2<< 1) + R3C. R3= R0+ (R2 << 1)D. (R3 << 1)= R0+ R28、IRQ中断的入口地址是(A、0x00000000C、 0x00000018C)。B、0x00000008D、0x000000141)端口控制寄存器( GPACON-GPHCON )。或建立某8 !后 R02)端口数据寄存器( GPADA T-GPHDAT )。(3)外部中断控制寄存器(

4、 EXTINTN )。(4)以上都是。10、实时操作系统中, 两个任务并发执行,一个任务要等待其合作伙伴发来信息, 个条件后再向前执行,这种制约性合作关系被成为(A)。A. 同步 B. 互斥 C. 调度 D. 执行11、和PC系统机相比嵌入式系统不具备以下哪个特点( C)。A、系统内核小B、专用性强C可执行多任务D、系统精简12、ADD R0 R1,#3属于(A)寻址方式。A. 立即寻址B.多寄存器寻址C. 寄存器直接寻址D.相对寻址13、GET伪指令的含义是(A)A. 包含一个外部文件B.定义程序的入口C. 定义一个宏D. 声明一个变量14、存储一个32位数0x876165到2000H200

5、3H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为(C)。A、0x00B、0x87C、0x65D、0x6115、卩COS-II操作系统不属于(C)。ARTOSB、占先式实时操作系统C非占先式实时操作系统D、嵌入式实时操作系统16、若 R1=2000H, (2000H)=0x86 , (2008H)=0x39 ,则执行指令 LDR R0, R1 ,的值为( D )。A. 0x2000B. 0x86C. 0x2008D. 0x3917、寄存器R13除了可以做通用寄存器外,还可以做(C )。A、程序计数器B链接寄存器C栈指针寄存器D 、基址寄存器18、FIQ 中断的入口地址是( A)

6、。A、 0x0000001CB、 0x0000000819、ARM指令集和Thumb指令集分别是(D )位的。C、 0x00000018D、 0x00000014A. 8 位, 16 位B. 16 位, 32位C. 16 位, 16 位D. 32 位, 16 位20、ARM寄存器组有(D )个寄存器。A、 7B、 32C、 6D、 3721、若 R仁2000H (2000H)=0x28 , (2008H)=0x87,则执行指令 LDR R0, R1 , # 8 !后 R0 的值为( D )。A. 0x2000B. 0x28C. 0x2008D. 0x8722、寄存器 R 1 5除了可以做通用寄

7、存器外,还可以做(A)A. 程序计数器B. 链接寄存器C. 堆栈指针寄存器D. 基址寄存器23、嵌入式系统有硬件和软件部分构成,以下( C)不属于嵌入式系统软件。A. 系统软件B. 驱动C. FPGA 编程软件D. 嵌入式中间件24、卩COS-II操作系统属于(B)A、顺序执行系统B、占先式实时操作系统C非占先式实时操作系统D、分时操作系统25、ARM指令集是(B)位的。A. 16B. 32C. 8D. 2426、假设 R1=0x31, R2=0x2贝U执行指令 ADD R0,R1,R2 LSL #3 后,R0的值是(C)A. 0x33B. 0x34C. 0x39D. 0x3827、寄存器R1

8、3除了可以做通用寄存器外,还可以做( C)A、程序计数器B链接寄存器C栈指针寄存器D 、基址寄存器28、ARM寄存器组有(C )个状态寄存器A、 7B、 32C、 6D、 3729、和PC机系统相比下列哪个不是嵌入式系统独具的特点(C)A、系统内核小B专用性强C可执行多任务D 、系统精简30、Uni code编码与(A)编码方式兼容。A、 ASCII 码B 、 GBKC GB2312D区位码31、嵌入式系统有硬件和软件部分构成,以下( C)不属于嵌入式系统软件。A.系统软件B.驱动C. FPGA编程软件D.嵌入式中间件32、 Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地

9、址之间的转换用 (A)完成。A .硬件B.软件C.用户D.程序员33、在卩C/OSI系统中,OSTimeTick ()函数只被以下(A)函数或过程所调用。A. OSTickISR B. OSShed C. OSCtxSwD. OSI ntCtxSw34、每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的是(D )。A. 嵌入式Linux提供了完善的网络技术支持;B. CLinux是专门为没有 MMU的ARM芯片开发的;C. C/OS- H操作系统是一种实时操作系统(RTOS);D. WinCE提供完全开放的源代码。35、 下列关于存储管理单元(MMU )说法错误的是(B)。A. M

10、MU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间 中运行。B. 在带MMU的操作系统控制下,运行的任务必须知道其他与之无关的任务的存储需求情 况,这就简化了各个任务的设计。C. MMU提供了一些资源以允许使用虚拟存储器。D. MMU作为转换器,将程序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地址,即在物理主存中的地址。36、 下列CPSR寄存器标志位的作用说法错误的是(D)。A. N :负数 B. Z:零 C. C:进位 D. V:借位37、S3C2410X处理器为用户进行应用设计提供了支持多主总线的 IIC接口。处理器提供符合IIC协议的设备连接的串行连接

11、线为(C)。A. SCL 和 RTXB. RTX 和 RCXC. SCL 和 SDAD. SDA 和 RCX38、 栈和队列的共同特点是(C)。A.都是先进先出B.B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点39、有如下程序main ()int x=1,a=0,b=0;switch (x)case 1: a+;case 0: b+;case 2: a+;b+;printf ("a=%d,b=%d n",a,b)该程序的输出结果是(A )。A.a=2 ,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=240、若已定义的函数有返回值,则以下关于该函

12、数调用的叙述中错误的是(D )。A. 函数调用可以作为独立的语句存在B. 函数调用可以作为一个函数的实参C. 函数调用可以出现在表达式中D. 函数调用可以作为一个函数的形参41、以下说法正确的是(C)。A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用函数必须在main ()函数中定义C. C语言程序总是从 main ()函数开始执行D. C语言程序中的 main ()函数必须放在程序的开始部分42、寄存器R15用作( B )。A.栈指针寄存器B.程序计数器C.当前程序状态寄存器D.基地址寄存器43、IRQ中断的优先级别是(D )。A. 1B.2C. 3D.444、LDR

13、R2,R3,#128的寻址方式是( C)。A.寄存器寻址B.寄存器移位C.变址寻址D.间接寻址45、S3C2410 有(B)个 USB 接口。A. 1B. 2C.3D. 446、ARM处理器的工作模式有(C)种。A. 5B.6C. 7D.8、填空题:通信、双工通信和半双工通信。1、串行通信方式有二中单工2、填写卩C/OSI中任务创建函数OSTaskCreate()的四个参数的含义:OSTaskCreate(MyTask, / (任务的函数指针)(void *)s,II (传给任务函数的参数)&TaskStartStkTASK_STK_SIZE - 1, II(任务的堆栈指针)0II (

14、任务的优先级号);°3、ARM7旨令系统采用三级流水线指令,分别包括:取指、译码和执行。4、TCPIIP在多个层引入了安全机制,其中TLS协议位于(传输)层。5、 OSTaskSuspend (self) 可把正在运行的任务挂起(或等待),参数self指任务自身的优先级。用此函数挂起的任务可通过OSTaskResume(self)函数唤醒。6、 下列程序的输出结果是(“ Hello)。maim () char b ="Hello you"b :5 =0;printf ("%s、n",b) ; 7、有数组定义 int a22=1,2,3; 则 a

15、01的值为(_0_)°8、在ARM处理器的各种模式中,大多数应用程序运行在(用户)空式,当一个高优先级中断产生时会进入(快速中断)模式,在复位或软件软中断时进入(特权)模式。9、 一个嵌入式系统结构有典型的四层组成,包括:硬件层、中间层、软件层 和功能层 。10、 一个FAT文件系统卷有四部分组成,包括:保留 、FAT区、根目录 和 数 据区。11、 事件控制块ECB中OSEventType表示事件类型,OSEventCnt表示信号量计数器(和信号量的值) 。12、 串行通信方式有三中单工通信、双工通信禾口半双工通信。13、 OSTaskSuspend (self) 可把正在运行的任

16、务挂起(或等待),参数self 指 任务自身的优先级。用此函数挂起的任务可通过OSTaskResume(self) 函数唤醒。14、 如果信号量是用于表示打印机不忙,那么该信号量的初始值应设为_J。15、 若一个优先级为 48的任务就绪,则在就绪表中,OSRdyTbl的OSRdyTbl6的D0置 位,变量OSRdyGrp的 D6置位。16、 Socket接口是TCPIIP网络的 API,定义了许多函数或例程。常用的 Socket 类型有两种为 _流式(stream ) _Socket禾口 数据报式(datagram ) Socket。其中 流式(stream ) _Socket 是面向连接的,

17、数据报式(datagram ) Socket 是面向无连接的。17、 调试程序时调入的文件最好为Debug版本下编译生成的.axf文件,该版本的文件包含部分调试用到的信息。18、 S3C44B0X使用 ARM7(或 ARM7TDMI)内核,工作频率为66MHZ。19、 在图形操作系统中,字符通常有两种存储方式:一种是图形点阵(或点阵)方式;一种是矢量图形(或矢量图)方式。在嵌入式开发系统中使用的都是图形点阵 方式。20、 和信号量用数值表示不同,邮箱可以使一个任务向令一个任务发送一个指针型21、 变量,该变量包含了特定消息的数据结构。22、 S3C44B0提供两个个独立的异步串口,都可以运行于

18、中断模式或DMA _ 模式 。23、 16、ARM处理器的两种工作状态为ARM 状态和Thmub状态。24、 17、USB家庭中有三位成员,即主机(或 host)、 设备(或 device ) 、集线器(或Hub)。25、 ARM存储器有两种存储模式,即大端模式和小端模式。 假设Y= 0x46134存储在2000H2003H四个内存单元中, 若以小端模式存储,贝U ( 2000H) = _0x34_、(2001H) = 0x61_、( 2002H)= _0x04_、(2003H)= _0x00_。26、 信号量有两种类型,分别为:二进制(或bi nary )型和记数器(或 cou nter )

19、 型。27、 影响流水线性能的因素有(互锁)和(跳转指令)。28、 某数码相机内置128MB的存储空间,拍摄分辨率设定为1600 >1200像素,颜色为24为,若不采用压缩技术,使用内部存储器最多可以存储(.23)张照片,该相机最多支持()种色彩。29、 对于8位二进制数,7的反码和补码分别是(11111000)和(11111001)。30、在CPU的状态寄存器中,如果符号标志为 “ 1”表示运算结果为(负);如果进位标识为“ 0”表示(无进位或借位)。三、判断题1、 程序运行过程中的资源可以是显示器、键盘,但不可以是一个数组或变量(X)2、 21、在卩COS-II操作系统中,已知 Ta

20、sk1的优先级为12, Task2的优先级为26。假如 在Task2运行过程中发生键盘中断,在执行中断服务程序时Task1进入就绪状态,则中 断返回时Task1得到CPU的使用权。(V )3、 若定义任务task1的优先级为12,则不能再定义其他任务的优先级也为12 (V )4、任务创建后即开始调度(X)5、 液晶工作在文本模式下时,既可以显示英文字符也可以显示汉字(X)6、 处于就绪状态的任务只能切换到运行状态(X)则调用一次对应的唤醒函数即可7、等待消息函数 WaitMessage (0)中的“ 0”表示此函数的超时等待时间为0秒(X)8、若 OSTaskSuspend(prio) 函数把

21、正在延时的任务挂起,使该任务切换到就绪状态。 ( X)9、调试程序时,需要停止程序运行后才可查看变量内容(V)10、卩COS-II操作系统中移植成功后即可使用文件系统(X)11、 将模拟信号转换成数字信号的电路是DA转换器。(X)12、IIC是同步串行数据总线,。(V)13、 S3C2410的处理器对内存的访问只能通过Load/Store指令来实现。(V)14、Nand Flash 比 Nor Flash 成本高,可靠性差。 (X)15、C 语言程序可以嵌套加入汇编程序模块。( V )16、运算放大器的输出电压范围一般大于电源电压的范围。( X )17、由于CPU内部寄存器的访问速度较高,根据

22、ATPC标准,应尽可能使函数的参数控制在 4 个以下。(V )18、ARMi理器结构体系中具有 T变种处理器核可以工作在 ARM犬态和Thumb犬态。(V )四、简答题1、ARM 微处理器的编程模型是指 ARM 微处理器的基本工作原理和一些与程序设计相关 的基本技术细节, ARM 编程模型主要有哪五个方面?主要是指什么内容?答案要点 :ARM微处理器的工作状态: ARM犬态、Thumb状态ARM 体系结构的存储器格式:大端格式、小端格式ARM 微处理器的工作模式: 7 种运行模式ARM 体系结构的寄存器组织: 37个32位寄存器,其中 31 个为通用寄存器, 6个为犬态寄 存器,哪些寄存器是可

23、编程访问的,取决微处理器的工作犬态及具体的运行模式。ARM 微处理器的异常犬态: 7种异常2、画图说明卩COS-II操作系统各状态之间是如何切换的,并举出至少一个相应的切换条件或函数。答:OsTaskDel()OsSemPost() OsMboxPost() OsQPost() OsQPostFro nt() OsTaskResume() OsTimeDlyResume() OsTimeTick()OsSemPe nd() OsMboxPe nd() OsQPe nd() OsTaskSupe nd() OsTimeDly() OsTimeDlyHmsm()OsTaskCreat()OsTas

24、kCreatExt()OsStart() OsI ntExit() Os Task SOsTaskDel()OsTaskDel()带箭头各任务间切换图正确,得1分;r任务被占先运行LOsI ntExit()中断中断服务切换条件每三个得1分,共3分,每种切换能举出一个正确条件或函数即可。3、什么是卩COS-II操作系统的时钟节拍?答:时钟节拍是特定的周期性中断。(1分)这个中断可以看作是系统心脏的脉动。中断间的时间间隔取决于不同的应用,一般在10ms200ms之间。(1分)时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。(1分)时钟节拍率越

25、快,系统的额外开销就越大。(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、什么是操作系统?

26、操作系统在“硬件、操作系统、应用程序、硬件驱动”四者中,处 于哪两层之间?答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬件资源的分 配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作 环境;操作系统为用户扩展新的系统提供软件平台。(3 分)操作系统处于应用程序和硬件驱动之间。 (1 分)6、什么是嵌入式系统?分别从狭义和广义两方面说明。 答:从广义上说,凡是与产品结合在一起具有嵌入式特点的控制系统都可以叫嵌入式系统如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片。(2分)从狭义上说, 嵌入式系统是指而嵌入式系统一般指在开发时移植了

27、操作系统,功能较复杂的便携式电子设备,如手机、掌上电脑、MP4等,常见CPU为ARM DSP SOC等。(2分)7、简述任务切换的过程。答:当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。 ( 1 分)这些内容保存在任务的当前状态保存区,也就是任务自己的堆 栈中。( 1 分)入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的堆栈 中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。(1分) 做任务切换所需要的时间取决于CPU有多少寄存器要入栈。(1分)8、 S3C44B0的存储系统中,OxcOOOOOO和0xc0800

28、00的含义是什么?它们之间的512kbyte 空间做什么用?答:OxCOOOOOO是SDRAM的起始地址,系统的程序存储空间从0xC080000开始。(2分)512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。(2分)9、简述你对嵌入式和嵌入式系统的理解?答:凡是使用了 CPU的便携式电子设备都可以叫嵌入式,(如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片)(2分)。而嵌入式系统一般指在开发时移植了操作 系统,功能较复杂的便携式电子设备,(如手机、掌上电脑、 MP4等,常见CPU为ARMDSP SOC等)。( 2 分)10

29、、嵌入式设计流程?答: 1)系统需求分析2)体系结构设计3)硬件 / 软件协同设计4)系统集成5) 系统测试(每点约 1 分,酌情错 2 点,扣 1 分)11、什么是代码临界区,进、出代码临界应分别做什么?答:代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。 (2分)为确保代码临界区的执行, 在进入临界区之前要关中断, 而临界区代码执行完以后要立 即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。(2 分)12、简要叙述嵌入式系统开发流程。参考答案及要点:建立开发环境;配置开发主机;建立引导装载程序 BOOTLOADER ;下载已经移植

30、好的操作系统;建立根文件系统;开发应用程序。13、试简述常用的三极管放大电路和技术特点。 答:共射电路:具有较大的电压放大倍数和电流放大倍数,输入电阻和输出电阻适中。共集电路:输入电阻大,输出电阻小,电压放大倍数小于1。共基电路:输入电阻小,频率特性好。14、嵌入式系统的软件层次结构包括哪些部分?简单说明各部分的功能与作用。 答:驱动层程序、操作系统、应用程序接口和应用程序。驱动层程序:为上层软件提供设备的操作接口。 操作系统:进程管理、进程间通信、内存管理等。 应用程序接口:复杂函数和数据结构的集合,简化应用程序的开发。 应用程序:实现用户功能。五、阅读程序题1、根据以下程序回答问题。str

31、uct NODEint k;struct NODE *link;main() struct NODE m5,*p=m,*q=m+4;int i=0;while(p!=q)p->k=+i;p+;q->k=i+;q-;q->k=i;for(i=0;i<5;i+)printf("%d",mi.k);printf("n");(1) i、p、struct NODE和m的分别占据多少字节的内存空间? (4分)( 2) p 和 q 指针初始指向的地址相差多少字节?(4 分)(3)程序运行后的输出结果是什么? (4 分)参考答案及要点 :(1)

32、i、p、struct NODE和m的分别占据4字节、4字节、8字节和40字节的内存空间。(2) p和q指针初始指向的地址相差32字节(3) 程序运行后的输出结果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); /M

33、oveTo(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);OSTimeDly(3000);答:320x240 的 LCD以原点为圆心,50为半径画圆(0.5分画笔移动到坐标(50, 50)处 (0

34、.5分)从坐标(一50,-50)至U( 50,-50)画直线 (0.5分)从当前坐标开始以 30为半径顺时针画圆弧到坐标(80,-20 )(0.5 分)3、在划线处添加代码,完成下面的程序,实现在 taskl中计算1到10的平均值,完成后 向task2发送信号量。Task2无限期等待信号量,等到后在LCD上显示收到平均值。 OS EVENT *math Sem;Void Task1()int i ,average=0,sum=0;math Sem=OSSemCreate(0):for(i=1;i<=10;i+)sum=sum+i;average=sum/10;_ OSSemPost(ma

35、th_Sem); :for(;) OSTimeDly(100);void task2()_ U8 err;:for(;)! n");- OSSemPe nd(math_Sem ,0,& err);_:LCD_printf("we get the averageOSTimeDly(100);_ ;4、在划横线处添加代码,完成下面创建一个任务的过程,要求优先级为36,任务栈大小为256。OS_STK task1_Stack 256=0,;void task1 (void *ld);#defi ne task1_Prio 36OSI nit() ; /操作系统初始化OST

36、askCreate (task1,(void *)0,(OS_STK *)&task1_Stack256-1,task1_Prio);OSStart() ;/操作系统任务调度开始5、ARM指令集的每一条指令都是 4字节的,下面是一段中断入口程序,在空白处填上该中断的类型和中断向量。ENTRYBStartup;复位中断,0x001分BUn defHa ndle;未定义指令中断,0x041分BSWIHa ndle;软中断,0x081分BPAbtHa ndle;预取中止,0x0C1分BDAbtHa ndle;数据中止,0x00000010NOP;;系统保存未用,0x00000014BIRQH

37、a ndle;IRQ 中断,0x181分BFIQHa ndle;快速中断,0x1C1分6、下面的程序描述了键盘消息的创建和使用过程,认真阅读并在划横线的地方添加适当的 注释。void Key_Scan_Task(void *ld)/ 按键扫描任务 U32 key;INT8U err;POSMSG pmsg;for (;)OSMboxPe nd(Key_MailBox, 0, &err); /请求键盘邮箱 1 分 key=Zlg7289_ReadKey();pmsg=OSCreateMessage(NULL, OSM_KEY,KeyBoard_Mapkey,0);/ _请求到表示有键按下

38、的邮箱 1分if(pmsg)Sen dMessage(pmsg); /_创建消息1 分void Main_Task(void *Id)/接收键盘消息的任务 POSMSG pMsg=0;创建消息结构for(;)/死循环pMsg=WaitMessage(O); /发送消息 1 分switch(pMsg->Message) /判断消息的类型1 分case OSM_KEY:/ 键盘消息LCD_printf("To have key on !n"); 向液晶屏输出break;DeleteMessage(pMsg) ; /_ 删除消息 1 分7、三个任务代码如下,其中task1、

39、task2、task3的优先级分别为:29、36, 48。分析LCD上的显示结果。Void task1 ()ClearScree n();LCD_Printf(“task1 is running!n” );OSTimeDly(5OO);Void task2 ()ClearScree n(););LCD_Pri ntf(“ this is task2!nOSTimeDly(350);Void task3 () ClearScree n();LCD_Printf(“ running task3!n” );OSTimeDly(200);8、C语言程序#in clude".ucos-iiin

40、 cludes.h"#in clude ".ucos-iiaddosadditi on.h"#i nclude ".i ncdrv.h"#in clude <stri ng.h>OS_STK Main_StackSTACKSIZE*8=0, ; void Main_Task(void *Id);#defi ne Main_Task_Prio 12OS_EVENT *Na nd_Rw_Sem;OS_EVENT *Uart_Rw_Sem;int mai n(void)ARMTargetInit(); /开发板初始化OSI nit();u

41、HALr_ResetMMU(); 复位 MMULCD_Init();/初始化 LCD 模块LCD_printf("LCD initialization is OKn");LCD_pri ntf("320 x 240Text Moden");initOSGUI();初始化图形界面/* uC/OS in terface */1) 定义并初始化堆栈(数组)/ 2) 定义任务优先级3)定义信号量4)操作系统初始化向液晶屏输出数据在LCD上的显示结果为:第一次:taskl is running!(1分)第二次:this is task2!(1分)第三次:runni

42、ng task3!(1分)第四次:running task3!(1分)第五次:this is task2!(1分)第六次:taskl is running!(1分)LoadFont(); 调 Unicode 字库LoadConfigSys();使用config.sys文件配置系统设置LCD_printf("Create task on uCOS-ll.n");OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_StackSTACKSIZE*8-1,Main_Task_Prio);5) 创建系统任务OSAddTask_

43、Init();创建系统附加任务LCD_pri ntf("Starti ng uCOS-II.n");LCD_pri ntf("E nteri ng graph mode.n");LCD_ChangeMode(DspGraMode);/ 变 LCD 显示模式为文本模式InitRtc();/初始化系统时钟Nand_Rw_Sem=OSSemCreate(1); / 6) 创建信号量,初值为1 ,满足互斥条件 OSStart();7)操作系统任务调度开始return 0;9、阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。 看门狗定时器控制寄存器(WTC

44、ON)寄存 器地址读/写描述初始值WTCON0x53000000读/写看门狗定控制寄存器0x8021WTCON的标识位WTCONBit描述初始值Prescaler Value15:8预装比例值,有效范围值为02550x80Reserved7:6保留00Watchdog Timer5使能和禁止看门狗定时器0=禁止看门狗定时器1=使能看门狗定时器0Clock Select4:3这两位决定时钟分频因素00:1/1601:1/3210:1/6411:1/12800Interrupt Generation2中断的禁止和使能0=禁止中断产生 仁使能中断产生0Reserved1保留0ResetEnable/

45、Disable0禁止很使能看门狗复位信号的输出 仁看门狗复位信号使能0=看门狗复位信号禁止1看门狗定时器数据寄存器( WTDAT)寄存器地址读/写描述初始值WTDAT0x53000004读/写看门狗数据寄存器0x8000看门狗计数寄存器(WTCNT)寄存器地址读/写描述初始值WTCNT0x53000008读/写看门狗计数器当前值0x8000#define rWTDAT (*( volatileunsigned *)0x53000004) / 第 2行#define rWTCNT (*( volatileunsigned *)0x53000008) / 第 3行void watchdog_tes

46、t( void )rWTCON = (PCLK/1000000-1)<<8)|(3<<3)|(1<<2);/第4行rWTDAT = 7812;/第 5 行rWTCNT = 7812;/第6行rWTCON |=(1<<5);/第 7行参考答案及要点:第1-3行:定义看门狗控制寄存器、数据寄存器和计数寄存器为rWTCON rWTDAT和rWTCNT( 2 分)第 4 行:设置看门狗的预装比例值为1000000,分频因素为 1/128,并使能中断。 ( 6 分)第5-6 行:对数据寄存器和计数寄存器赋值为7812。(2分)第7 行:启动看门狗。( 2分

47、)10、下面程序是多任务中信号量的典型应用,阅读程序,分别画出各个任务的程序流程图, 并说明程序要实现的功能什么。OS_EVENT *math_Sem;int source , dest;math_Sem=OSSemCreate(0);void task1()for(;)source = 8;OSSemPost(math_Sem);void task2() U8 err;for(;)OSSemPend(math_Sem,0,&err);dest = source;source =0;答:功能:编写两个任务taskl和task2实现要求的功能。 设task2为较高的优先级,taskl 中

48、给一个全局变量 source赋值;task2中读取这个变量的值到另一个全局变量dest中,然后清零source变量。要求先赋值后读取。 (3分)流程图:(3分)的流程图FSOURCE=1F发送信号量Taskl的流程图task2六、应用实践题1、利用串口 1实现两个开发平台间的双机通信。要求 1)画出双机通信的串口连接图。 2) 要实现开发平台 A发送某个数,开发平台B接收到后加1再回送给开发平台 A。应如何设计 程序,给出编程思路或画出程序流程图。1)( 2 分)RS-232RS-232串行接口串行接口2)编程思路:开发平台A编程思路:1)初始化串口 12)给一个变量赋初值,并调发送函数通过串

49、口 1发送 3)调接受函数,通过串口 1接收(3分)开发平台B编程思路:1)调接受函数,通过串口 1接收 2)接收到得数据加13)调发送函数,发送加 1后的数据(3分)2、编写程序,实现利用 ARM芯片的I/O端口控制LED显示。控制如下硬件原理图中的四个发光二极管LED1、LED2、LED3、LED4,使它们有规律地点亮和熄灭,具体顺序如下:LED1亮tLED2亮宀LED3亮 宀LED4亮宀LED1灭宀LED2灭tLED3灭tLED4灭t全亮t全灭,如此反复。R1217参考答案及要点:#i nclude "2410lib.h" void led_ on( void) in

50、t i,n Out; nO ut=0xF0;rGPFDAT=nOut & 0x70; for(i=0;i<100000;i+);rGPFDAT=nOut & 0x30;for(i=0;i<100000;i+);rGPFDAT=nOut & 0x10;for(i=0;i<100000;i+);rGPFDAT=nOut & 0x00;for(i=0;i<100000;i+);void led_off(void)int i,n Out;nO ut=0;rGPFDAT = 0;for(i=0;i<100000;i+);rGPFDAT = n

51、 Out | 0x80;for(i=0;i<100000;i+); rGPFDAT |= nO ut | 0x40;for(i=0;i<100000;i+); rGPFDAT |= nO ut | 0x20;for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x10;for(i=0;i<100000;i+);void led_ on_o ff(void)int i; rGPFDAT=O; for(i=0;i<100000;i+); rGPFDAT=OxFO; for(i=0;i<100000;i+);3、实现CAN总线通信需要哪

52、两个芯片?画出S3C44B0利用CAN总线进行通信的硬件连接示意图。要实现两个开发平台间通过CAN总线双机通信,应如何设计程序(给出软件设计思路或程序流程图)。答:1)MCP2510和 TJA1050。( 2 分)2)( 3分)CANHCANL3)能正确表示CAN总线的初始化和发送接收编程思路(3分)开发平台A编程思路:1)初始化 MCP2510 2)启动can总线收发3)通过can 口发送一个字符开发平台B编程思路:1)初始化 MCP2510 2)启动can总线收发3)通过can 口接收一个字符4、给出S3C44B01过驱动器控制步进电机的硬件连接示意图;已知步进电机正转时的控制顺序为AtA

53、4BSSCCHDDa以列表的形式给出各 I/O控制口的值。可以通过 哪个宏来设置I/O控制口的值。答:1)2)高四位I/O控制口的值片六进制二进制通电状态1H0001A3H0011AB2H0010B6H0110BC1H0100CCH1100CD8H1000D9H1001DA3)可以通过宏 SETEXIOBITMASK(bit,mask) (EXIO.h)来设置扩展 I/O 口。5、TCP/IP协议可以分为哪几层?画出S3C44B0进行网络通信的硬件框图;要实现基于UDP的网络通信,应如何设计程序,给出编程思路或程序流程图。1)分为:物理层数据链路层(IEEE802.3 Ethernet MAC )网络层(IP、ARR ICMR IGMF)传输层 (TCR UDR应用层(BSD Sockets)2)3)

温馨提示

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

评论

0/150

提交评论