从51到ARM-32位嵌入式系统入门-第3章-ARM7TDMI简介.
- 格式:doc
- 大小:37.00 KB
- 文档页数:2
ARM嵌入式系统基础教程嵌入式系统是一种特殊的计算机系统,它被设计用于特定任务或功能,通常是实时的,并在自己的硬件平台上运行。
它主要用于各种行业和应用领域,如消费电子产品、汽车、医疗设备和工业自动化。
ARM(Advanced RISC Machines)是一种广泛使用的微处理器架构,它在嵌入式系统中被广泛采用。
ARM处理器具有低功耗、高性能和小尺寸的特点,使其成为选择嵌入式系统的首选。
嵌入式系统基础教程将介绍ARM嵌入式系统的基本概念和技术,帮助读者快速入门。
首先,教程将介绍嵌入式系统的基本原理和组成,包括处理器、内存、输入/输出设备和操作系统。
读者将了解这些组件之间的相互作用,如何选择合适的组件以满足应用需求。
接下来,教程将深入探讨ARM处理器的架构和指令集。
读者将了解ARM处理器的工作原理、寄存器和指令集,并学习如何编写ARM汇编程序。
教程将通过实际的例子和练习来帮助读者理解和应用这些概念。
此外,教程还将介绍嵌入式软件开发的基本知识和工具。
读者将学习如何使用开发工具链,如编译器、调试器和仿真器,以及如何编写嵌入式软件程序。
教程还将探讨软件开发过程中常见的问题和调试技巧。
最后,教程将介绍一些实际的应用案例,如智能家居系统、机器人和无人机。
读者将学习如何设计和实现这些系统,并了解他们在实际应用中的用途和挑战。
总之,ARM嵌入式系统基础教程旨在帮助读者理解和应用嵌入式系统和ARM处理器的基础知识。
通过学习本教程,读者将能够开始设计和开发自己的嵌入式系统,并在各种应用领域中应用它们。
教程提供了理论知识和实际案例相结合的学习方式,使读者能够迅速上手并应用所学知识。
第1章嵌入式系统概述(1)举出3个本书中未提到的嵌入式系统的例子。
答:键盘、鼠标、扫描仪,机顶盒,数字空调。
(2)什么叫嵌入式系统?答:以应用为中心,计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本体积功耗严格要求的专门计算机系统(4)什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。
原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。
3.充分发挥了32位CPU的多任务潜力。
第2章ARM7体系结构1.基础知识(1)ARM7TDMI中的T、D、M、I的含义是什么?答:64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)·EmbededICE 观察点硬件(带I 后缀的)(2)ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:3级(取指译码执行);冯·诺依曼结构,指令和数据共用一条32 位总线。
(3)ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式是处理器在执行程序时在不同时刻所处的不同状态;ARM处理器状态处理器当前所执行的指令集。
(5)PC和LR分别使用哪个寄存器?答:PC:R15;LR:R14。
(6)R13寄存器的通用功能是什么?答:作为堆栈指针SP。
用于保存堆栈出入口处地址。
(7)CPSR寄存器中哪些位用来定义处理器状态?答:控制位T反映了正在操作的状态。
(位31~28:N、Z、C、V,条件代码标志位;27~8:保留位;7~0:I、F、T、M4~0,控制标志位。
)2.存储器格式答:无论是大端格式还是小端格式,R2的值与R1一致;地址0x4000单元的字节:大端:0x12、小端:0x78。
第3章ARM7TDMI(-S)指令系统1.基础知识(1)ARM7TDMI(-S)有几种寻址方式?“LDR R1,[R0,#0x08]”属于哪种寻址方式?答:有9种寻址方式:1.寄存器寻址 2.立即寻址 3.寄存器移位寻址 4.寄存器间接寻址 5.基址寻址 6.多寄存器寻址7.堆栈寻址8.相对寻址;9 块拷贝寻址“LDR R1,[R0,#0x08]”属于基址寻址。
ARM嵌入式系统基础教程(第2版)第1章嵌入式系统概述1.1.2 嵌入式系统的定义及特点嵌入式系统源于微型计算机,是嵌入式到对象体系中,实现嵌入对象智能化的计算机。
是嵌入到对象体系中的专用计算机应用系统。
1.2.2 嵌入式系统的分类1.嵌入式微处理器(Embedded Microprocessor Unit,EMPU)2.微控制器(Microcontroller Uint,MCU)3.DSP处理器(Digital Signal Processor,DSP)4.片上系统(System on Chip,SoC)1.3.2 嵌入式操作系统基本概念1.前后台系统2.操作系统3.实时操作系统4.代码的临界区5.资源6.共享资源7.任务8.任务切换9.内核10.调度11.非占先式内核12.占先式内核13.任务优先级14.中断15.时钟节拍1.3.5常见的嵌入式实时操作系统1.uClinux2.Windows CE3.VxWorks4.uC/os-II思考:1.什么叫嵌入式系统?嵌入式系统:嵌入到对象体系中的专用计算机应用系统。
2.什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。
嵌入式系统的分类1)嵌入式微处理器(Embedded Microprocessor Unit,EMPU)2)微控制器(Microcontroller Uint,MCU)3)DSP处理器(Digital Signal Processor,DSP)4)片上系统(System on Chip,SoC)第2章ARM7体系结构2.2 ARM7TDMI2.2.1存储器的字与半字2.4 ARM处理器状态2.5 ARM处理器模式处理器模式说明备注用户(usr)正常程序运行的工作模式不能直接从用户模式切换到其他模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有直接切换到其他模式等特权异常模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和(或)存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真的硬件协处理只有在未定义指令异常响应时,才进入此模式中断(irq)中断请求处理只有在IRQ异常响应时,才进入此模式快速中断(fig) 快速中断请求处理只有在FIQ异常响应时,才进入此模式2.6.1ARM状态下的寄存器3.堆栈指针R13(SP)堆栈操作通常发生在子程序调用、异常发生或者程序运行过程中存储器数量不够时。
ARM嵌入式系统系列教程内容安排ARM嵌入式系统系列教程内容安排类别:嵌入式系统本书为《ARM嵌入式系统系列教程》中的理论课教材。
尽管一般情况下嵌入式系统对CPU处理能力的要求比个人电脑的要低,但随着人们生活水平的提高和技术的进步,嵌入式系统对CPU处理能力的要求也在稳步提高,大量高速、与MCS51体系结构兼容的微控制器的出现就证明了这一点。
但8位微控制器受限于体系结构,处理能力的提高始终有限;而16位系统在性能上与8位机相比始终没有太大优势,成本上与32位系统相比也没有什么优势。
因此,在可预见的未来,32位系统必然在嵌入式微控制器中占据重要位置。
基于ARM体系结构的32位系统占领了32位嵌入式系统的大部分份额。
但长期以来,基于 ARM体系结构的32位系统仅在嵌入式系统的高端(如通信领域、PDA)等场合使用,要么以专用芯片的面貌出现,要么以微处理器的面貌出现,并没有出现性价比高的通用微控制器。
PHILIPS公司发现了这一空档,推出了性价比很高LPC2000系列微控制器,让更多的嵌入式系统具有32位处理能力,这也预示着32位系统即将成为嵌入式系统的主流。
基于ARM体系结构的芯片在中国推广已有数年,关于ARM的图书也已出版不少。
关于ARM的图书主要有以下几类: 1.关于ARM内核的图书,主要读者是芯片设计者,内容主要是介绍芯片设计。
2.芯片应用类图书,主要读者为应用工程师。
3.开发板类图书,主要介绍相应的ARM开发板,给应用开发者一些参考。
以上3类图书的侧重点都不是针对 ARM应用开发教学的,用于大学本科和研究生教学不太适合。
为了满足高等院校教学的要求,我们编写了本套《ARM嵌入式系统系列教程》。
本册书为本套教程中的理论课教材。
本教材各章节内容安排如下:第1章——嵌入式系统概述。
主要简单介绍嵌入式系统,包括对嵌入式系统的概念、嵌入式处理器和嵌入式操作系统的简要介绍。
第2章——嵌入式系统工程设计。
介绍嵌入式系统项目开发的生命周期,并针对开发团队介绍各个阶段需要完成的任务。
1:寄存器的5种移位方式
1>LSL(逻辑左移)
1>这种移位相当于寄存器的乘法
2>右端空出来的位补0,左端移出的最后一位到CPSR的C位上
―――――――
▲▲▲注意:这种移位相当于寄存器的乘法,乘以2的N次幂
2> LSR(逻辑右移)
1>这种移位相当于寄存器的除法▲▲▲
2>左端空出的为补0,最后移出的一位放在了CPSR的C位上
3> ROR(循环右移)
1>向右移位,移出的位填补到左端的空位
2>最后移出的那位也移出到C位
4> ASR(算术右移)
1>向右移位,移出的位丢失,最左端的位始终保持不变
2>最后移出的位放在程序状态寄存器的C位
注意:这种移位对于有符号数据使用时可以保持符号位不变,最高位为1的负数永远是负数,
最高位为0的整数永远总是整数。
5:RRX(扩展的循环右移)
1>只右移一位
2>左侧空出的位由C位来填补
3>移出的一位来填补C位
注意:只能移动一位
2:算术右移的求值
用8位补码表示整数-126的机器码算术右移一位后的结果是多少?
解答:126的源码二进制表示:0 1 1 1 1 1 1 0
-126的源码表示:1 1 1 1 1 1 1 0
-126的补码表示:1 0 0 0 0 0 1 0 (取反加1)
算术右移一位:1 1 0 0 0 0 0 1 (补码形式)
编程源码形式:1 0 1 1 1 1 1 1 (源码形式)
――> 十进制=-63
1 0 1 0 0 1 0 0
0 1 0 0 1 1 0 1
1 1 1 0 1 1 0 1
3:在ARM中表示内存寻址的方法是:[ ]
4:变址寻址应用的场合
当多个数据存放于同一个存储区形成数组或表格时,这些数据地址都是紧邻的。
当对这样的数据进行操作时,可以用变址寻址的方法。
5:注意
寄存器间址寻址是变址寻址的一个特例
6:前索引和后索引的寻址区别
1> 后索引:LDR R0, [R1], #4 /* LDR R0, [R1] R1=R1+4 */
2> 前索引:LDR R0, [R1,#4] /* [R1+4] -> R0
7:多寄存器寻址
LDMIA R2, {R3,R5-R7}
详细过程:
R3 ← [R2]
R5 ← [R2+04]
R6 ← [R2+08]
R7 ← [R2+12]
STMDB R1, {R3-R6,R8}
R3 → [R1]
R4 → [R1+04]
R5 → [R1+08]
R6 → [R1+12]
R8 → [R1+16]
注意:在传送过程中,R1自动+4,但是当传送完毕后,R1还是原来的值8:ARM堆栈的几种形式
1> FA :满递增
2> FD :满递减
3> EA :空递增
4> ED :空递减
―――――――
满堆栈:堆栈指针指向最后入栈的位置
空堆栈:堆栈指针指向下一个入栈的位置
增堆栈:数据入栈时,堆栈指针是增加的
减堆栈:数据入栈时,堆栈指针是递减的。