嵌入式助理工程师硬件试题(共25页)_第1页
嵌入式助理工程师硬件试题(共25页)_第2页
嵌入式助理工程师硬件试题(共25页)_第3页
嵌入式助理工程师硬件试题(共25页)_第4页
嵌入式助理工程师硬件试题(共25页)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上嵌入式硬件助理工程师认证考试试题题库一、 选择题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位数0x到2000H2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容为

2、( 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 )。A、0vB、3.3vC、5v15vD、5v15v7、 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。A. R0

3、= R2 + (R3 << 1)B. R0 =( R2<< 1) + R3C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 8、IRQ中断的入口地址是( C)。A、0xB、0xC、0xD、0x9、 S3C2420X I/O口常用的控制器是(D)。(1)端口控制寄存器(GPACON-GPHCON)。(2)端口数据寄存器(GPADAT-GPHDAT)。(3)外部中断控制寄存器(EXTINTN)。(4)以上都是。10、实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制

4、约性合作关系被成为(A)。A. 同步 B. 互斥 C. 调度 D. 执行11、和PC系统机相比嵌入式系统不具备以下哪个特点( C)。A、系统内核小B、专用性强C、可执行多任务D、系统精简12、ADDR0,R1,#3属于(A)寻址方式。A. 立即寻址B. 多寄存器寻址C. 寄存器直接寻址D. 相对寻址13、GET伪指令的含义是( A)A. 包含一个外部文件B. 定义程序的入口C. 定义一个宏D. 声明一个变量14、存储一个32位数0x到2000H2003H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为( C)。A、0x00B、0x87C、0x65D、0x6115、COS-II操作

5、系统不属于( C)。A、RTOSB、占先式实时操作系统C、非占先式实时操作系统D、嵌入式实时操作系统16、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDRR0,R1,8!后R0的值为(D )。A. 0x2000B. 0x86C. 0x2008D. 0x3917、寄存器R13除了可以做通用寄存器外,还可以做(C )。A、程序计数器B、链接寄存器C、栈指针寄存器 D、基址寄存器18、FIQ中断的入口地址是( A)。A、0xCB、0xC、0xD、0x19、ARM指令集和Thumb指令集分别是(D )位的。A. 8位,16位B. 16位,32位C. 16位,16

6、位D. 32位,16位20、ARM寄存器组有(D )个寄存器。A、7B、32C、6D、3721、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDRR0,R1,8!后R0的值为(D )。A. 0x2000B. 0x28C. 0x2008 D. 0x8722、寄存器R15除了可以做通用寄存器外,还可以做( A)A. 程序计数器B. 链接寄存器C. 堆栈指针寄存器D. 基址寄存器23、嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。A. 系统软件 B. 驱动 C. FPGA编程软件 D. 嵌入式中间件 24、COS-II操作系统属于(B)A、顺序

7、执行系统B、占先式实时操作系统C、非占先式实时操作系统D、分时操作系统25、ARM指令集是( B)位的。A. 16B. 32C. 8D. 2426、假设R1=0x31,R2=0x2 则执行指令ADDR0,R1,R2 LSL #3 后,R0的值是( C)A. 0x33B. 0x34C. 0x39D. 0x3827、寄存器R13除了可以做通用寄存器外,还可以做( C)A、程序计数器B、链接寄存器C、栈指针寄存器 D、基址寄存器28、ARM寄存器组有(C )个状态寄存器A、7B、32C、6D、3729、和PC机系统相比下列哪个不是嵌入式系统独具的特点(C)A、系统内核小B、专用性强C、可执行多任务

8、D、系统精简30、Unicode编码与(A)编码方式兼容。A、ASCII码 B、GBKC、GB2312D、区位码31、嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。A. 系统软件 B. 驱动 C. FPGA编程软件 D. 嵌入式中间件 32、 Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用(A)完成。A硬件 B. 软件 C. 用户 D. 程序员33、 在C/OS-II系统中,OSTimeTick()函数只被以下(A)函数或过程所调用。A. OSTickISR B. OSShed C. OSCtxSwD. OSIntCtxSw34、 每种嵌入

