南工大ARM嵌入式系统参考复习题12745.pdf

上传人:得****3 文档编号:83937487 上传时间:2023-03-31 格式:PDF 页数:24 大小:1.23MB
返回 下载 相关 举报
南工大ARM嵌入式系统参考复习题12745.pdf_第1页
第1页 / 共24页
南工大ARM嵌入式系统参考复习题12745.pdf_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《南工大ARM嵌入式系统参考复习题12745.pdf》由会员分享,可在线阅读,更多相关《南工大ARM嵌入式系统参考复习题12745.pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品文档.ARM 嵌入式系统设计参考复习题(2017-11)主要知识点:第一章 1.嵌入式系统:“以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”根据应用的要求,沿着“体积小、低功耗、高可靠”方向发展,对运算速度、存储容量没有统一要求。三要素:嵌入、专用、计算机。2.嵌入式系统有哪些部分组成?一般由硬件层,中间层(HAL 或 BSP)和软件层组成。粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件 稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件 3.嵌入式系统特

2、点:系统内核小专用性强系统精简高实时性。4.嵌入式处理器的分类:嵌入式微处理器(MPU):就是和通用计算机的处理器对应的 CPU,可以认为是“增强型”通用微处理器。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成 ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D 等各种必要功能和外设。嵌入式 DSP 处理器(DSP):是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系

3、统芯片内部。第二章 1.ARM:是 Advance RISC Machine 的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。2.在 ARM9TDMI 中“9TDMI”的含义:9:采用版本为 9 的 ARM 微处理器 T:支持16 为压缩指令集 Thumb,D:支持片上 Debug,称为 D 变种 M:内嵌硬件乘法器 Multiplier,称为 M 变种 I:嵌入式 ICE,支持片上断点和调试,称为 I 变种。3.ARM Cortex-A8 处理器的三种工作状态:ARM 状态,处理器执行 32 位的字对齐的 ARM 指令;Thumb 状态:处理

4、器执行 16 位的半字对齐的 Thumb 指令和ThumbEE 状态:执行 16 位的半字对齐的 Thumb 指令集变种。8 种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)和监控模式(mon)。特权模式:除 usr 之外的其它的 7 种工作模式都是特权模式。异常模式:除 usr 和 sys 之外的其它的 6 种工作模式都是持权模式。4.ARM A8 寄存器分成哪几类?各类有哪些寄存器?寄存器 LR 有什么用途?分两类:33 个通用寄存器和 7 个状态寄存器。33 个通用寄存器:R0

5、R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。7 个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq 和 SPSR_mon。LR(R14):也称作子程序链接寄存器或链接寄存器 LR,当执行 BL 子程序调用指令时,R14 中得到 R15(程序计数器 PC)的备份。其他情况下,R14 用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器 R14_svc、R14_irq、R1

6、4_fiq、R14_abt、R14_und 和 R14_mon 用来保存 R15 的返回值。5.CPSR 各位是意义:N:正负号/大小 标志位 0 表示:正数/大于;1 表示:负数/小于 Z:零标志位 0 表示:结果不为零;1 表示:结果为零 C:进位/借位/移出位 0 表示:未进位/借位/移出 0;1 表示:进位/未借位/移出 1 V:溢出标志位 0 表示:结果未溢出;1 表精品文档.示:结果溢出 I、I 和 F:irq 和 fiq 中断允许和禁止控制位,1 禁止 irq 或 fiq 中断 0 允许 irq 或 fiq 中断。T:控制(标志)位反映处理器的运行状态 T=1 时,程序运行于 T

7、humb 状态,T=0 时,程序运行于 ARM 状态。TM:控制位决定了处理器的运行模式 模式 TM4:0 用户 10000 快中断 10001 中断 10010 管理 10011 中止 10111 未定义 11011 系统 11111 监控 10110 6.ARM 异常响应过程(进入异常)执行哪些操作。保存返回地址、保存当前状态寄存器 CPSR 的内容、设置当前状态寄存器 CPSR 中的相应位、转去执行中断处理程序。第三章 1.ARM 指令中的第二操作数“operand2”有哪些具体形式:三种:寄存器、寄存器移位、8 位位图立即数。2.对于 ARM 的变址寻址方式,有基地址和偏倚地址两部分组

