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

下载本文档

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

文档简介

1、一、基本概念1、嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、嵌入式处理器可以分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式 DSP处理器;嵌入式片上系统(SOC)。3、对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。4、实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于 RTOS之上的各个

2、任务,RTOS根据各个任务的要求,进行资源 ( 包括存储器、外设等 ) 管理、消息管理、任务调度、异常处理等工作。5、常见的嵌入式操作系统有: 嵌入式 Linux ;WindowsCE;VxWorks;OSE;Nucleus ;eCos; C/OS-II ;uITRON。6、可以把嵌入式系统的开发看作对一个项目的实施。项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。7、ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,ARM7TDMI的流水线分 3 级,分别为:取指;译码;执行。8、ARM7TDMI处理

3、器内核使用V4T 版本的 ARM结构,该结构包含32 位 ARM指令集和 16 位 Thumb指令集。9、ARM体系结构支持7 种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。10、在 ARM7TDMI处理器内部有 37 个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。11、 寄存器 CPSR为程序状态寄存器, 在异常模式中, 另外一个寄存器“程序状态保存寄存器( SPSR)”可以被访问。每种异常都有自己的 SPSR,在进入异常时它保存 CPSR的当前值,异常退出时可通过它恢复CPSR。12、在异常发生后,

4、ARM7TDMI内核会作以下工作:在适当的LR 中保存下一条指令的地址; 将 CPSR复制到适当的SPSR中;将 CPSR模式位强制设置为与异常类型相对应的值;强制PC从相关的异常向量处取指。13、当异常结束时,异常处理程序必须:将LR 中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;将SPSR的值复制回CPSR;清零在入口置位的中断禁止标志;恢复CPSR的动作会将 T、 F 和 I 位自动恢复为异常发生前的值。14、 当 nRESET信号被拉低时, ARM7TDMI处理器复位;当 nRESET信号再次变为高电平时, ARM处理器执行下列操作:强制 M4:0 变为 b10011(管

5、理模式);置位 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处理器具

6、有9 种基本寻址方式。寄存器寻址;立即寻址;寄存器移位寻址;寄存器间接寻址;基址寻址;多寄存器寻址;堆栈寻址;块拷贝寻址;相对寻址。18、LPC2000系列微控制器包含四大部分:ARM7TDMI-S CPU;ARM7局部总线及相关部件; AHB高性能总线及相关部件;VLSI 外设总线及相关部件19、LPC2000系列微控制器将 ARM7TDMI-S配置为小端模式(Little-endian)。20、AHB外设分配了 2M 字节的地址范围,它位于4G字节 ARM寻址空间的最顶端。每个 AHB外设都分配了 16KB的地址空间。21、 LPC2000系列微控制器的外设功能(除中断控制器)都连接到 V

7、PB总线。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的 LP

8、C系列 ARM微控制器,存储器重新映射区域一共为64字节,分别为异常向量区(32 字节)和紧随其后的32 字节。存储器重新映射的方法允许在不同模式下处理中断,重新映射的存储器区域在地址0x000000000x0000003F处。25、CPU正常工作需要有合适的时钟信号,包括 ARM7内核使用的 CCLK时钟,和芯片外设使用的PCLK时钟。26、 芯片上电后,晶体振荡器开始振荡。 因为振荡从开始到稳定需要一过程,所以外部复位信号至少要保持 10ms;在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于 300ns;27、 EMC模块支持 4 个独立配置的存储器组,每个存储器

9、组的总线宽度可设置为 8、16 或者 32 位,但是同一个存储器组的器件必须宽度相同。 每个存储器组最大支持 16MB寻址空间。28、LPC2000系列作为“微控制器”,其GPIO特性就显得很重要。它具有如下的特性: 可以独立控制每个 GPIO口的方向(输入 / 输出模式);可以独立设置每个 GPIO的输出状态(高 / 低电平);所有 GPIO口在复位后默认为输入状态。29、SPI(Serial Peripheral Interface串行外设接口)总线系统是一种同步串行外设接口,一般使用 4 条线:串行时钟线 SCK、主机输入 / 从机输出数据线 MISO、主机输出 / 从机输入数据线 MO

10、SI和低电平有效的从机选择线SSEL。30、FLASH存储器主要分为两种,一种为NOR型 FLASH,另一种为NAND型FLASH; NOR主要应用在代码存储介质中,NAND适合于数据存储,31、C/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。32、C/OS-II 可以管理 64 个任务,然而, C/OS-II8 个给 C/OS-II 。这样,留给用户的应用程序最多可有的作者建议用户保留56 个任务。33、根据 C/OS-II 的要求,移植 C/OS-II 到一个新的体系结构上需要提供2 个或 3 个文件:它们是: OS_CPU.(HC 语言头文件);OS_CPU_C

11、(.CC 程序源文件); OS_CPU_A.ASM(汇编程序源文件)二、硬件设计1、请用结构框图的形式描述出LPC2000系列 ARM微处理器内部的各组成部分及它们之间的相互关系。ARM7TDMI-S系统功能CPUARM7 局部总线SRAMAHB 总线VICFlashEMCAHB To VPB 桥外部中断I 2 C串行接口TIMER0/1SPI 串行接口ADCUART0 & 1通用 I/OCANPWM0看门狗定时器实时时钟系统控制2、用图描述出 LPC2000系列微处理器存器存储器地址空间分布图。4G0xFFFFFFFF2MB AHB 外设0xF00000002MB VPB 外设3.5