9、式操作系统都有自身的特点以吸引相关用户,下列说法错误的是(D)。A. 嵌入式Linux提供了完善的网络技术支持;B. mCLinux是专门为没有MMU的ARM芯片开发的;C. mC/OS-操作系统是一种实时操作系统(RTOS);D. WinCE提供完全开放的源代码。35、下列关于存储管理单元(MMU)说法错误的是(B)。A. MMU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中运行。B. 在带MMU的操作系统控制下,运行的任务必须知道其他与之无关的任务的存储需求情况,这就简化了各个任务的设计。C. MMU提供了一些资源以允许使用虚拟存储器。D. MMU作为转换器,将程

10、序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地址,即在物理主存中的地址。36、 下列CPSR寄存器标志位的作用说法错误的是(D)。A. N:负数 B. Z: 零 C. C: 进位 D. V: 借位37、 S3C2410X处理器为用户进行应用设计提供了支持多主总线的IIC接口。处理器提供符合IIC协议的设备连接的串行连接线为(C)。A. SCL和RTXB. RTX和RCXC. SCL和SDA D. SDA和RCX38、栈和队列的共同特点是 (C)。A. 都是先进先出B. B. 都是先进后出C. 只允许在端点处插入和删除元素 D. 没有共同点 39、 有如下程序main() i

11、nt x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf("a=%d,b=%dn",a,b); 该程序的输出结果是 (A)。A. a=2 ,b=1 B. a=1, b=1 C. a=1, b=0 D. a=2, b=2 40、 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 (D)。A. 函数调用可以作为独立的语句存在 B. 函数调用可以作为一个函数的实参 C. 函数调用可以出现在表达式中 D. 函数调用可以作为一个函数的形参41、 以下说法正确的是 (C)。A.

12、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 R2,R3,#128 的寻址方式是( C )。A. 寄存器寻址B. 寄存器移位C. 变址寻址 D. 间接寻址45、 S3C2410有( B )个USB接口。A. 1 B. 2C.3 D. 446

13、、 ARM处理器的工作模式有( C )种。A. 5 B.6C. 7 D.8二、 填空题:1、 串行通信方式有三中 单工 通信、 双工 通信和 半双工 通信。2、 填写C/OS-II中任务创建函数OSTaskCreate()的四个参数的含义:OSTaskCreate(MyTask,/(任务的函数指针)(void *)s,/(传给任务函数的参数)&TaskStartStkTASK_STK_SIZE - 1, /(任务的堆栈指针)0/(任务的优先级号));。3、 ARM7指令系统采用三级流水线指令,分别包括:取指、译码和执行。4、 TCP/IP在多个层引入了安全机制,其中TLS协议位于(传输

14、)层。5、 OSTaskSuspend (self)可把正在运行的任务挂起(或等待),参数self指任务自身的优先级。用此函数挂起的任务可通过 OSTaskResume(self)函数唤醒。6、 下列程序的输出结果是 (“Hello”) 。maim () char b="Hello you";b5=0; printf ("%sn",b); 7、 有数组定义int a22=1,2,3;则a01的值为( 0 )。8、 在ARM处理器的各种模式中,大多数应用程序运行在(用户)模式,当一个高优先级中断产生时会进入(快速中断)模式,在复位或软件软中断时进入(特权)

15、模式。9、 一个嵌入式系统结构有典型的四层组成,包括:硬件层、中间层、软件层 和功能层 。10、 一个FAT文件系统卷有四部分组成,包括:保留区、 FAT区 、 根目录 和 数据区 。11、 事件控制块ECB中OSEventType表示 事件类型 ,OSEventCnt表示 信号量计数器(和信号量的值) 。12、 串行通信方式有三中 单工 通信、 双工 通信和 半双工 通信。13、 OSTaskSuspend (self)可把正在运行的任务 挂起(或等待) ,参数self指 任务自身的优先级。用此函数挂起的任务可通过 OSTaskResume(self) 函数唤醒。14、 如果信号量是用于表示

16、打印机不忙,那么该信号量的初始值应设为 1 。15、 若一个优先级为48的任务就绪,则在就绪表中,OSRdyTbl的 OSRdyTbl6的D0 置位,变量OSRdyGrp的 D6 置位。16、 Socket接口是TCP/IP网络的_ API _,定义了许多函数或例程。常用的Socket类型有两种为_流式(stream)_Socket和_数据报式(datagram)_Socket。其中_流式(stream)_Socket是面向连接的,_数据报式(datagram)_Socket是面向无连接的。17、 调试程序时调入的文件最好为 Debug 版本下编译生成的.axf文件,该版本的文件包含部分调试用

