可以私聊我获取pdf版本!
前言
提示:这里可以添加本文要记录的大概内容:
期末复习知识点总结 第一次整理
提示:以下是本篇文章正文内容,下面案例可供参考
第一章 嵌入式系统基础
1、嵌入式系统概述
1.1.0 嵌入式系统发展
(选择 4个阶段)
无操作系统的单片机阶段–>以微控制器为基础、以简单操 作系统为核心的嵌入式系统阶段–>以通用的嵌入式操作系 统和系统级芯片为标志的嵌入式系统阶段–>面向Internet 的应用阶段
1.1.1 嵌入式系统的定义(简答)
嵌入式系统是以应用为中心,以计算机技术为基础,并且软 硬件可裁剪。适用于应用系统对功能、可靠性、成本、体 积、功耗有严格要求的专用计算机系统。 特点(3大特点):专用性,嵌入性,计算机系统。(选 择)
1.1.2 嵌入式系统的组成(简答)
按模块划分:微处理器、外围硬件、嵌入式操作系统、应用 程序、开发环境;
按层次划分:硬件层、中间层–软件适配层、系统软件层 (软件层)、功能层;(选择)
1.1.3 嵌入式系统的特点(7大特点)
1、技术先进
2、系统内核小
3、专用性强
4、系统精简
5、系统软件要求具有高时效性
6、嵌入式软件开发走向标准化
7、开发工具和环境完善
1.1.4 嵌入式系统应用(了解)
工业控制、交通管理、信息家电、智能家居、电子商务等等
2、嵌入式处理器
2.2.0 嵌入式处理器分类(4大类)
1、嵌入式微处理器(EMPU)MPU
2、嵌入式微控制器(MCU)
3、嵌入式片上系统(SOC)
4、嵌入式DSP处理器
2.2.1 典型的嵌入式处理器
1、MCS51
2、ARM处理器
3、MIPS处理器
4、PowerPC处理器
3、嵌入式操作系统
3.3.0 嵌入式操作系统简介(简答)
操作系统是计算机中最基本的程序,负责计算机系统中全部 软硬资源的分配与回收,提高资源利用率,是对系统资源进 行管理的软件 嵌入式操作系统(EOS)是一种支持嵌入式系统应用的操作 系统软件
3.3.1 嵌入式系统的主要特点(8大特点)
1、可装卸性、开放性、可伸缩性的体系结构
2、强时效性
3、统一的接口
4、操作方便、简单
5、提供强大的网络功能
6、强稳定性、弱互交性
7、固化代码
8、良好的移植性
3.3.2 几种典型的EOS(选择)
没有windows10 Linux、uc/OS-II、Windows CE、VxWorks、Android、 PalmOS、QNS
4、嵌入式系统开发
4.4.0 嵌入式系统开发过程(选择)
需求分析–>体系结构设计–>软硬件结构设计–>系统集成- ->系统测试与优化
习题中总结问题
1、嵌入式处理器保存程序采用的是硬盘;
2、3C是指Computer,Communication, ConsumerElectronic;
3、ARM处理器能直接识别的是机器语言
第二章 嵌入式系统体系结构
1、嵌入式ARM处理器概况
1.1.0 ARM体系的版本说明
ARM公司,主要负责出售芯片设计技术的授权,不负责生产 芯片,同时设计了大量的高性能、廉价、耗能低的RISC处理器,成为了市场上的主流。
ARM版本主要采用VII:V7架构,可以分为三类:Cortex-A系 列,Cortex-M系列,Cortex-R系列。(选择) ARM处理器系列:主要使用的有6个,即ARM7,ARM9,ARM10E,ARM11,SecurCore,Cortex
1.1.1 常用ARM处理器介绍(选择、判断)
ARM7系列:低功耗32位核,冯诺依曼结构,三级流水线
ARM9系列:高性能,低功耗,哈佛结构,五级流水线
ARM10系类:全性能,低功耗,哈佛结构,六级流水线 11-八级流水线
2、ARM处理器技术
2.2.0 RISC技术(简答)
1、CISC:复杂指令集 特点:具有大量的指令和寻址方式;8/2原则:80%的程序只 使用20%的指令;大多数的程序只使用少量的指令就能运 行。指令的格式是可变化的,不是固定的。
2、RISC:精简指令集 特点:在通道中只包含最有用的指令;确保数据通道中能快 速执行每一条指令;使cpu的结构设计变得更为简单。 3、RISC的结构的特点(5大特点) 简化指令集; 设计大量的通用寄存器; 采用装载/保存结构(load-store); 采用简单的指令格式; 单机器周期指令;
2.2.1 流水线技术(简答)
概念:将一种指令分解为多步,并让不同指令的各步操作重 叠执行,从而实现几条指令并行处理,加速程序运行。 以ARM7三级流水线为例: 取指:从存储器装载一条指令到cpu 解码:识别并解释将要被执行的命令 执行:将识别的指令进行计算处理并将结果写回寄存器
2.2.2 哈佛结构
哈佛结构:将程序中指令和数据分开存储的存储器结构,程序存储器和数据存储器采用了不同的总线,提供了较大的存 储器带宽
普林斯顿结构(冯诺依曼结构):将程序中指令和数据存放 在一起的存储器结构
2.2.3 AMBA总线技术(涉及到第五章内容,在此仅 作了解)
AHB:连接高性能和高时钟频率的系统模块;
ASB:连接高性能的系统模块;
APB:连接低功耗的外部设备模块;
3、ARM7处理器结构
了解内部构成、内核结构、处理器模块接口信号以及模块功 能图(略);
4、ARM7工作状态及模式
4.4.0 ARM7处理器工作状态
ARM7处理器内核包含2套指令系统:ARM指令集,Thumb指令 集
1、ARM状态:32位,处理器执行字方式的ARM指令,默认为 此状态;
2、Thumb状态:16位,处理器执行半字方式的Thumb指令。 状态之间的切换并不影响处理器模式或寄存器内容
4.4.1 ARM7处理器模式
ARM体系结构支持7种处理器模式: 用户模式(权限最小),快中断模式,中断模式,管理模 式,中止模式,未定义模式,系统模式——6种特权模式
模式切换的方法(2种):主动切换,被动切换(发送异 常、中断)
4.4.2 处理器模式说明
1、用户模式为正常运行的模式,不能直接从用户模式切换到其他模式
2、特权模式可以自由地切换到其他模式
3、除上述两种模式,其余5种为异常模式,进入各个异常模 式的条件如下:
快中断模式(fiq):FIQ异常响应,进入;
中断模式(irq):IRQ异常响应,进入;
管理模式(svc):系统复位、软件中断响应,进入;
中止模式(abt):无多大用处。处理器访问数据失败, 进入;
未定义模式(und):未定义指令异常响应,进入;
4、用户模式和系统模式不能由异常进入,想要进入必须修 改CPSR
5、ARM7内部寄存器
5.5.0 简介
在ARM处理器内部,一共有37个用户可以访问的寄存器,分 别为31个通用的32位寄存器和6个状态寄存器
5.5.1 ARM状态各模式下的寄存器
用户模式:17个可访问寄存器–>R0~R15、CPSR;
系统模式:17个可访问寄存器–>R0~R15、CPSR;
管理模式:18个可访问的寄存器–>R0~R15、CPSR、 SPSR_svc;
中止模式:18个可访问的寄存器–>R0~R15、CPSR、 SPSR_abt;
未定义模式:18个可访问的寄存器–>R0~R15、CPSR、 SPSR_und;
中断模式:18个可访问的寄存器–>R0~R15、CPSR、 SPSR_irq;
快中断模式:18个可访问的寄存器–>R0~R15、CPSR、 SPSR_fiq; 特有的:R8~R14寄存器
说明
寄存器R0~R7为未分组的通用寄存器,任何模式下都 对应32位的物理寄存器
寄存器R8~R12有两个分组的物理寄存器,一个用于 FIQ模式,另一个用于除FIQ的其余所有模式
寄存器R13~R14有六个分组的物理寄存器,一个用于用户模式和系统模式,另外5个对应5种异常模式
R13为堆栈指针SP,用于保存待使用的寄存器的内容
R14为链接寄存器LR
CPSR为当前程序状态寄存器
SPSR为程序状态保存器,进入异常时保存当前CPSR的 当前值,异常退出时用于恢复CPSR
5.5.2 Thumb状态下的寄存器组织
在Thumb状态下,程序员可以直接访问的寄存器有: 8个通用寄存器R0~R7 程序计数器PC 堆栈指针SP 链接寄存器LR 当前程序状态寄存器CPSR5.5.3 两种状态的相互切换
1、系统复位后,自动进入ARM状态;
2、通过BX和BXL指令改变当前处理器模式,进入Thumb状态;
3、在Thumb状态下再次通过BX和BLX指令改变当前处理器模式,进入ARM状 态
4、异常处理完毕,切回Thumb状态;
5、再次通过BX和BLX指令改变当前处理器模式,进入ARM状 态
6、ARM体系的异常处理
6.6.0 异常简介
只要正常的程序流被暂时中止,处理器就进入异常模式。
6.6.1 异常优先级
当发生两个或者更多异常,那么将按照固定的顺序来处理异常,一个固定的优先级决定他们的处理顺序。 优先级由高到低:
1、复位
2、数据终止
3、快中断FIQ
4、中断IRQ
5、预取指中止
6、未定义指令中止
7、软件中断异常
6.6.2 异常的进入地址(常考)
FIQ:进入地址–0x0000001C
IRQ:进入地址–0x00000018
6.6.3 异常的进入与退出(重点 必须背过)
1、异常的进入(4步):
当一个异常导致模式切换后,做出如下处理: 将异常处理程序的返回地址(加固定的偏移量)保存到相应 的异常模式下的LR(即R14寄存器); 将CPSR的当前值保存到相应异常模式下的SPSR; 设置CPSR为相应的异常模式; 设置PC(即R15寄存器)为相应异常处理程序的中断入口向 量地址,跳转到相应的异常中断处理程序执行;
2、异常的退出(3步): 当异常处理程序结束时,异常处理程序做出如下处理: 返回到发生异常中断的指令的下一条指令处执行 将SPSR中的值复制回CPSR 清零在入口处置位的中断禁止标志
7、ARM体系的存储方式(了解)
习题中问题总结
1、32bit宽的数据0x12345678在小端模式下存放到 0x4000-0x4004地址中,正确的存放方式?
在小端模式下,地址低位对应数据的低位,地址的高位对 应数据的高位 故0x4000为地址的低位 存放78
0x4001存放56
0x4002存放34
0x4003存放12
2、系统复位后ARM7处理器进入管理模式
3、快中断模式有自己独立的R8-R14寄存器
4、IRQ模式的进入与退出
**进入:**将异常处理程序的返回地址保存到异常模式下的 R14_irq中; 用户模式的CPSR保存到对应的SPSR_irq中; 修改CPSR为对应的CPSR_irq模式,且禁止新的IQR中 断产生;设置PC为IRQ异常处理模式下的程序中断入口向量地 址为0x00000018; 将IRQ中断异常模式的栈顶指针保存到R13_irq中
**退出:**从R13_irq中获取IRQ中断异常模式的栈顶指针; 复制SPSR_irq中的内容到CPSR; 将R14_irq中的地址减去偏移量存入到PC中;
5、CPSR中哪些位只能读取?哪些位可以设置?
条件码标志位中C、V可以设置,N、Z只能读取; 控制位中M[4:0]可以设置,I、F、T只能读取。
6、ARM7的两种状态如何切换?
ARM状态和Thumb状态进行切换时,使用带状态切换的转移 指令BX,BX为寄存器寻址方式,寄存器中存放要转移的地 址,由于指令是字对齐或半字对齐存放,因此地址的最低 位没有使用到,BX指令利用地址最低位的值来修改CPSR中T 标志,以此来做到状态的切换。
7、什么是计算机的指令集?
指令集就是CPU中用来计算和控制计算机系统的一套指令的 集合。
第三章 ARM7指令系统
1、ARM7指令集概述
1.1.0 简介
ARM程序的文件类型:
c程序:文件类型为".c"
汇编程序:文件类型为".s"
特点:指令集效率高,代码密度低
1.1.1 ARM指令的分类(7大类)
数据处理指令;分支指令;加载/存储指令;交换指令;程序状态寄存器指令;协处理指令;异常产生指令
1.1.2 ARM指令的编码格式
指令助记符 {执行条件} {指令执行结果是否影响CPSR中的 条件标志位} 目标寄存器 第一个操作数寄存器 {第二个操 作数}
例如:MOV R1,R2;将R2寄存器的值送到R1寄存器
SUBS R0,R1,R2;将R1寄存器的值减去R2操作数的值送到R0寄存器
2、ARM指令的寻址方式
2.2.0 寻址方式分类(常见8大类)
**立即数寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址寻址**、相对寻址、**多寄存器寻址、堆栈寻址**
2.2.1 各寻址方式介绍
1、立即数寻址:操作码字段后面的地址码部分就是操作数 本身
SUBS R0,R0,#1;将R0减1,结果放入 R0,影响标志位
MOV R0,#0xFF000;将立即数0xFF000装入 R0寄存器
2、寄存器寻址:操作数的值在寄存器中
MOV R1,R2;将R2的值存入R1
SUB R0,R1,R2;将R1的值减去R2的值, 结果保存到R0
3、寄存器移位寻址:使用了移位指令
MOV R0,R2,LSL,#3;将R2的值左移3 位,结果放入R0
ANDS R1,R1,R2,LSL,#3;将R2的值左 移3位,然后与R1相加,结果放入R1
4、寄存器间接寻址:地址码是一个通用寄存器的编号
MOV R1,[R0];将R0指向的存储单元的数据 读出并保存在R1中
SWP R1,R1,[R2];将寄存器R1的值和R2指 向的存储单元的数据进行交换,结果保存在R1中
5、基址寻址:将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址
LDR R2,[R3,#0x0C];读取R3+0x0C地址的 存储单元的内容,放到R2
STR R1,[R0,#-4];将R0-4,然后将R1的值 保存到R0指定的存储单元
6、相对寻址(了解)
7、多寄存器寻址:多寄存器寻址一次可以传送几个寄存器值
LDMIA R1!,{R2~R7,R12};将R1指向的单元 中的数据读出到R2~R7,R12中,R1自动加1
STMIA R0!,{R2~R7,R12};将寄存器 R2~R7,R12中的值保存到R0指向的存储单元中,R0自动加1
8、堆栈寻址(了解)
3、ARM指令集介绍
3.3.0 数据处理指令(3类)
1、数据传送指令:可用于移位运算等操作 MOV 目标寄存器,操作数 MVN 目标寄存器,操作数(取反)
2、算术逻辑运算指令 OpCode 结果寄存器,运算寄存器,第二操作数 ADD,ADC(带进位加法),SUB,RSB(逆向减法), SBC(带进位减法),RSC(带进位逆向减法),AND,ORR, EOR,BIC(位清除)
3、比较指令 OpCode 运算寄存器,操作数 CMP,CMN(负数比较),TST(位测试),TEQ(相等测试)
3.3.1 乘法指令
1、32位乘法指令 MUL 目标寄存器,运算寄存器,第二操作数
MUL R3,R2,R1;R3=R2 x R1
2、乘加法指令 MLA 目标寄存器,运算寄存器1,运算寄存器2,第二操作数
MLA R3,R2,R1,R0;R3=R2 x R1 + R0
3.3.2 分支指令
1、直接向PC寄存器赋值实现跳转
MOV PC,R14
2、使用分支指令直接进行跳转
B:分支指令
BL:带链接的分支指令
BX:带状态切换的分支指令
3.3.3 程序状态寄存器访问指令
1、状态寄存器读指令MRS
MRS R1,CPSR;读取CPSR状态到R1 MRS R2,SPSR;读取SPSR状态到R2
2、状态寄存器写指令MSR MSR PSR_filed ,操作数
状态位域:s
扩展位域:
x 条件标志位域:
f 控制位域:c(常考)
MSR CPSR_c ,R0;将R0的内容写入CPSR寄存器的控制位 域
3.3.5 ARM软中断指令
SWI指令,处理器将完成以下操作: 1、将切换到管理模式; 2、将CPSR备份到管理模式下的SPSR寄存器; 3、程序跳转到软中断入口
3.3.6 ARM存储器访问指令
1、单寄存器操作指令 LDR/STR 即装载/存储 LDR R2,[R5];将R5指向地址的字数据存入R2 STR R1,[R2,#0x04];将R1的数据存储到R0+0x04地址
2、多寄存器加载/存储指令 LDM/STM LDMIA R1,[R0-R4,R6];将R1指向的内存数据读取到R0- R4,R6寄存器中
3、寄存器和存储器交换指令 SWP SWP Rd,Rm,Rn;先[Rn]<-Rm,然后Rd<-[Rn]
3.3.7 ARM协处理器指令 略;仅作了解,不考;
3.3.8 ARM伪指令
ARM伪指令不属于ARM指令集中的指令,是为了编程方便而定 义的
1、LDR:大等范围地址读取指令
2、ADRL:中等范围地址读取指令
3、ADR:小范围地址读取指令
4、NOP:空操作指令
问题与思考(简答题)
1、MOV指令与LDR指令都是往目标寄存器中传送数据,但是他们有什么区别?
MOV指令用于将数据从一个寄存器传送到另一个寄存器, 或者将一个常数传送到一个寄存器中,但是不能访问内存; LDR用于从内存中读取数据放入寄存器中。
2、LDR伪指令与LDR加载指令的区别
LDR加载指令是CPU指令,完成实质性的数据传送,用于 从内存中加载数据到寄存器; LDR伪指令是汇编指令,完成汇编阶段的数据传送,用于 将一个立即数读取到相应的寄存器中,需要用等号来连接地 址值
习题中总结
1、多寄存器访问指令寄存器的序号,从小到大,不能乱序 例如:LDMIA R0!,{R5-R8,R2} -->错误
2、多寄存器访问指令
LDM(IA,IB,DA,DB)
IA-传送后地址加4
IB-传送前地址加4
DA-传送后地址减4
DB-传送前地址减4
STM(IA,IB,DA,DB)
IA-传送后地址加4
IB-传送前地址加4
DB-传送后地址减4
DA-传送前地址减4
3、HI与LS
HI:无符号大于
LS:无符号小于
例如:当R1>R2时,R1加1,否则R2加1
CMP R1,R2
ADDHI R1,R1,#1
ADDLS R2,R2,#1
4、NE和EQ
NE:不相等 EQ:相等
例如:即如果R0不等于20并且R1不等于30 则R0=R0 + R1 CMP R0,#20 CMPNE R1,#30 ADDNE R0,R0,R1
MOVCS 大于 助记符 +(条件) 目的寄存器,操作数 MOVCC 小于
第四章 ARM7汇编语言程序
1、ARM7汇编语言程序结构格式
1.1.0 汇编语言的基本概念
1、机器语言:由0和1二进制代码表示和存储的指令与数据 优点:能被机器直接识别和执行;占用内存空间少 缺点:难认、难记、难编、易错
2、汇编语言:面向物理层操作的计算机语言,采用助记符 表示指令的程序设计 特点:占用内存空间少,执行速度快
3、高级语言:脱离机器的通用语言,不依赖于特定的计算 机结构与指令系统 缺点:代码较长,占用内存空间多,执行时间较长
1.1.1 ARM7汇编语言程序框架
1、ARM汇编程序由段组成(数据段、程序段)
2、段是由AREA定义的相对独立程序块
3、段有两种属性:只读(readonly),读写(readwrite)
4、标识符(标号):通常以字母开头,以字母、数字、下 划线组成,不能与关键字同名,在一行的开头书写,不能留 空格
2、ARM7汇编语言程序中的符号
2.2.0 符号命名规则
1、由字母、数字、下划线组成
2、区分大小写
3、符号应具有唯一性
4、不能与伪指令或指令同名
2.2.1 常量
在程序运行过程中,其值不能发生改变的量 分为如下4类: 数值常量、逻辑常量、字符常量、字符串常量
2.2.2 变量
在程序运行过程中,其值可以发生变化的量 分为如下4类: 数值变量、逻辑变量、字符变量、字符串变量
3、ARM7汇编器伪指令
3.3.0 符号定义伪指令
1、全局变量定义伪指令
GBLA:定义一个全局的数值变量,初始化为0
GBLL:定义一个全局的逻辑变量,初始化为F
GBLS:定义一个全局的字符串变量,初始化为空
例如: GBLA A1; A1 SETA 0x0F;
2、局部变量定义伪指令
LCLA:定义一个局部的数值变量,初始化为0
LCLL:定义一个局部的逻辑变量,初始化为F
LCLS:定义一个局部的字符串变量,初始化为空
例如: LCLL A2; A2 SETL {TRUE};
3、变量赋值伪指令
SETA:给一个数值变量赋值
SETL:给一个逻辑变量赋值
SETS:给一个字符串变量赋值
4、寄存器列表定义伪指令(了解) 略
3.3.1 数据定义伪指令(列举三个常考的)
1、DCB:用于分配一片连续的字节存储单元,后面的表达式 可以为0-255的数值或者字符串 例如:datanum DCB 1,2,3,4,5,6,7,8,9; str DCB “helloworld”; LDRB – DCD LDR – DCB 定义数据段
AREA dataa,DATA,READWRITE num DCD 1,2,3
2、DCW:用于分配 一片连续的半字存储单元 例如:datanum DCW 1,2,3;
3、DCD:用于分配一片连续的字存储单元 例如:datanum DCD 4,5,6; 3.3.2 ARM7汇编控制伪指令(仅作了解) 1、IF,ELSE,ENDIF 2、WHILE,WEND …
略
3.3.3 杂项汇编器伪指令(重点)
1、AREA用于定义一个代码段、数据段或特定属性的段
AREA 段名 ,属性1,属性2 例如:AREA init,CODE,READONLY 定义一个段名为init 的代码段,只读 AREA stock DATA,READWRITE 定义一个段名为 stock的数据段,读写
2、CODE16和CODE32 CODE16:通知编译器,其后面的指令序列为16位的Thumb指 令CODE32:通知编译器,其后面的指令序列为32位的ARM指令 3、ENTRY 用于指定汇编程序的入口点
5、END 用于通知编译器已经到了源程序的结尾
6、EQU 为程序中的常量、标号等定义一个等效的字符名称,类似于 define 例如:TEST EQU 50; 定义TEST的值为50
7、EXPORT(GLOBAL) 用于在程序中声明一个全局标号
8、IMPORT 用于通知编译器其使用的标号在其他的源文件中定义,但需要引用
9、GET(INCLUDE) 用于将一个源文件包含到当前的文件夹中,被包含的源文件 要在当前位置进行汇编处理
10、INCBIN 用于将一个目标文件或数据文件包含到当前的文件夹中,但 不需要进行编译处理,编译器从其后开始继续处理
4、ARM7汇编语言程序的上机过程
4.4.0 上级流程(仅作了解)
建立工程–>添加文件–>编译连接程序–>调试程序
5、ARM7汇编语言程序设计
5.5.0 汇编语言程序设计的步骤
分析问题–>确定算法–>设计程序流程图–>合理分配寄存 器、存储空间和外设资源–>编制程序–>调试程序–>形成 文档
5.5.1 程序设计的方式(了解)
顺序程序设计、分支程序设计、循环程序设计、子程序设计
6、C语言和ARM7汇编语言的混合/交叉编程(了解)
作业题目设计
1、给出10个数据,找出其中的最大数与最小数
AREA INIT,CODE,READONLY
ENTRY
LDR R0,=DATA
MOV R5,#9
LDR R7,[R0]
LDR R6,[R0]
START
ADD R0,R0,#4
LDR R1,[R0]
SUB R5,R5,#1
CMP R7,R1
MOVCC R7,R1
CMP R6,R1
MOVCS R6,R1
CMP R5,#0
BNE START
DATA
DCD 1,3,4,6,8,2,7,5,9,0
END
2、编程实现两种求和运算,1+2+3+…+100;按条件求和运算,1+2+3+…+N>1000
(1) AREA SUM,CODE,READONLY
ENTRY
MOV R0,#0
MOV R1,#1
START
ADD R0,R0,R1
ADD R1,R1,#1
TEQ R1,#101
BNE START
END
(2) AREA SUM,CODE,READONLY
ENTRY
MOV R0,#0
MOV R1,#1
START
ADD R0,R0,R1
ADD R1,R1,#1
CMP R0,#1000
MOVCS R4,R1
BNE START
END
3、统计任意字符串包含的字符个数,字符串以0为 结束标志
AREA NUM,CODE,READONLY
ENTRY
LDR R0,=ARRAY
MOV R3,#0 LDRB R1,[R0]
CMP R1,#0
BEQ EED
LOOP
ADD R3,R3,#1
ADD R0,R0,#1
LDRB R1,[R0]
CMP R1,#0
BNE LOOP
EED
LDR R4,=ANS
STR R3,[R4]
STOP
B STOP
ARRAY DCB "ASDF456ASD"
AREA ST,DATA,READWRITE
ANS DCD 0
END
第五章 LPC2000系列微控 制器组成与中断技术
1、LPC2000系列
1.1.0 简介
ARM系列种类繁多,以一般控制类芯片为主,以及LPC2000系 列为主,进行介绍
1、LPC2100系列芯片:支持实时仿真,并且带有一个高速 Flash存储器 主要特点(了解): Flash存储器、片内SRAM、CAN接口
2、LPC2200系列芯片:略
2、芯片内部结构
2.2.0 芯片内部结构
三种总线:局部总线、AHB总线、VPB总线
3、存储器结构
3.3.0 存储器映射
概述:ARM芯片存储器分为片内和片外,存储器本身不具有 地址信息,由厂家和用户分配,给物理存储器分配逻辑地址 的过程称为存储器映射
ARM7微处理器的存储器的映射空间:
0x00000000- 0xFFFFFFFF 起始地址: FLASH–0x00000000 SRAM–0x40000000 外部存储器–0x80000000 VPB–0xE0000000 AHB–从0xFFFFFFFF回头
3.3.1 片内存储器
1、片内FLASH程序存储器
2、片内静态RAM:可以用作代码/数据的存储 SRAM支持8 位、16位、32位的读写访问
3.3.2 片外存储器
概述:在CPU外部扩展连接的存储器芯片称为片外存储器
3.3.3 存储器重映射及引导块(简答) 略;
3.3.4 启动代码相关部分 略;
4、系统控制模块
4.4.0 简介
概述:某些部件是全局性的,它们状态的改变可能会引起整 个系统运行状态的改变,这些部件统一称为系统控制模块
4.4.1 时钟系统
概述:时钟是计算机系统的脉搏,对于一个计算机系统是相 当重要的
结构:晶体振荡器、唤醒定时器、锁相环(PLL)、VPB分频 器(考点)
4.4.2 功率控制(略过)
4.4.3 复位(略过)
5、中断技术(重点)
5.5.0 中断概念
计算机正在执行正常程序过程中,当出现某种异常事件或某 种外部请求时,处理器就暂停执行当前的程序,而转去执行 对异常事件或某种外部请求的处理操作。当处理完毕后, CPU再返回到被暂停执行的程序,继续执行,这个过程称为 中断。主程序被打断的地方称为断点。
5.5.1 中断源及管理
中断源:指引起中断的原因或发出中断请求的来源,可以分 为硬件中断源和软件中断源
中断优先级:当同时发生多个中断时,CPU按一定的次序响 应处理,这个响应次序被称为中断优先级
中断请求处理原则: 1、高优先级大于低优先级 2、高优先级中断处理时,可以不必理会低优先级中断 3、同级别的中断,按照执行次序处理
中断优先级的确定次序: 1、软件查询法 2、硬件排队电路法3、专用中断控制电路法
5.5.2 中断处理过程(5个步骤)
1、中断请求 2、中断响应 3、断点保护 4、中断处理 5、中断返回
6、向量中断控制器
6.6.0 向量中断分类
1、IRQ中断
2、FIQ中断 向量中断控制器:VIC,负责管理芯片的中断源,最多可以 管理32个中断输入请求,16个IRQ中断和1个非向量中断
6.6.1 向量中断结构
6.6.2 向量中断寄存器
6.6.3 向量中断的处理过程文章来源:https://www.toymoban.com/news/detail-615357.html
习题总结
1、处理器与外设交换的信息有:数据信息、状态信息、控 制信息
2、IRQ中断的向量入口地址:0x00000018
3、配备中断时:定时中断到slot0,外部中断到slot1,串 口中断到slot2
4、ARM7中VIC管理三类中断:FIQ最高优先级、向量IRQ中 等优先级、非向量IRQ最低优先级
4、中断处理过程:中断请求、中断响应、断点保护、中断 处理、中断返回 5、多个中断源确定优先级的方法:软件查询法、硬件排队 电路法、专用中断控制电路法
6、BootBlock功能组判断用户代码有效:中断向量表中前8 个字的累加和为0 7、LPC2000系列微控制器的时钟系统:晶体振荡器、唤醒 定时器、锁相环(PLL)、VPB分频器
8、中断向量:中断处理程序入口地址
9、ARM7片内Flash编程方法:JTAG仿真、ISP、IAP
10、AHB连接的总线为:VIC、EMC
11、ARM7内部通过局部总线连接的存储器:SRAM,FLASH
12、LPC2100系列与LPC2200系列处理器最主要的区别?
采用的内核和资源配置上不同;LPC2100系列处理器仅 有P0和P1端口,管脚数目少,不能进行外部存储器的扩展; LPC2200系列具有P0、P1、P2、P3四个端口,且P3和P4端口 可以进行外部存储器的扩展文章来源地址https://www.toymoban.com/news/detail-615357.html
第六章 LPC2000系列微处 理器外设接口
到了这里,关于西邮嵌入式系统复习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!