8、成。(1)基地址可以是哪些寄存器?(2)偏移地址可以有哪些形式?(3)总地址的计算方法有哪些?怎么表示?(4)变址寻址应用于哪些指令?(1)基地址可以是通用寄存器 R0-R15 中的任意一个。(2)偏移地址可以有三种形式:12 位立即数、寄存器、寄存器移位。(3)总地址的计算方法有三种:前变址(前索引):先基址+偏址,生成操作数地址,做指令指定的操作。如:LDR Rd,Rn,#m 后变址模式(修改基址寄存器):基址寄存器不加偏移作为操作数地址。完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDR Rd,Rn,#m 自动变址模式(修改基址寄存器):先基址+偏移,生成操作数地址,做指令指

9、定的操作。然后自动修改基址寄存器。如:LDR Rd,Rn,#m!(4)有 4 条指令:LDR、STR、LDM、STM 3ARM 有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、变址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址 4.ARM 伪指令:ADR:小范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空操作伪指令。5.ARM 指令集分为哪几种类型?各类有哪些指令(可以不考虑协处理器指令)。五类:存器访问指令、数据处理指令、跳转指令、协处理器指令、杂项指令。存储器访问指令:单存储器存取指令,多存储器存取指令。数据处理指令:算术运算指令,

10、逻辑运算指令,数据传送指令,比较指令,测试指令。跳转指令:B 跳转指令 BL 带链接的跳转指令 BX 带状态切换的跳转指令 BLX 带链接和状态切换的跳转指令。杂项指令:程序状态寄存器操作指令,中断操作指令。6.ARM 有哪些条件码?各个条件码的符号及意义。(比较常用的应该会)。条件码 0000 0001 0010 0011 0100 0101 0110 0111 助记符 EQ NE CS/HS CC/LO MI PL VS VC 含 义 相等 不相等 无符号数大于或等于 无符号数小于 负数 非负数 溢出 没有溢出 标 志 Z=1 Z=0 C=1 C=0 N=1 N=0 V=1 V=0 精品文

11、档.1000 HI 无符号数大于 C=1 且 Z=0 1001 LS 无符号数小于或等于 C=0 或 Z=1 1010 GE 有符号数大于或等于 N=V 1011 LT 有符号数小于 N!=V 1100 GT 有符号数大于 Z=0 且 N=V 1101 LE 有符号数小于或等于 Z=1 或 N!=V 1110 AL 无条件执行 arm 采用 32 位架构,基本数据类型 4 种,填空 Byte 8 位 字节 HalfWord 16 半字 2 字节对齐 Word 32 字 4 DoubleWord 64 双字 8 内核工作模式,cortex a8,(课本 8 种)8 种 usr fiq irq s

12、vc 特权模式 abt 数据访问中止模式 und 未定义指令中止模式 sys mon 监控模式,可在安全模式和非安全模式切换 精品文档.8 个模式中,除用户模式 usr,其他 7 个全部特权模式 7 个特权模式中,除了系统模式,剩下 6 个都属于异常模式 异常模式:快速中断请求模式(FIQ)用于高速数据传输 外部中断请求模式(IRQ)用于通常的中断处理 特权模式(SVC)数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护 未定义指令中止模式(und)用于支持硬件协处理器的软件仿真 监控模式(mon)Arm 微处理器工作模式,分别为:1 用户模式(Usr)用于正

13、常执行程序 2 快速中断模式(FIQ)用于高速数据传输 3 外部中断模式(IRQ)用于通常的中断处理 4 特权管理模式(SVC)操作系统使用的保护模式(高权限),复位和软件中断进入 5 数据访问中止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护 6 系统模式(sys)运行拥有特权的操作系统任务 7 未定义指令终止模式(und)用于支持硬件协处理器的软件仿真(浮点、微量运算)8 监控模式(mon),可在安全模式和非安全模式切换 异常模式优先级如下:1(最高)SVC 复位 2 abt 数据中止 3 FIQ(快速中断请求)4 IRQ(外部中断请求)5 abt 预取指令中止