17、到的信息。18、 S3C44B0X使用 ARM7(或ARM7TDMI)内核,工作频率为 66MHZ 。19、 在图形操作系统中,字符通常有两种存储方式:一种是图形点阵(或点阵) 方式;一种是 矢量图形(或矢量图) 方式。在嵌入式开发系统中使用的都是 图形点阵 方式。20、 和信号量用数值表示不同,邮箱可以使一个任务向令一个任务发送一个 指针 型21、 变量,该变量包含了特定消息的 数据结构 。22、 S3C44B0提供_两个_个独立的异步串口,都可以运行于_中断 _模式或_ DMA _模式 。23、 16、ARM处理器的两种工作状态为 ARM 状态和 Thmub 状态。24、 17、USB家庭

18、中有三位成员,即 主机(或host)、 设备(或device) 、集线器(或Hub) 。25、 ARM存储器有两种存储模式,即大端模式和小端模式。假设Y0x46134存储在2000H2003H四个内存单元中,若以小端模式存储,则(2000H)_0x34 _、(2001H) 0x61 _、(2002H)_0x04_、(2003H)_0x00_。26、 信号量有两种类型,分别为:二进制(或binary)型和记数器(或counter) 型。27、 影响流水线性能的因素有(互锁)和(跳转指令)。28、 某数码相机内置128MB的存储空间,拍摄分辨率设定为1600×1200像素,颜色为24为,

19、若不采用压缩技术,使用内部存储器最多可以存储(23)张照片,该相机最多支持(224)种色彩。29、 对于8位二进制数,7的反码和补码分别是()和()。30、 在CPU的状态寄存器中,如果符号标志为“1”,表示运算结果为(负);如果进位标识为“0”,表示(无进位或借位)。三、 判断题1、 程序运行过程中的资源可以是显示器、键盘,但不可以是一个数组或变量(X)2、 21、在COS-II操作系统中,已知Task1的优先级为12,Task2的优先级为26。假如在Task2运行过程中发生键盘中断,在执行中断服务程序时Task1进入就绪状态,则中断返回时Task1得到CPU的使用权。()3、 若定义任务t

20、ask1的优先级为12,则不能再定义其他任务的优先级也为12()4、 任务创建后即开始调度(X)5、 液晶工作在文本模式下时,既可以显示英文字符也可以显示汉字(X)6、 处于就绪状态的任务只能切换到运行状态(X)7、 等待消息函数WaitMessage(0)中的“0”表示此函数的超时等待时间为0秒(X)8、 若OSTaskSuspend (prio)函数把正在延时的任务挂起,则调用一次对应的唤醒函数即可使该任务切换到就绪状态。(X)9、 调试程序时,需要停止程序运行后才可查看变量内容()10、 COS-II操作系统中移植成功后即可使用文件系统(X)11、 将模拟信号转换成数字信号的电路是DA转

21、换器。(×)12、 IIC是同步串行数据总线,。()13、 S3C2410的处理器对内存的访问只能通过Load/Store指令来实现。()14、 Nand Flash比Nor Flash成本高,可靠性差。(×) 15、 C语言程序可以嵌套加入汇编程序模块。 ( )16、 运算放大器的输出电压范围一般大于电源电压的范围。( × )17、 由于CPU内部寄存器的访问速度较高,根据ATPC标准,应尽可能使函数的参数控制在4个以下。( )18、 ARM处理器结构体系中具有T变种处理器核可以工作在ARM状态和Thumb状态。( )四、 简答题 1、ARM微处理器的编程模型是

22、指ARM微处理器的基本工作原理和一些与程序设计相关的基本技术细节,ARM编程模型主要有哪五个方面?主要是指什么内容? 答案要点:ARM微处理器的工作状态:ARM状态、Thumb状态ARM体系结构的存储器格式:大端格式、小端格式ARM微处理器的工作模式:7种运行模式ARM体系结构的寄存器组织:37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。ARM微处理器的异常状态:7种异常2、 画图说明COS-II操作系统各状态之间是如何切换的,并举出至少一个相应的切换条件或函数。答:带箭头各任务间切换图正确,得1分; 切换条件每三

