arm嵌入式系统基础教程_复习题_第2版_周立功_第1页
arm嵌入式系统基础教程_复习题_第2版_周立功_第2页
arm嵌入式系统基础教程_复习题_第2版_周立功_第3页
arm嵌入式系统基础教程_复习题_第2版_周立功_第4页
arm嵌入式系统基础教程_复习题_第2版_周立功_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式处理器可以分为几大类 ? 嵌入式处理器可以分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式 DSP处理器;嵌入式片上系统( SOC)。P0.2和 P0.3口是 I2C接口,当设置它们为 GPIO时,是否需要外接上拉电阻才能输出高电平? 使用 GPIO注意要点大部分 GPIO输出为 推挽 方式(个别引脚为开漏输出),正常拉出 /灌入电流均为 4mA(短时间极限值 40mA);LPC2000系列 ARM大部分的 I/O引脚为推挽方式输出 ,但是具有I2C总线功能的 I/O引脚为开漏输出( P0.2/P0.3和 P0.11/ P0.14)。使用这些开漏输出的引脚作为 GPIO功能,并用于高电平输出或引脚状态输入时,要接上拉电阻才能正常使用。 向量中断控制器 VIC中被设置为几类?最多可以管理多少个中断输入请求? 中断输入请求可以在 VIC中被设置为以下三类: FIQ中断 :具有最高优先级; 向量 IRQ中断 :具有中等优先级; 非向量 IRQ中断 :具有最低优先级;FIQ中断向量 IRQ中断非向量 IRQ中断中断源 0中断源 1中断源 31VIC将 32个中断输入进行分配若 LPC2210/2220的 bank0存储块使用 32位总线,访问 bank0时,地址 A1、 A0是否有效? EMC模块中的 BLS0 BLS3具有什么功能? 32位总线宽度数据总线 D31 D0有效, 地址总线 A1、 A0无效 ,字节定位信号中 BLS0 BLS3有效。 32位存储器件中字节 0、 1、 2、 3的定位表示法:32位存 储 器数据 32位存 储 器件地址D31 D24 D23 D16 D15 D8 D7 D0字 节 3 字 节 2 字 节 1 字 节 0 0x0000 0000字 节 3 字 节 2 字 节 1 字 节 0 0x0000 0001字 节 3 字 节 2 字 节 1 字 节 0 0x0000 0010字 节 3 字 节 2 字 节 1 字 节 0 EMC提供了一组字节定位选择信号 (BLS0 BLS3)实现对 16位或32位外部存储器组的字节操作。 4.6 外部存储器控制器( EMC) 32位总线宽度连接方式1.3 嵌入式操作系统 常见的嵌入式操作系统C/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用 ANSI C写的,使其可以方便的移植并支持大多数类型的处理器。 C/OS-II通过了联邦航空局( FAA)商用航行器认证。自 1992年问世以来, C/OS-II已经被应用到数以百计的产品中。 C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。 C/OS-II4.7 引脚连接模块 概述LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。引脚 P0.0GPIOTXD0PWM1输出保留PINSELx引脚连接寄存器 PINSELx 1 : 000011011P0.0默认为 GPIO功能P0.0选择 TXD0功能,配置对应位为 01选择 PWM1功能,配置对应位为 10选择保留功能,配置对应位为 114.7 引脚连接模块LPC2000系列微控制器具有三个 32位宽度 PINSEL寄存器,其中 PINSEL0和 PINSEL1控制端口 0,PINSEL2根据芯片的不同控制的端口数量也不同 。 寄存器描述寄存器 LPC2100 LPC2200PINSEL0 P00:15PINSEL1 P016:31PINSEL2 P116:31 P10:1、 P116:31、P20:31、 P30:31LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置引脚连接寄存器: PINSELx控制多路开关来连接引脚与片内外设。LPC2000系列 ARM7微控制器有三个 32位宽度 PINSEL寄存器,其中 PINSEL0和 PINSEL1控制端口 0, PINSEL2根据芯片的不同控制的端口数量也不同 。 LPC2000系列微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?MOV指令与 LDR指令都是往目标寄存器中传送数据,但是它们有什么区别吗?MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。 LDR指令用于从内存中读取数据放入寄存器中。最小内核 | C/OS-II微小内核分析 基本概念并行 程序执行的 独立 的基本逻辑单位 ”称之为 “任务 ”。1、什么是任务 非独立的任务结构 独立的任务结构 独立的具体含义最小内核 | C/OS-II微小内核分析 基本概念 可并行执行的单位 可以认为 C/OS-II为每个任务虚拟了一个 CPU。在对任务进行编程时,应该时刻谨记这个观点。 虚拟了多个 CPU 等待状态: 任务在等待某一事件的发生还不能运行的状态;被中断状态: 因为中断服务程序正在执行而得不到 CPU控制权的状态;睡眠状态: 任务驻留在程序空间之中,还没有交给 C/OS- 管理的状态,而将任务交给 C/OS- 管理是通过调用函数 OSTaskCreate()实现的;就绪状态: 任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行的状态。在 C/OS- 中,当任务一旦建立,这个任务就进入就绪态准备运行;运行状态: 任务掌握了 CPU的控制权,正在运行中的状态。最小内核 | C/OS-II微小内核分析 基本概念2、任务的状态 运行运行睡眠睡眠等待等待被中断被中断就绪就绪任务状态描述 LPC2100、 LPC2200 电源1.分析需求 LPC2100、 LPC2200需要 4组电源输入: 数字 3.3V、 数字 1.8V、模拟 3.3V和 模拟 1.8V。 因此,理想情况下电源系统需要提供 4组独立的电源:两组 3.3V电源和两组 1.8V电源,它们需要单点接地或大面积接地。如果系统的其它部分还有其它电源需求,则还需要更多的末级电源。但如果不使用 LPC2000的 AD功能,或对 AD的要求不高,模拟电源和数字电源可以不分开供电。这里假设不使用LPC2000的 AD功能,且其它部分对电源没有特殊要求。这样,末级只需要提供两组电源。4.5 存储器加速模块( MAM)LPC2000微控制器扩展了器件内部 Flash总线宽度为 128位,用于提高处理器的指令执行速度。这个接口通过存储器加速模块 (MAM)来控制。片内 Flash通过 128位宽度 的总线与 ARM内核相连,具有很高的速度,加上特有的 存储器加速 功能,因此可以将 程序直接放在Flash上 运行。 4.16 看门狗 看门狗简介在嵌入式应用中, CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。 看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。其原理是在系统正常工作时,用户程序每隔一段时间执行喂狗动作(一些寄存器的特定操作),如果系统出错,喂狗间隔超过看门狗溢出时间,那么看门狗将会产生复位信号,使微控制器复位。看门狗复位是通过 设置看门狗相关寄存器 ,当 看门狗定时器 溢出后,引发复位。3.2 指令集介绍 ARM指令集 ARM数据处理指令数据处理指令大致可分为 3类: 数据传送指令;算术逻辑运算指令;比较指令。数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。所有 ARM数据处理指令均可选择使用 S后缀,并影响状态标志。 2.5 ARM处理器模式 简介ARM体系结构支持 7种处理器模式,分别为: 用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。 这样的好处是可以更好的支持操作系统并提高工作效率。 ARM7TDMI完全支持这七种模式。第 3章 ARM7TDMI(-S)指令系统ARM处理器是基于精简指令集计算机 (RISC)原理设计的,指令集和相关译码机制较为简单。 ARM7TDMI(-S)具有 32位 ARM指令集 和 16位 Thumb指令集 , ARM指令集效率高,但是代码密度低 ;而 Thumb指令集具有较高的代码密度,却仍然保持 ARM的大多数性能上的优势,它是 ARM指令集的子集。所有的 ARM指令都是可以有条件执行的,而 Thumb指令仅有一条指令具备条件执行功能。 ARM程序和 Thumb程序可相互调用,相互之间的状态切换开销几乎为零。 2.6 ARM内部寄存器 简介在 ARM处理器 内部共有 37个用户可访问的寄存器,分别为 31个通用 32位寄存器 和 6个状态寄存器。ARM处理器共有 7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以 18个活动的寄存器。3.1 ARM处理器寻址方式 寻址方式分类寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。 ARM处理器具有 9种基本寻址方式。1.寄存器寻址; 2.立即寻址;3.寄存器移位寻址; 4.寄存器间接寻址;5.基址寻址; 6.多寄存器寻址;7.堆栈寻址; 8.相对寻址; 9.块拷贝寻址1.3 嵌入式操作系统 实时操作系统的特点总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是 实时性 、 可靠性 和 灵活性 , 与实时应用软件相结合成为有机的整体起着核心作用 , 由它来管理和协调各项工作 ,为应用软件提供良好的运行软件环境及开发环境。从实时系统的应用特点来看实时操作系统可以分为两种: 一般实时操作系统一般实时操作系统 和 嵌入式实时操作系统嵌入式实时操作系统 。最小内核 | C/OS-II微小内核分析 时间管理如果某任务需要申请延时一段时间,系统调用系统服务函数OSTimeDly()来实现,调用该函数会使 C/OS- 进行一次任务调度,并且执行下一个处于就绪态优先级最高的任务。任务调用OSTimeDly()后,一旦规定的时间期满,它就会马上进入就绪态。OSTimeDly()仅有一个 参数 ticks表明任务需要延时的时间, 以系统时钟节拍为单位 。C/OS-II 提供的时间管理服务函数是以 系统节拍 为处理单位的。 4.14 UART(0、 1) 特性LPC2000系列微控制器具有两个功能强大的UART,其特性如下: 16字节接收 FIFO和 16字节发送 FIFO; 寄存器位置符合 16C550工业标准; 接收 FIFO触发点可设置为 1、 4、 8或 14字节; 内置波特率发生器; UART1含有标准调制解调器接口信号 。LPC2114系列 ARM就是通过 UART0进行 ISP通信操作 ,只有UART1才有 Modem中断 外部中断极性控制外部中断方式控制掉电唤醒控制中断标志EXTPOLAR EXTMODEEXTINTEXTWAKE管脚连接控制PINSELxCPU其它部件 寄存器汇总中断相关寄存器EXTINT EINT07 : 4 0EINT11EINT22EINT33若引脚上出现了符合要求的信号, EXTINT寄存器中对应的中断标志将被置位。向该寄存器的 EINT0 EINT3位写入 1,可将其清零。外部中断标志寄存器 (EXTINT):注意 :在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清除中断标志。设置该寄存器允许相应的外部中断将处理器从掉电模式唤醒。实现掉电唤醒不需要在向量中断控制器( VIC)中使能相应的中断。该寄存器的低四位( EXTWAKE3:0)分别对应外部中断 3 0。外部中断唤醒寄存器 (EXTWAKE):控制寄存器EXTWAKE EXTWAKE0EXTWAKE1EXTWAKE2EXTWAKE3外部中断方式控制寄存器 (EXTMODE):该寄存器控制着外部中断输入信号的有效触发方式,低四位分别对应外部中断 3 0。对应位为 0时,电平触发外部中断;对应位为 1时,边沿触发外部中断。控制寄存器EXTMODE EXTMODE0EXTMODE1EXTMODE2EXTMODE3外部中断极性控制寄存器 (EXTPOLAR):电平触发方式下:对应位为 0时,低电平触发外部中断;对应位为 1时,高电平触发外部中断。边沿触发方式下:对应位为 0时,下降沿触发外部中断;对应位为 1时,上升沿触发中断。控制寄存器EXTPOLAR EXTPOLAR0EXTPOLAR1EXTPOLAR2EXTPOLAR3设 置 说 明 相 应 位 设 置 值 信号波形极性控制寄存器( EXTPOLAR)方式控制寄存器( EXTMODE)低 电 平触 发 0(低) 0( 电 平)高 电 平触 发 1(高) 0( 电 平)下降沿触 发 0(下降) 1( 边 沿)上升沿触 发 1(上升) 1( 边 沿)中断信号波形与设置方式 以下代码是初始化外部中断 0,用它来唤醒掉电的 LPC2114,请填空。PINSEL0=0x00000000;PINSEL1=(PINSEL1/设置 I/O口连接,P0.16设置为 EINT0EXTMODE=EXTMODE /设置 EINT0为电平触发模式EXTPOLAR=EXTPOLAR /设置 EINT0为低电平触发EXTWAKE=EXTWAKE /允许外部中断 0唤醒掉电的 CPUEXTINT= 0x0F ; /清除外部中断标志 EXTMODE = EXTMODE | 0x01; /设置 EINT0为边沿触发模式EXTPOLAR = EXTPOLAR /初始化 EINT0为下降沿中断 使用 NOP伪 指令、比 较 指令、条件跳 转 指令等完成一个 软 件延 时 子程序,延 时长 度由 R0寄存器的数 值 控制?DelayNOP ;空操作NOPNOPSUBS R0,R0,#1 ;循 环 次数减一BNE Delay ;如果循 环 未 结 束 ,跳 转 Delay继续MOV PC,LR ;子程序返回初始化串口 0程序。设置为 8位数据位, 1位停止位,无奇偶校验,入口参数: bps 通讯波特率void UART0Init(uint32 bps) uint16 Fdiv;PINSEL0=(PINSEL0/不影响其它管脚连接 ,设置I/O连接到 UART0U0LCR = 0x83; / DLAB = 1,可设置波特率Fdiv = (Fpclk/16) / bps; / 设置波特率U0DLM = Fdiv / 256; U0D

温馨提示

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

评论

0/150

提交评论