14、6(最低)und 未定义指令,SWI 软件中断 精品文档.arm7 为止使用流水线 3 级 取指令,从寄存器装载一条指令 译码 为下一周期准备控制信号 执行 处理指令,结果写会寄存器 arm9,五级流水线 3 级+缓冲/数据 回写 arm10 6 级流水线 寄存器 R13 用作数据栈指针,记作 SP。寄存器 R14 称为链接寄存器,记作 LR,它用于保存子程序的返回地址。寄存器 R15 是程序计数器,记作 PC,不能用作其它用途。CPSR 当前程序状态寄存器 理解 CPSR 格式,里面标志位含义等等 跳转指令,bl 跳转 32mb 范围,跳转 pc,如 ldrb pc,.可以 4GB 范围 A

15、APCS 标准 子程序调用,用 R0-R3 存储参数,R0 存返回值 I2C 总线,通过串行数据线(SDA)和串行时钟线(SCL)在连接到总线的器件间传递信息。传输时包含寻址和数据信息,每个字节 8 位,每个字节后必须跟一个响应位。A_D 转换结束的表达式是 !(TSAADCCON0&(115)获取 AD 转换结果的表达式是(TSDATX0&0 xfff)LCD 16M 色的像素颜色的数据格式是怎样的 4 个字节,前 3 个字节分别为红,绿,蓝三原色的色号。64K 色的数据则用 16 位表示一个像素的颜色,三原色配比是 5/6/5。android 操作系统的源码结构分为 3 个部分:核心工程(

16、Core Project),扩展工程(External Project),包(Package),应用程序(Application)在 package/apps 目录中。二、简答题:1、Cortex-A8 是 ARMv7-A 架构的,共有哪几种工作模式,其中哪几种属于异常模式?usr 用户模式 fiq 快速中断模式 irq 外部中断模式 svc 特权模式 abt 数据访问中止 und 未定义指令中止模式 精品文档.sys 系统模式 mon 监控模式,安全模式切换 8 种工作模式,除用户模式,都是特权模式 特权模式里面,除系统模式,其他都是异常模式。即异常模式 6 种:Fiq 快速中断异常模式 I

17、rq 外部中断请求模式 svc 特权模式 abt 数据访问中止模式 und 未定义指令中止模式 mon 监控模式 2.寄存器 CPSR,SPSR 的功能各是什么?CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。中断时,保存当前程序状态,处理器模式等等。每一种处理器模式下都有一个专用的物理状态寄存器,称为 SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用 SPSR 来恢复 CPSR CPSR 格式 CPSR 格式如下所示。SPSR 和

18、CPSR 格式相同。31 30 29 28 27 26 7 6 5 4 3 2 1 0 N Z C V Q IT1:0J I F T M4 M3 M2 M1 M0*条件标志位*Nn=1 表示运算结果为负数,n=0 表示结果为正数或零。zz=1 表示运算的结果为零;z=0 表示运算的结果不为零。C进位,借位标志 VV=1 表示符号位溢出 JThumbEE 状态位 M4-0 模式位 3、简述 S5PV210 外部中断处理和响应的流程。中断发生后,处理:精品文档.通过堆栈和 spsr 寄存器,入栈保存现场,设置 cpsr 模式位,处理器模式变成外部中断模式。外部中断中断发生后,VIC0IRQSTAT

19、US 相应位置改变,中断向量地址VIC0ADDRESS相应位改变,pc 跳到向量表的特定地址,从该地址开始执行,跳转调用我们写的中断处理函数,执行中断处理程序。/*4.使能向量地址通道 16 中断*/rVIC0INTENABLE|=(116);/*5.向量地址通道 16 选择为 IRQ 中断*/rVIC0INTSELECT|=(116);/0 为 fiq 模式,1 irq /*5.安 装 中 断 服 务 函 数 到 VIC0VECTADDR16,强 制 转 换 提 取EINT16_31_IRQHandler 函数地址*/rVIC0VECTADDR16=(unsigned int)EINT16_

20、31_IRQHandler;void EINT16_31_IRQHandler(void)。三、编程应用题:(阅读分析,加注释、填空与编程)1.将存储器中 0 x400000 开始的 200 字节的数据,传送到 0 x400800 开始的区域。解:MOV R0,#0 x400000 LDR R1,=0 x400800 MOV R7,#200 LP:LDRB R2,R0,#1 STRB R2,R1,#1 SUBS R7,R7,#1 BNE LP HERE:B HERE 2.编写一程序,查找存储器从 0 x400000 开始的 100 个字中为 0 的数目,将其结果存到 0 x400190 中。解

21、:MOV R0,#0 x400000 MOV R1,#0 MOV R7,#100 LP:LDR R2,R0,#4 CMP R2,#0 BNE NEXT ADD R1,R1,#1 NEXT:SUBS R7,R7,#1 BNE LP STR R1,R0 HERE:B HERE 精品文档.3.编写一简单 ARM 汇编程序段,实现 1+2+100 的运算。MOV R2,#100 MOV R1,#0 LOOP ADD R1,R1,R2;R1 中为累加和 SUBS R2,R2,#1;R2 控制循环 BNE LOOP 5.用 ARM 汇编语言和 C 语言写一个初始值为 0 x6000000 的延时函数。汇编

22、的为:delay:ldr r0,=0 x6000000 temp:sub r0,r0,#1 cmp r0,#0 bne temp bx lr 上面程序参考 c 语言的写法 void delay()volatile int i,j;for(i=0;i0 x6000000;i+);6.请对如下程序解释 按 k2 按键,松手,led 闪烁#include stdio.h#include s5pv210.h#define rGPJ2CON *(volatile unsigned long*)0 xe0200280)#define rGPJ2DAT *(volatile unsigned long*)0

23、 xe0200284)void key_init()精品文档.rGPH2CON&=(0 xf0);/全部清 0,设置输入模式,然后按键被按值变成 0 void led_init()rGPJ2CON&=(0 xf0);rGPJ2CON|=(0 x10);rGPJ2DAT|=(0 x10);void delay()int i,j;for(i=0;i100;i+)for(j=0;j100;j+);int keyled(void)printf(按键灯测试n);key_init();led_init();while(1)if(rGPH2DAT&(0 x10)=0)/如果按键 2 按下,按键值 0,/pr