23、个得1分,共3分,每种切换能举出一个正确条件或函数即可。 3、什么是COS-II操作系统的时钟节拍?答:时钟节拍是特定的周期性中断。(1分)这个中断可以看作是系统心脏的脉动。中断间的时间间隔取决于不同的应用,一般在10ms200ms之间。(1分)时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。(1分)时钟节拍率越快,系统的额外开销就越大。(1分)4、ARM处理器有几种工作模式?并做说明每种工作模式的含义。答:ARM处理器有7种工作模式:用户模式(usr)- 正常程序执行的模式 0.5分快速中断模式(fiq)- FIQ异常响应时进入此模式0

24、.5分中断模式(irq)- IRQ异常响应时进入此模式0.5分管理员模式(svc)- 系统复位和软件中断响应时进入此模式0.5分中止模式(abt)- 用于虚拟存储及存储保护 0.5分系统模式(sys)- 与用户类似,但有直接切换到其它模式等特权0.5分未定义模式(und)- 未定义指令异常响应时进入此模式0.5分 除了用户模式外,其他模式均可视为特权模式0.5分5、什么是操作系统? 操作系统在“硬件、操作系统、应用程序、硬件驱动”四者中,处于哪两层之间?答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬件资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获

25、得良好的工作环境;操作系统为用户扩展新的系统提供软件平台。(3分)操作系统处于应用程序和硬件驱动之间。(1分)6、什么是嵌入式系统?分别从狭义和广义两方面说明。答:从广义上说,凡是与产品结合在一起具有嵌入式特点的控制系统都可以叫嵌入式系统如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片。(2分)从狭义上说,嵌入式系统是指而嵌入式系统一般指在开发时移植了操作系统,功能较复杂的便携式电子设备,如手机、掌上电脑、MP4等,常见CPU为ARM、DSP、SOC等。(2分) 7、简述任务切换的过程。答:当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内

26、容。(1分)这些内容保存在任务的当前状态保存区,也就是任务自己的堆栈中。(1分)入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的堆栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。(1分)做任务切换所需要的时间取决于CPU有多少寄存器要入栈。(1分)8、S3C44B0的存储系统中,0xc和0xc的含义是什么?它们之间的512kbyte空间做什么用?答:0xC是 SDRAM的起始地址,系统的程序存储空间从0xC开始。(2分)512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。(2分) 9、简述你对嵌入式和

27、嵌入式系统的理解?答:凡是使用了CPU的便携式电子设备都可以叫嵌入式,(如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片) (2分)。而嵌入式系统一般指在开发时移植了操作系统,功能较复杂的便携式电子设备,(如手机、掌上电脑、MP4等,常见CPU为ARM、DSP、SOC等)。(2分)10、嵌入式设计流程?答:1)系统需求分析2)体系结构设计3)硬件/软件协同设计4)系统集成5)系统测试 (每点约1分,酌情错2点,扣1分)11、什么是代码临界区,进、出代码临界应分别做什么?答:代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。(2分)为

28、确保代码临界区的执行,在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。(2分)12、 简要叙述嵌入式系统开发流程。参考答案及要点:建立开发环境;配置开发主机;建立引导装载程序BOOTLOADER;下载已经移植好的操作系统;建立根文件系统;开发应用程序。13、 试简述常用的三极管放大电路和技术特点。答:共射电路:具有较大的电压放大倍数和电流放大倍数,输入电阻和输出电阻适中。 共集电路:输入电阻大,输出电阻小,电压放大倍数小于1。 共基电路:输入电阻小,频率特性好。14、 嵌入式系统的软件层次结构包括哪些部分?简单说明各部分的功能与作

29、用。答:驱动层程序、操作系统、应用程序接口和应用程序。 驱动层程序:为上层软件提供设备的操作接口。 操作系统:进程管理、进程间通信、内存管理等。 应用程序接口:复杂函数和数据结构的集合,简化应用程序的开发。 应用程序:实现用户功能。五、 阅读程序题 1、根据以下程序回答问题。 struct NODE int 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(

30、"%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)程序运行后的输出结果13431。2、在分辨率为320x240的LCD上,执行完下列程序后,画出在LCD上显示的图形并在划横线处添加注释。void Main_Task(void *

31、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); /_LineTo(pdc, 80, 20);ArcTo(pdc, 50, 50, TRUE, 30);LineTo(pdc, -50, 50);ArcT

32、o(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.5分) 从坐标(50, -50)到(50, -50)画直线(0.5分) 从当前坐标开始以30为半径顺时针画圆弧到坐标(80, -20)(0.5分)3、在划线处添加代码,完成下面的程序,实现在task1中计算1到10的平均值,完成后向task2发送信号量。Task2无限期等待信号量,等到后在LCD上显示收

