嵌入式复习知识点_第1页
嵌入式复习知识点_第2页
嵌入式复习知识点_第3页
嵌入式复习知识点_第4页
嵌入式复习知识点_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

J、基本概念1、 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、 嵌入式处理器可以分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。3、 对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。4、 实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。5、 常见的嵌入式操作系统有:嵌入式Linux;WindowsCE;VxWorks;OSE;Nucleus;eCos;mC/OS-II;uITRON。6、 可以把嵌入式系统的开发看作对一个项目的实施。项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4个阶段。7、 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,ARM7TDMI的流水线分3级,分别为:取指;译码;执行。8、 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。9、 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。10、 在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。11、 寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。12、在异常发生后,ARM7TDMI内核会作以下工作:①在适当的LR中保存下一条指令的地址;②将CPSR复制到适当的SPSR中;③将CPSR模式位强制设置为与异常类型相对应的值;④强制PC从相关的异常向量处取指。12、13、 当异常结束时,异常处理程序必须:①将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;②将SPSR的值复制回CPSR;③清零在入口置位的中断禁止标志;④恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。14、 当nRESET信号被拉低时,ARM7TDMI处理器复位;当nRESET信号再次变为高电平时,ARM处理器执行下列操作:①强制M[4:0]变为b10011(管理模式);②置位CPSR中的I和F位;③清零CPSR中的T位;④强制PC从地址0x00开始对下一条指令进行取指;⑤返回到ARM状态并恢复执行。15、 基于ARM内核的芯片具有许多的外设,这些外设访问的标准方法是使用存储器映射的I/O,为外设的每个寄存器都分配一个地址。通常,从这些地址装载数据用于读入,向这些地址保存数据用于输出。16、 ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。17、 ARM处理器具有9种基本寻址方式。寄存器寻址;立即寻址;寄存器移位寻址;寄存器间接寻址;基址寻址;多寄存器寻址;堆栈寻址;块拷贝寻址;相对寻址。18、 LPC2000系列微控制器包含四大部分:ARM7TDMI-SCPU;ARM7局部总线及相关部件;AHB高性能总线及相关部件;VLSI外设总线及相关部件19、 LPC2000系列微控制器将ARM7TDMI-S配置为小端模式(Little-endian)。20、 AHB外设分配了2M字节的地址范围,它位于4G字节ARM寻址空间的最顶端。每个AHB外设都分配了16KB的地址空间。21、 LPC2000系列微控制器的外设功能(除中断控制器)都连接到VPB总线。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。每个VPB外设都分配了16KB的地址空间。22、 LPC2000系列微控制器的向量中断控制器(VIC)可以减少中断的响应时间,最多可以管理32各中断请求;外部存储器控制器(EMC)支持4个BANK的外部SRAM或Flash,每个BANK最多16MB;23、 LPC2000系列微控制器片内Flash编程方法:通过内置JTAG接口;使用UART0通信,通过在系统编程(ISP);通过在应用编程(IAP);24、 对于Philips的LPC系列ARM微控制器,存储器重新映射区域一共为64字节,分别为异常向量区(32字节)和紧随其后的32字节。存储器重新映射的方法允许在不同模式下处理中断,重新映射 的存储器区域在地址0x00000000〜0X0000003F处。25、 CPU正常工作需要有合适的时钟信号,包括ARM7内核使用的CCLK时钟,和芯片外设使用的PCLK时钟。26、 芯片上电后,品体振荡器开始振荡。因为振荡从开始到稳定需要一过程,所以外部复位信号至少要保持10ms;在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于300ns;27、 EMC模块支持4个独立配置的存储器组,每个存储器组的总线宽度可设置为8、16或者32位,但是同一个存储器组的器件必须宽度相同。每个存储器组最大支持16MB寻址空间。28、 LPC2000系列作为“微控制器”,其GPIO特性就显得很重要。它具有如下的特性:可以独立控制每个GPIO口的方向(输入/输出模式);可以独立设置每个GPIO的输出状态(高/低电平);所有GPIO口在复位后默认为输入状态。29、 SPI(SerialPeripheralInterface 串行外设接口)总线系统是一种同步串行外设接口,一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL。30、 FLASH存储器主要分为两种,一种为NOR型FLASH,另一种为NAND型FLASH;NOR主要应用在代码存储介质中,NAND适合于数据存储,31、 pC/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。32、 pC/OS-II可以管理64个任务,然而,pC/OS-II的作者建议用户保留8个给pC/OS-II。这样,留给用户的应用程序最多可有56个任务。