24、intf(key2 put down!n);delay();if(rGPH2DAT&(0 x10)=0)/重新判断消抖动影响 /printf(key really put down!n);while(!(rGPH2DAT&(0 x10);/松手检测 rGPJ2DAT&=(0 x10);/亮 delay();rGPJ2DAT|=(0 x10);/led 暗 return 0;ARM 部分实验程序(仅供参考):精品文档.ARM 开发平台使用入门.equ num,2.section.text.global _start _start:Reset_Handler:mov r0,#0 ;/*set up

25、 the three parameters*/mov r1,#3 mov r2,#2 bl arithfunc ;/*call the function*/stop:b stop ;#*;#*According R0 valude to execute the code *;#*arithfunc:;/*label the function*/cmp r0,#num ;/*Treat function code as unsigned integer*/bhs DoAdd ;/*If code is=2 then do operation 0.*/adr r3,JumpTable ;/*Loa

26、d address of jump table*/ldr pc,r3,r0,LSL#2 ;/*Jump to the appropriate routine*/JumpTable:.word DoAdd .word DoSub DoAdd:add r0,r1,r2 ;/*Operation 0,1*/bx lr ;/*Return*/精品文档.DoSub:sub r0,r1,r2 ;/*Operation 1*/bx lr GPIO LED 接口控制实验(LED 显示灯控制)控制实验平台的发光二极管 LED1,LED2,LED3,LED4,使它们有规律的点亮和熄灭,具体顺序如下:LED1 亮-

27、LED2 亮-LED3 亮-LED4 亮-LED1 灭-LED2 灭-LED3 灭-LED4 灭-全亮-全灭,如此反复。/*name:*func:led_on turn on the leds one by one*/void led_on(void)int i,nOut;nOut=0 xF0;rGPFDAT=nOut&0 x70;for(i=0;i100000;i+);rGPFDAT=nOut&0 x30;for(i=0;i100000;i+);rGPFDAT=nOut&0 x10;for(i=0;i100000;i+);rGPFDAT=nOut&0 x00;for(i=0;i100000;

28、i+);/*name:*func:led_off turn off the leds one by one */void led_off(void)int i,nOut;nOut=0;rGPFDAT=0;for(i=0;i100000;i+);rGPFDAT=nOut|0 x80;for(i=0;i100000;i+);rGPFDAT|=nOut|0 x40;for(i=0;i100000;i+);rGPFDAT|=nOut|0 x20;for(i=0;i100000;i+);rGPFDAT|=nOut|0 x10;for(i=0;i100000;i+);/*name:*func:led_on

29、_off turn on the 4 leds and then turn off the 4 leds*/void led_on_off(void)int i;rGPFDAT=0;for(i=0;i100000;i+);rGPFDAT=0 xF0;for(i=0;i100000;i+);精品文档./*name:*func:led_test i/o control test(led)*/void led_test(void)rGPFCON=0 x11110000;2/PORTF7/6/5/4 OUTPUT uart_printf(n I/O(Diode Led)Test Examplen);l

30、ed_on();led_off();led_on_off();delay(1000);uart_printf(end.n);LED 数码管综合实验#include s5pc210.h#include uart.h#define U8 unsigned char unsigned char seg7table16=/*0 1 2 3 4 5 6 7*/0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,/*8 9 A B C D E F*/0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,;/*/Funct

31、ion name:delay/Description :延时子程序/Return type :void/Argument :count,延时的数值*/void delay(int count)int cnt;for(count=count;count0;count-)for(cnt=0;cnt 1000;cnt+);精品文档.void Gpio_init()GPH2.GPH2CON=0 x11111111;GPH2.GPH2DAT=0 xff;GPH3.GPH3CON=0 xff;GPH3.GPH3DAT=GPH3.GPH3DAT|0 x3;int main()int temp,i,j,lp,

32、flag=0;int segN=0;int sg5;uart_init();printf(CVT S5PV210 Jtag KeyPad Test.n);Gpio_init();flag=1;while(flag!=0)&(lp6)for(j=0;jlp;j+)*(U8*)0 x88007000)=(0 x01j);*(U8*)0 x88009000)=seg7tablesgj;delay(30);for(i=0;i8;i+)/*GPH2.07 引脚输出高电平,那么 GPH3.01 将始终是高电平,依次将 GPH2.07 设置成低电 平,那么,当按键按下时,该键对应 GPH3.01 的引脚将会

33、变成低电平,由此判断按键*/精品文档.GPH2.GPH2DAT=0 xff;/GPH2.07 引脚输出高电平 GPH2.GPH2DAT&=(0 x1i);/GPH2.07 设置成低电平 delay(10);temp=GPH3.GPH3DAT&0 x3;delay(10);/GPH3.01 的引脚将会变成低电平,由此判断按键 if(temp!=0 x3)switch(i)case 0:if(temp=0 x1)printf(VOL+Pressn);segN=9;sglp=segN;break;case 1:if(temp=0 x1)printf(VOL-Pressn);segN=7;sglp=s