33、到平均值。_ 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(math_Sem);_;for(;) OSTimeDly(100);void task2()_ U8 err;_;for(;)_ OSSemPend(math_Sem,0,&err);_;LCD_printf("we get the average!n");_ OSTimeDl

34、y(100);_;4、在划横线处添加代码,完成下面创建一个任务的过程,要求优先级为36,任务栈大小为256。OS_STK task1_Stack 256=0, ; void task1 (void *Id); #define task1_Prio 36 OSInit() ; /操作系统初始化 OSTaskCreate (task1,(void *)0,(OS_STK *)&task1_Stack256-1,task1_Prio); OSStart() ;/操作系统任务调度开始5、ARM指令集的每一条指令都是4字节的,下面是一段中断入口程序,在空白处填上该中断的类型和中断向量。ENTRY

35、BStartup;复位中断,0x00 1分BUndefHandle;未定义指令中断,0x04 1分BSWIHandle;软中断,0x081分BPAbtHandle;预取中止,0x0C1分BDAbtHandle;数据中止,0x NOP;; 系统保存未用,0xBIRQHandle;IRQ中断,0x181分BFIQHandle;快速中断,0x1C1分6、下面的程序描述了键盘消息的创建和使用过程,认真阅读并在划横线的地方添加适当的注释。void Key_Scan_Task(void *Id)/按键扫描任务U32 key;INT8U err;POSMSG pmsg;for (;)OSMboxPend(K

36、ey_MailBox, 0, &err); /_请求键盘邮箱1分key=Zlg7289_ReadKey();pmsg=OSCreateMessage(NULL, OSM_KEY,KeyBoard_Mapkey,0);;/_请求到表示有键按下的邮箱 1分 if(pmsg)SendMessage(pmsg); /_创建消息1分 void Main_Task(void *Id) /接收键盘消息的任务POSMSG pMsg=0;/创建消息结构for(;)/死循环pMsg=WaitMessage(0); /_发送消息 1分switch(pMsg->Message) /_判断消息的类型 1分

37、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!n”);OSTimeDly(500);Void task2()ClearScreen();LCD_Printf(“this is task2!n”);OSTime

38、Dly(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 running!(1分)8、C语言程序#include".ucos-iiincludes.h" /* uC/OS interface */#in

39、clude ".ucos-iiaddosaddition.h"#include ".incdrv.h"#include <string.h>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 main(void)ARMTargetInit(); /

40、开发板初始化OSInit(); /4) 操作系统初始化 uHALr_ResetMMU();/复位MMULCD_Init(); /初始化LCD模块LCD_printf("LCD initialization is OKn");/向液晶屏输出数据LCD_printf("320 x 240 Text Moden");initOSGUI();/初始化图形界面LoadFont();/调Unicode字库LoadConfigSys();/使用config.sys文件配置系统设置LCD_printf("Create task on uCOS-II.n&quo

41、t;);OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&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=OSSemCr

42、eate(1); / 6) 创建信号量,初值为1 ,满足互斥条件 OSStart(); /7) 操作系统任务调度开始 return 0;9、 阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。看门狗定时器控制寄存器(WTCON)寄 存 器地 址读/写描 述初 始 值WTCON0x读/写看门狗定控制寄存器0x8021WTCON的标识位WTCONBit描 述初 始 值Prescaler Value15:8预装比例值,有效范围值为02550x80Reserved7:6保留00Watchdog Timer5使能和禁止看门狗定时器禁止看门狗定时器使能看门狗定时器0Clock Select4:3这两

43、位决定时钟分频因素00:1/16 01:1/3210:1/64 11:1/12800Interrupt Generation2中断的禁止和使能0=禁止中断产生1=使能中断产生0Reserved1保留0ResetEnable/Disable0禁止很使能看门狗复位信号的输出1=看门狗复位信号使能0=看门狗复位信号禁止1看门狗定时器数据寄存器(WTDAT)寄 存 器地 址读/写描 述初 始 值WTDAT0x读/写看门狗数据寄存器0x8000看门狗计数寄存器(WTCNT)寄 存 器地 址读/写描 述初 始 值WTCNT0x读/写看门狗计数器当前值0x8000#define rWTCON (*(vola