12、G0xE00000002G2G保留给外部储器使用0x800000008KB BootBlock1G保留给片内存储器使用1G0x4000000016KB SRAM1G保留给片内存储器使用256KB Flash(LPC2124/2214)0x00020000128KB Flash(LPC2114/2212)0x00000000地址空间3、图为 LPC2000系列处理器锁相环的内部结构, 若系统要求:FOSC10MHz、CCLK 60MHz ; FCCO范围: 156MHz 320MHz,请确定回路锁定后, PLL 配置寄存器(PLLCFG)的 MSEL位和 PSEL位。FOSCFCCO / 2P相

13、位频率CCO12P检测分频0FCCO0FCLKM分频F CCO / (2P*M)答:回路锁定后,由反馈控制理论知识可推导出:FOSC = FCCO/ (2P×M)FCLK = FOSC×M 计算 M值: M CCLK/FOSC6 ; 设置 MSEL位:写入值为( M1) 5; 设置 PSEL位: PFCCO/(CCLK×2) ( 156320) /120 1.3 2.67所以 P 取整数 2,PSEL写入值为 2。4、嵌入式最小系统由哪几部分构成?请画出最小系统结构框图。时钟系统调试测试嵌入式控制供电系统器复位及其存储器系5、LPC2000系列处理器的外部存储器控

14、制器包含4 个寄存器 BCFG0、BCFG1、BCFG2和 BCFG3,它们分别对应一个存储器组,请写出每个寄存器组的地址范围。Bank地址范围配置寄存器00x8000 0000 0x80FF FFFFBCFG010x8100 0000 0x81FF FFFFBCFG120x8200 0000 0x82FF FFFFBCFG230x8300 0000 0x83FF FFFFBCFG3三、软件设计1、在 ARM模式下,请编写一个完整的汇编语言程序, 要求:实现地址 0x40003100 中的内容从 0 开始 , 进行递增加 1 操作,当其内容大于 100 时,又重新为 0,开始下一次循环。COU

15、NTEQU0x40003100; 定义一个变量,地址为 0x40003100AREAExample,CODE,READONLY ;声明代码段 ExampleENTRY; 标识程序入口CODE32; 声明 32 位 ARM指令STARTLDRR1,=COUNT; R1<= COUNTMOVR0,#0; R0<= 0STRR0,R1; R1 <= R0,即设置 COUNT为 0LOOPLDR R1,=COUNTLDRR0,R1; R0 <= R1ADDR0,R0,#1;R0<=R0+1CMPR0,#100; R0 与 10 比较,影响条件码标志MOVHS R0,#0;

16、 若 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

17、; 设置堆栈( 满递减堆栈,使用STMFD/LMDFD指令 )HALTLDRLDRBLBR0,=XR1,=nPOWHALT;调用子程序POW,返回值为R0; 名称: POW; 功能:整数乘方运算。;入口参数: R0底数;R1指数;出口参数: R0运算结果; 说明:本子程序不考虑溢出问题POWSTMFDMOVSSP!,R1-R12,LR;寄存器入栈保护R2,R1;将指数值复制到R2,并影响条件码标志MOVEQ R0,#1BEQPOW_END;若指数为 0,则设置 R0=1;若指数为 0,则返回CMPR2,#1BEQPOW_END ;若指数为1,则返回。( 此时R0没有被更改)MOVR1,R0;

18、设置 DO_MUL子程序的入口参数 R0和 R1SUBR2,R2,#1;计数器 R2 = 指数值减 1POW_L1 BLDO_MUL; 调用 DO_MUL子程序, R0 = R1 * R0SUBSR2,R2,#1;每循环一次,计数器 R2减 1BNEPOW_L1;若计数器 R2 不为 0,跳转到 POW_L1POW_ENDLDMFD SP!,R1-R12,PC;寄存器出栈,返回; 名称: DO_MUL; 功能: 32 位乘法运算。;入口参数:R0乘数;R1被乘数;出口参数:R0计算结果; 说明:本子程序不会破坏 R1DO_MULMULR0,R1,R0;R0=R1*R0MOVPC,LR;返回EN

19、D3、采用如图所示的硬件电路对蜂鸣器B 进行控制,采用软件延时方法,控制蜂鸣器发出周期性的蜂鸣声。#include "config.h"#defineBEEPCON 0x00000080/ P0.7引脚控制B1,低电平蜂鸣void DelayNS(uint32 dly)uint32 i;for(; dly>0; dly-)for(i=0; i<5000; i+);int main(void)PINSEL0 = 0x00000000;/设置管脚连接GPIOIO0DIR = BEEPCON;/设置I/O为输出while(1)IO0SET = BEEPCON;/ BE

20、EPCON = 1DelayNS(10);IO0CLR = BEEPCON;/ BEEPCON = 0DelayNS(10);return(0);4、电路如下图所示,用处理器的GPIO直接驱动 LED;当 IO口输出高电平时 LED熄灭,输出低电平时 LED点亮。请编写相应的程序,控制4个LED产生流水灯效果,即 LED1,LED2,LED3,LED4依次点亮。P0.0P0.1P0.2P0.3#include "config.h"#defineLEDCON0x0000000fconstuint32DISP_TAB8= 0xfffffff1,0xfffffff2,0xffff

21、fff4,0xfffffff8 ;void DelayNS(uint32 dly) uint32 i;for(; dly>0; dly-)for(i=0; i<5000; i+);int main(void)uint8 i;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_TABi;/输出 LED显示数据DelayNS(10);/延时IO0SET = 0xff

22、ffffff;return(0);5、某系统的键盘硬件电路如图所示,采用的处理器为LPC2000 系列处理器,请编写该系统的键盘服务程序。void KeyInit(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为片内上拉电阻uint32 ReadKeyValue(void)return( (FIO0PIN>>19) &

温馨提示

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

评论

0/150

提交评论