34、egN;else if(temp=0 x2)printf(DOWN Pressn);segN=8;sglp=segN;break;case 2:break;case 3:if(temp=0 x1)printf(UP Pressn);segN=2;sglp=segN;break;case 4:if(temp=0 x2)精品文档.printf(SLEEP Pressn);segN=0;sglp=segN;break;case 5:if(temp=0 x1)printf(MENU Pressn);segN=1;sglp=segN;else if(temp=0 x2)printf(RIGHT Pres

35、sn);segN=6;sglp=segN;break;case 6:if(temp=0 x1)printf(BACK Pressn);segN=3;sglp=segN;else if(temp=0 x2)printf(ENTER Pressn);segN=5;sglp=segN;break;case 7:if(temp=0 x2)printf(LEFT Pressn);segN=4;sglp=segN;break;default:break;/switch flag=0;精品文档./if if(flag=0)*(U8*)0 x88007000)=(0 x01lp);*(U8*)0 x88009

36、000)=seg7tablesegN;delay(500);lp=(lp+1)%6;flag=1;/while lp flag while(1);return 0;A/D 转换控制实验部分程序#include s5pc210.h#include uart.h#include clock.h int adc_test(void);int main(void)int jn,jn1;/系统时钟初始化 clock_init();/初始化串口 115200 uart_init();/设置 ADC 读取 AIN7 精品文档.while(1)jn=adc_test();jn1=jn/1000;GPD0.GP