44、tile unsigned *)0x) / 第1行#define rWTDAT (*(volatile unsigned *)0x) / 第2行#define rWTCNT (*(volatile unsigned *)0x) / 第3行void watchdog_test(void)rWTCON = (PCLK/-1)<<8)|(3<<3)|(1<<2); / 第4行rWTDAT = 7812;/ 第5行rWTCNT = 7812; / 第6行rWTCON |=(1<<5); / 第7行参考答案及要点:第1-3 行:定义看门狗控制寄存器、数据寄

45、存器和计数寄存器为rWTCON、rWTDAT和rWTCNT。(2分)第4 行:设置看门狗的预装比例值为,分频因素为1/128,并使能中断。(6分)第5-6 行:对数据寄存器和计数寄存器赋值为7812。(2分)第7 行:启动看门狗。(2分)10、下面程序是多任务中信号量的典型应用,阅读程序,分别画出各个任务的程序流程图,并说明程序要实现的功能什么。OS_EVENT *math_Sem;int source,dest;math_Sem=OSSemCreate(0);void task1()for(;)source = 8;OSSemPost(math_Sem);void task2()U8 err

46、;for(;)OSSemPend(math_Sem,0,&err);dest = source;source =0;答:功能:编写两个任务task1和task2实现要求的功能。设task2为较高的优先级,task1中给一个全局变量source赋值;task2中读取这个变量的值到另一个全局变量dest中,然后清零source变量。要求先赋值后读取。(3分)流程图:(3分) Task1的流程图 task2 的流程图六、 应用实践题 1、利用串口1实现两个开发平台间的双机通信。要求1)画出双机通信的串口连接图。2)要实现开发平台A发送某个数,开发平台B接收到后加1再回送给开发平台A。应如何设

47、计程序,给出编程思路或画出程序流程图。1)(2分)2)编程思路:开发平台A编程思路:1)初始化串口1 2)给一个变量赋初值,并调发送函数通过串口1发送 3)调接受函数,通过串口1接收(3分)开发平台B编程思路:1)调接受函数,通过串口1接收 2)接收到得数据加1 3)调发送函数,发送加1后的数据(3分)2、编写程序,实现利用ARM芯片的I/O端口控制LED显示。控制如下硬件原理图中的四个发光二极管LED1、LED2、LED3、LED4,使它们有规律地点亮和熄灭,具体顺序如下:LED1亮LED2亮LED3亮LED4亮LED1灭LED2灭LED3灭LED4灭全亮全灭,如此反复。参考答案及要点:#i

48、nclude "2410lib.h"void led_on(void) int i,nOut; nOut=0xF0; rGPFDAT=nOut & 0x70; for(i=0;i<i+); rGPFDAT=nOut & 0x30; for(i=0;i<i+); rGPFDAT=nOut & 0x10; for(i=0;i<i+); rGPFDAT=nOut & 0x00; for(i=0;i<i+);void led_off(void) int i,nOut; nOut=0; rGPFDAT = 0; for(i=0;

49、i<i+); rGPFDAT = nOut | 0x80; for(i=0;i<i+); rGPFDAT |= nOut | 0x40; for(i=0;i<i+); rGPFDAT |= nOut | 0x20; for(i=0;i<i+); rGPFDAT |= nOut | 0x10; for(i=0;i<i+);void led_on_off(void) int i; rGPFDAT=0; for(i=0;i<i+); rGPFDAT=0xF0; for(i=0;i<i+);3、实现CAN总线通信需要哪两个芯片?画出S3C44B0利用CAN总线

50、进行通信的硬件连接示意图。要实现两个开发平台间通过CAN总线双机通信,应如何设计程序(给出软件设计思路或程序流程图)。答:1)MCP2510和TJA1050。(2分)2)(3分)3)能正确表示CAN总线的初始化和发送接收编程思路(3分)开发平台A编程思路:1)初始化MCP2510 2)启动can总线收发 3)通过can口发送一个字符开发平台B编程思路:1)初始化MCP2510 2)启动can总线收发 3)通过can口接收一个字符4、给出S3C44B0通过驱动器控制步进电机的硬件连接示意图;已知步进电机正转时的控制顺序为AABBBCCCDDDA,以列表的形式给出各I/O控制口的值。可以通过哪个宏来设置I/O控制口的值。答:1)2)高四位I/O控制口的值3)可以通过宏SETEXIOBITMASK(bit,mask)(EXIO.h)来设置扩展I/

温馨提示

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

评论

0/150

提交评论