33、 根据pC/OS-II的要求,移植pC/OS-II到一个新的体系结构上需要提供2个或3个文件:它们是:OS_CPU.H(C语言头文件);OS_CPU_C.C(C程序源文件);OS_CPU_A.ASM(汇编程序源文件)二、硬件设计1、请用结构框图的形式描述出LPC2000系列ARM微处理器内部的各组成部分及它们之间的相互关系。2、用图描述出LPC2000系列微处理器存器存储器地址空间分布图。4G 3.5G4G 3.5G2G ►1G 0xFFFFFFFF0xF00000000xE00000000x800000000x400000000x000200000x000000003、图为LPC2000系列处理器锁相环的内部结构,若系统要求:FOSC=10MHz、CCLK=60MHz;FCCO范围:156MHz〜320MHz,请确定回路锁定后,PLL配置寄存器(PLLCFG)的MSEL位和PSEL位。答:回路锁定后,由反馈控制理论知识可推导出:FOSC=FCCO/(2PXM)FCLK=FOSCXM计算M值:M=CCLK/FOSC=6;设置MSEL位:写入值为(M—1)=5;设置PSEL位:P=FCCO/(CCLKX2)=(156〜320)/120=1.3〜2.67所以P取整数2,PSEL写入值为2。4、嵌入式最小系统由哪几部分构成?请画出最小系统结构框图。5、LPC2000系列处理器的外部存储器控制器包含4个寄存器BCFG0、BCFG1、BCFG2和BCFG3,它们分别对应一个存储器组,请写出每个寄存器组的地址范围。Bank地址范围配置寄存器00x80000000〜0x80FFFFFFBCFG010x81000000〜0x81FFFFFFBCFG120x82000000〜0x82FFFFFFBCFG230x83000000〜0x83FFFFFFBCFG3

三、软件设计1、在ARM模式下,请编写一个完整的汇编语言程序,要求:实现地址0x40003100中的内容从0开始,进行递增加1操作,当其内容大于100时,又重新为0,开始下一次循环。COUNTEQU0x40003100;定义一个变量,地址为0x40003100AREAExample,CODE,READONLY;声明代码段ExampleENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1<=COUNTMOVR0,#0 ;R0<=0STRR0,[R1] ;[R1]<=R0,即设置COUNT为0LOOP LDRR1,=COUNTLDRR0,[R1];R0<=[R1]ADDR0,R0,#1;R0<=R0+1CMPR0,#100;R0与10比较,影响条件码标志MOVHSR0,#0;若R0大于等于10,则此指令执行,R0<=0STRR0,[R1];[R1]<=R0,即保存COUNTBLOOPEND2、X和n均为无符号整数,计算X的n次方的值,要求采用ARM汇编语言和子函数调用的模块化结构形式编写一个完整的汇编程序。功能:计算X的n次方的值说明:X和n均为无符号整数