37、D0CON=(GPD0.GPD0CON&(0 xF000)|(0 x2 12);/设置 Tout3 输出 TIMER.TCFG0=(TIMER.TCFG0&0 xFF)|0 xFF;/配置预分频值为 256 /TIMER.TCFG1=(TIMER.TCFG1&0 xF000)|4 12;/配置分频的值为1/16 分频 TIMER3.TCNTB3=jn;/设置基数缓冲器的值 switch(jn1)case 1:TIMER.TCFG1=(TIMER.TCFG1&0 xF000)|1 12;TIMER3.TCMPB3=jn/1;break;case 2:TIMER.TCFG1=(TIMER.TCFG

38、1&0 xF000)|2 12;TIMER3.TCMPB3=jn/3;break;case 3:TIMER.TCFG1=(TIMER.TCFG1&0 xF000)|312;TIMER3.TCMPB3=jn/6;break;case 4:TIMER.TCFG1=(TIMER.TCFG1&0 xF000)|4 12;TIMER3.TCMPB3=jn/8;break;/设置比较缓冲器的值 TIMER.TCON=0 x0e 16;/手动更新,是缓冲器的值到计数器里面,双缓冲机制 TIMER.TCON=0 x0d 16;/清除手动更新位,并启动定时器 3 delay(1000);return 0;LCD

39、 触摸屏显示控制实验#include s5pc210.h#include clock.h#include uart.h#include lcd.h 精品文档.#include ts_ft5x06.h#define WIDTHEIGHT 800#define HEIGHT 480 extern struct ts_event Touch_MSG;/保存触控点信息#define ROW (480)#define COL (800)int main()unsigned int i,j,n;unsigned char points;/触控点数量字符信息 unsigned char xch53;/触控点

40、坐标字符信息 unsigned char ych53;uart_init(115200);Uart_Select(2);printf(CVT S5PV210 Uart_Touch Test.n);iic_init();lcd_init();lcd_clear_screen(0 x000000);/使用黑色清除屏幕 lcd_draw_hline(ROW/2,100,COL-100,0 xff0000);/红色横线 lcd_draw_vline(COL/2,50,ROW-50,0 x00ff00);/绿色竖线 while(1)get_ts_msg();/获取当前触控信息 output_ts_xy(

41、);/串口打印信息 /lcd_clear_screen(0 x000000);if(Touch_MSG.point_num=0)/如果触控点数为 0,则不显示 continue;精品文档./坐标信息转化为字符 points=Touch_MSG.point_num+0;for(n=0;n Touch_MSG.point_num;n+)xchn0=(Touch_MSG.Touch_xyn.x/100)+0;xchn1=(Touch_MSG.Touch_xyn.x/10)%10)+0;xchn2=(Touch_MSG.Touch_xyn.x%10)+0;ychn0=(Touch_MSG.Touch_

42、xyn.y/100)+0;ychn1=(Touch_MSG.Touch_xyn.y/10)%10)+0;ychn2=(Touch_MSG.Touch_xyn.y%10)+0;/显示坐标信息字符 lcd_draw_char(16,0,0 xffff00);lcd_draw_char(16,8,points,0 xffff00);lcd_draw_char(16,16,0 xffff00);for(i=16,j=40,n=0;n Touch_MSG.point_num;j+=80,n+)lcd_draw_char(i,j+8*0,(,0 xffff00);lcd_draw_char(i,j+8*1

43、,xchn0,0 xffff00);lcd_draw_char(i,j+8*2,xchn1,0 xffff00);lcd_draw_char(i,j+8*3,xchn2,0 xffff00);lcd_draw_char(i,j+8*4,0 xffff00);lcd_draw_char(i,j+8*5,ychn0,0 xffff00);lcd_draw_char(i,j+8*6,ychn1,0 xffff00);lcd_draw_char(i,j+8*7,ychn2,0 xffff00);lcd_draw_char(i,j+8*8,),0 xffff00);lcd_draw_circle(Tou

44、ch_MSG.Touch_xyn-1.x,Touch_MSG.Touch_xyn-1.y,100,0 x68228B);/紫 /手动刷新坐标信息的显示区 delay(3000);for(i=16;i 32;i+)for(j=0;j b)a+;else b+;)5、ARM7TDMI 中,T 表示支持 16 位(Thumb)指令集,D 表示在片可调试,M 表示内嵌乘法器Multiplier,I 表示(嵌入式 ICE),支持在线断点和调试。6、当多个异常同时发生时,有优先级系统决定异常处理顺序,优先级最高的是(Reset)异常。二、简答题:共 4 小题,每小题 10 分,满分 40 分。1、嵌入式系