XEQU9;定义X的值为9nEQU8;定义n的值为8AREAExample4,CODE,READONLY;声明代码段Example4ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRSP,=0x40003F00 ;设置堆栈(满递减堆栈,使用STMFD/LMDFD指令)LDRLDRBLHALT BR0,=XR1,=nPOWHALT;调用子程序POW,返回值为R0;名称:POW;功能:整数乘方运算。;入口参数:R0 底数; R1 指数;出口参数:R0 运算结果;说明:本子程序不考虑溢出问题POWSTMFDSP!,{R1-R12,LR};寄存器入栈保护MOVSR2,R1 ;将指数值复制到R2,并影响条件码标志MOVEQR0,#1;若指数为0,则设置R0=1BEQPOW_END;若指数为0,则返回CMPBEQR2,#1POW_END;若指数为1,则返回。(此时R0没有被更改)MOVR1,R0;设置DO_MUL子程序的入口参数R0和R1SUBR2,R2,#1;计数器R2=指数值减1POW_L1BLDO_MUL;调用DO_MUL子程序,R0=R1*R0SUBSR2,R2,#1;每循环一次,计数器R2减1BNEPOW_L1;若计数器R2不为0,跳转到POW_L1POW_ENDLDMFDSP!,{R1-R12,PC} ;寄存器出栈,返回;名称:DO_MUL;功能:32位乘法运算。;入口参数:R0 乘数; R1被乘数;出口参数:R0 计算结果;说明:本子程序不会破坏R1DO_MULMULR0,R1,R0 ;R0=R1*R0MOVPC,LR ;返回END3、采用如图所示的硬件电路对蜂鸣器B进行控制,采用软件延时方法,控制蜂鸣器发出周期性的蜂鸣声。MJD3.3

#includeconfig.h#defineBEEPCON0x00000080voidDelayNS(uint32dly)(uint32i;for(;dly>0;dly--)(for(i=0;i<5000;i++);}}intmain(void)(PINSEL0=0x00000000;IO0DIR=BEEPCON;while(1)(IO0SET=BEEPCON;DelayNS(10);IO0CLR=BEEPCON;DelayNS(10);}//P0.7引脚控制B1,//P0.7引脚控制B1,低电平蜂鸣//设置管脚连接GPIO//设置I/O为输出//BEEPCON=1//BEEPCON=04、电路如下图所示,用处理器的GPIO直接驱动LED;当IO口输出高电平时LED熄灭,输出低电平时LED点亮。请编写相应的程序,控制4个LED产生流水灯效果,即LED1,LED2,LED3,LED4依次点亮。P0.。P0.1#includeconfig.h#defineLEDCON0x0000000fconstuint32DISP_TAB[8]=(0xfffffff1,0xfffffff2,0xfffffff4,0xfffffff8);voidDelayNS(uint32dly)(uint32i;for(;dly>0;dly--)(for(i=0;i<5000;i++);intmain(void)(uint8i;PINSEL0&=0xffffff00;//配置P0.0,P0.1,P0.2,P0.3为GPIOIO0DIR|=LEDCON;//配置LED控制I/O方向while(1)(i=0;for(i=0;i<4;i++)(IO0CLR=DISP_TAB[i];//输出LED显示数据DelayNS(10); //延时IO0SET=0xffffffff;}}return(0);}5、某系统的键盘硬件电路如图所示,采用的处理器为LPC2000系列处理器,请编写该系统的键盘服务程序。KEY3R1P0.19/KEY3KEY4C O OKEY?<' KEY3R1P0.19/KEY3KEY4C O OKEY?<' O OKEY6220RR2220RR3P0.20/KEY4P0.21/KEY5220RR4<■ O。 1=220RP0.22/KEY6V>GNDvoidKeylnit(void){PINSEL1&=~(0xff<<6); //设置P0.19,P0.20,P0.21,P0.22为GPIO模式FIO0DIR&=~(0x0f<<19); //设置P0.19,P0.20,P0.21,P0.22为GPIO输入模式PINMODE1&=~(0xff<<6); //设置P0.19,P0.20,P0.21,P0.22为片内上拉电阻}uint32ReadKeyValue(void){return(~(FIO0PIN>>19)&0x0000000f);}voidCsyKeyServer(uint32KeyValue) //按键处理程序实体代码{uint32InputKey

温馨提示

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

评论

0/150

提交评论