45、统的主要特点有哪些?嵌入式系统主要特点如下:1)嵌入式系统是面向具体应用的产品,专用性强 2)嵌入式系统软件、硬件生命周期都比较长,内核小、可裁剪。3)需要软硬件开发工具和环境,需要应用专家参与开发 4)嵌入式系统需具有高实时性和可靠性。2、ARM A8 寄存器分成哪几类?各类有哪些寄存器?寄存器 LR 有什么用途?分两类:33 个通用寄存器和 7 个状态寄存器。33 个通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。精品文档.

46、7 个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq 和 SPSR_mon。LR(R14):也称作子程序链接寄存器或链接寄存器 LR,当执行 BL 子程序调用指令时,R14 中得到 R15(程序计数器 PC)的备份。其他情况下,R14 用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器 R14_svc、R14_irq、R14_fiq、R14_abt、R14_und 和 R14_mon 用来保存 R15 的返回值。3、嵌入式微处理器嵌分为那几种?嵌入式微处理器(MPU):就是和通用计算机的处理器对应的 CPU,可以认为是

47、“增强型”通用微处理器。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成 ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D 等各种必要功能和外设。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。嵌入式可编程片上系统(SOPC):是用可编程逻辑技术把整个系统放到一块硅片上。嵌入式 DSP 是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。4、简述嵌入式系统通过查询方式和中断方式获取数据的特点?查询方式:硬

48、件少,程序简单,速度慢,工作并行度差,CPU 利用率低 中断方式:硬件多,程序较复杂,速度快,工作并行度高,CPU 利用率高 三、分析题:共 3 小题,每小题 10 分,满分 30 分。1、请给如下程序加注释并说明程序的功能:1、请给如下程序加注释并说明程序的功能:.equ num,200 ;/数据个数 num 为 200.section.text ;/代码段开始.global _start _start:MOV R0,#0 x400000 ;/源区地址指针设初值 LDR R1,=0 x400800 ;/目的区地址指针设初值 MOV R7,#num ;/数据块计数 LP1:LDRB R2,R0

49、,#1 ;取源区的一个字节数据到 R2 寄存器 CMP R2,#0 ;该数与0 比较 BEQ LP2 ;若 等于 0 转 LP2 处执行 STRB R2,R1,#1 ;不等于 0,将该数存入目的区 LP2:SUBS R7,R7,#1 ;检查数据块是否处理完 BNE LP ;未完,转 LP1 处继续处理 HERE:B HERE ;处理完,暂停 程序功能:完成将一个数据块(按字节计数)从源区传送到目的区(不含为 0 的数据)。精品文档.2、注释下列程序并说明实现的功能:while(1)get_ts_msg();/获取当前触控信息 output_ts_xy();/串口打印信息 if(Touch_MS

50、G.point_num=0)continue;points=Touch_MSG.point_num+0;/获取触摸点数量 for(n=0;n Touch_MSG.point_num;n+)xchn0=(Touch_MSG.Touch_xyn.x/100)+0;xchn1=(Touch_MSG.Touch_xyn.x/10)%10)+0;xchn2=(Touch_MSG.Touch_xyn.x%10)+0;ychn0=(Touch_MSG.Touch_xyn.y/100)+0;ychn1=(Touch_MSG.Touch_xyn.y/10)%10)+0;ychn2=(Touch_MSG.Touc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