《ARM体系结构》课程教学大纲
第一讲 ARM体系结构及ARM指令介绍
加广阔; 嵌入在复杂SoC中、基于ARM核的调试系统代表着当今
片上调试技术的前沿。
共四十八页
ARM技术 特点 (jìshù)
现代SoC和处理器核设计的基本原理都在基 于ARM核的SoC设计和ARM系列处理器中 得到使用;
ARM系列芯片已经被广泛的应用(yìngyòng)于移动电话、手持
式计算机以及各种各样的嵌入式应用(yìngyòng)领域,成为世
界上销量最大的32位微处理器。
共四十八页
ARM — 致力于设计(shèjì)数字世界的应用技术
Thumb-2 technology ARM11™ family
MPCore™
1975年IBM公司投资亿美元研制的高速 机器FS机,最终以“复杂结构不宜构成 高速计算机”的结论(jiélùn),宣告研制失败。
共四十八页
计算机体系结构的发展(fāzhǎn)
•
CISC存在的多方面的缺点(quēdiǎn)
20%与80%的问题 指令复杂度对处理器的VLSI实现
性能的影响
软硬件的协同设计问题
20世纪90年代, ARM快速进入世界市场
共四十八页
ARM发展 的历程 (fāzhǎn)
在ARM的发展历程中,从ARM7开始,ARM 核被普遍认可和广泛使用
1995年 StrongARM 问世 XScale是下一代StrongARM芯片的发展基础 ARM10TDMI是ARM处理器核中的高端产品
共四十八页
ARM体系结构的发展历史和技术(jìshù)特 征
ARM处理器已经占据了绝大部分32、64 位高端嵌入式处理器的市场,形成了移 动通信、手持计算、多媒体数字消费等 嵌入式解决方案事实上的标准。
1、ARM体系结构精品课件
(5)低电压功耗的设计
考虑到ARM体系结构的处理器主要用于手持式嵌入式系 统中,ARM体系结构在设计中就十分注意功耗的设计
(6)RISC型处理器结构
ARM采用RISC结构,在简化处理器结构,减少复杂功能 指令的同时,提高了处理器的速度
ARM 流水线结构
为了提高处理器的运行效率,ARM采用典型的多级 流水线结构
2、建立工程
• 新建工程:
MDK使用
• 把该工程存放在刚刚建立的 Prj子文件夹下
3.选择使用器件型号
MDK使用
• 选择S3C2440A器件,确定后会询问是否添加 start 代码,选择 否
开发流程
• 新建一个工程,从设备库中选择目标芯片,配置编译器环 境。
• 用C或汇编语言编写源文件。 • 编译目标应用程序 • 修改源程序中的错误 • 测试连接应用程序
MDK使
1、建立目录
用
• 建立文件夹:TEST存放整个工程项目 。
• 在该项目文件夹下建立子文件夹存放不同类别 的文件。
• Prj:存放工程文件 • Out:存放编译输出文件 • Source:存放源代码文件
第三个数字:Memory size
0: 标准Cache (4-128KB) 2: 减小的Cache 6: 可变的Cache
ARM体系结构定义了7种处理器模式:用户(usr)、快中断 (fiq)、中断(irq)、管理(svc)、终止(abt)、未定义(und)和系统 (sys),大大提高了ARM处理器的效率
第一章
ARM体系结构
本章目标
• 了解嵌入式系统的基本知识 • 了解ARM基本知识 • 掌握MDK开发工具的基本使用 • 掌握ARM体系结构 • 掌握ARM存储系统 • 掌握ARM处理器模式 • 掌握ARM各个模式下各寄存器的含义 • 掌握ARM异常处理流程
ARM体系结构PPT学习课件
运用ARMv8指令集的产品: ARM 12年十月发布了Cortex-A53 and CortexA57 核心。 13年苹果基于V8架构的Apple 7使用在了iPhone 5S上。
ARM V1~V3版本的处理器未得到大量应用,ARM 处理器的大量广泛应用是从其V4版本开始的
V7系列CPU被称作CorTex系列 到目前V8是最新的版本, 可以选择64或32执行 状态。64执行状态针对64位处理技术,引入了一个 全新指令集A64,可以存取大虚拟地址空间。
第2章 ARM体系结构
Copyright@2015lsh
成立于1990年11月
前身为 Acorn计算机公司
主要设计ARM系列RISC处理器内 核
授权ARM内核给生产和销售半导 体的合作伙伴
ARM 公司不生产芯片
另外也提供基于ARM架构的开发 设计技术
软件工具, 评估板, 调试工具,应用 软件,总线架构, 外围设备单元,等 等
第2章 ARM体系结构
--- ARMv4T
Chengdu University of Information Technology
8
•ARMv4T增加了16-bit Thumb 指令集,这样使得编 译器能产生紧凑代码(相对于32-bit代码,内存能节 省到35%以上)并保持32-bit系统的好处。 •Thumb在处理器中仍然要扩展为标准的32位ARM指 令来运行。用户采用16位Thumb指令集最大的好处就 是可以获得更高的代码密度和降低功耗。
✓ Profile R是针对实时系统的
《ARM体系结构》PPT课件
RISC与CISC
CISC
博创科技 嵌入互动
开始
IF
ID
ALU MEM REG
退出
RISC
微操作通道
开始
IF
ID
REG ALU MEM
单通数据通道
© 2005 博创科技
退出
流水线操作
流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动
博创科技 嵌入互动
Add
取指
ARM CPU核(ARM CPU Cores):ARM710T/720T/740T, ARM920T/940T, ARM946E-S, ARM966E-S, ARM1020E等。
基于ARM Core CPU的应用处理器,比如:Intel的PXA25x,Philip的lpc22xx系列, Samsung的S3C44B0等。
© 2ห้องสมุดไป่ตู้05 博创科技
1.2 ARM处理器的使用量
博创科技 嵌入互动
© 2005 博创科技
ARM 2003
1.3 ARM处理器的特点
支持CACHE和MMU CACHE的冯·诺依曼体系结构/哈佛体系结构 RISC指令集
固定的32位指令 Load/Store体系结构 大多数指令单周期完成 流水线执行 Thumb\DSP\jazeller功能扩展 低功耗
Sub Cmp
时间
译码 取指
执行add 译码 取指
执行sub 译码
执行cmp
© 2005 博创科技
1.4 命名的含义
博创科技 嵌入互动
标志 T
D M I E J S
含义 支持Thumb指令集
片上调试 支持长乘法 Embedded ICE DSP指令 Java加速器Jazelle
ARM体系结构与编程教学大纲
课程编号:08060400ARM体系结构与编程ARM Architecture and Programming总学时:32总学分:2 课程性质:专业课开设学期及周学时分配:第5学期;2学时/周适用专业及层次:软件工程专业(嵌入式方向)本科相关课程:微机原理;单片机;C语言;C++教材:《ARM体系结构与编程》,杜春雷译,清华大学出版社,2005年推荐参考书:《ARM嵌入式系统结构与编程》,清华大学出版社,2009年;《嵌入式系统——体系结构、编程与设计》,清华大学出版社,2010年。
一、课程目的及要求ARM是业界嵌入式开发的通用体系,产检产品几乎都是采用了ARM体系的MCU。
本课程主要介绍ARM的体系结构、ARM开发语言、开发平台以及基于ARM的编程。
通过本课程的学习,使学生能够理解基本的嵌入式开发流程、开发使用的工具,掌握嵌入式产品的开发方法及编程。
二、课程内容及学时分配第1章 ARM概述及其基本编程模型(2课时)1. 1 ARM技术的应用领域及其特点1. 2 ARM体系结构的版本及命名方法1. 2. 1 ARM体系结构的版本1. 2. 2 ARM体系的变种1. 2. 3 ARM/Thumb体系版本的命名格式l. 3 ARM处理器系列1. 3. 1 ARM7系列1. 3. 2 ARM9系列1. 3. 3 ARM9E系列1. 3. 4 ARM1OE系列1. 3. 5 SecurCore系列l. 4 ARM处理器模式1. 5 ARM寄存器介绍1. 5. l 通用寄存器1. 5. 3 程序状态寄存器1. 6 ARM体系的异常中断1. 6. 1 ARM中异常中断种类1. 6. 2 ARM处理器对异常中断的响应过程1. 6. 3 从异常中断处理程序中返回1. 7 ARM体系中存储系统1. 7. 1 ARM体系中的存储空间1. 7. 2 ARM存储器格式1. 7. 3 非对齐的存储访问操作1. 7. 4 指令预取和自修改代码第2章 ARM指令分类及其寻址方式(2课时)2. 1 ARM指令集概要介绍2. 1. 1 ARM指令的分类2. 1. 2 ARM指令的一般编码格式2. 1. 3 ARM指令的条件码域2. 2 ARM指令寻址方式2. 2. l 数据处理指令的操作数的寻址方式2. 2. 2 字及无符号字节的Load/Store指令的寻址方式2. 2. 3 杂类Load/Store指令的寻址方式2. 2. 4 批量Load/Store指令的寻址方式2. 2. 5 协处理器Load/Store指令的寻址方式第3章 ARM指令集介绍(4课时)3. 1 ARM指令集3. 1. l 跳转指令3. l. 2 数据处理指令3. 1. 3 乘法指令3. 1. 4 杂类的算术指令3. 1. 5 状态寄存器访问指令3. l. 6 Load/Store内存访问指令3. 1. 7 批量Load/Store内存访问指令3. 1. 8 信号量操作指令3. 1. 9 异常中断产生指令3. 1. 10 ARM协处理器指令3. 2 一些基本的ARM指令功能段3. 2. l 算术逻辑运算指令的应用3. 2. 2 跳转指令的应用3. 2. 3 Loacl/Store指令的应用3. 2. 4 批量Load/Store指令的应用3. 2. 5 信号量指令的应用3. 2. 6 与系统相关的一些指令代码段3. 3 Thumb指令介绍第4章 ARM汇编语言程序设计(4课时)4. 1 伪操作4. 1. l 符号定义伪操作4. 1. 2 数据定义伪操作4. 1. 3 汇编控制伪操作4. 1. 4 栈中数据帧描述伪操作4. 1. 5 信息报告伪操作4. 1. 6 其他的伪操作4. 2 ARM汇编语言伪指令4. 3 ARM汇编语言语句格式4. 3. 1 ARM汇编语言中的符号4. 3. 2 ARM汇编语言中的表达式4. 4 ARM汇编语言程序格式.4. 4. l 汇编语言程序格式4. 4. 2 汇编语言子程序调用4. 5 ARM汇编编译器的使用4. 6 汇编程序设计举例4. 6. 1 ARM中伪操作使用实例4. 6. 2 ARM中汇编程序实例第5章 ARM存储系统(3课时)5. 1 ARM存储系统概述5. 2 ARM中用于存储管理的系统控制协处理器CP15 5. 2. 1 访问CP15寄存器的指令5. 2. 2 CP15中的寄存器5. 3 存储器管理单元MMU5. 3. l 存储器管理单元MMU概述5. 3. 2 禁止/使能MMU5. 3. 3 MMU中地址变换过程5. 3. 4 MMU中存储访问权限控制5. 3. 5 MMU中的域5. 3. 6 关于快表的操作5. 3. 7 ARM中的存储访问失效5. 4 高速缓冲存储器和写缓冲区5. 4. 1 基本概念5. 4. 2 cache的工作原理和地址映像方法5. 4. 3 cache的分类5. 4. 4 cache的替换算法5. 4. 5 缓冲技术的使用注意事项5. 4. 6 存储系统的一致性问题5. 4. 7 cache内容锁定5. 4. 8 与cache和写缓冲区相关的编程接口5. 5 快速上下文切换技术5. 5. l 快速上下文切换技术原理5. 5. 2 快速上下文切换技术编程接口5. 6 与存储系统相关的程序设计指南5. 6. l 地址空间5. 6. 2 存储器格式5. 6. 3 非对齐的存储访问操作5. 6. 4 指令预取和自修改代码5. 6. 5 IMB5. 6. 6 存储器映射的I/O空间5. 7 AIOA存储系统的实例5. 7. 1 L7205的存储系统概述5. 7. 2 L7205中的SDRAM5. 7. 3 L7205中的 MMU第6章 ATPCS介绍(1课时)6. 1 ATPCS概述6. 2 基本ATPCS6. 2. l 寄存器的使用规则6. 2. 2 数据栈使用规则6. 2. 3 参数传递规则6. 3 几种特定的ATPCS6. 3. l 支持数据栈限制检查的ATPCS6. 3. 2 支持只读段位置无关(ROPI)的ATPCS6. 3. 3 支持可读写段位置无关(RWPI)的ATPCS6. 3. 4 支持ARM程序和Thumb程序混合使用的ATPCS6. 3. 5 处理浮点运算的ATPCS第7章 ARM程序和Thumb程序混合使用(1课时)7. 1 概述7. 2 在汇编语言程序中通过用户代码支持interwork7. 2. l 可以实现程序状态切换的指令7. 2. 2 与程序状态切换相关的伪操作7. 2. 3 进行状态切换的汇编程序实例7. 3 在C/C++程序中实现interwork7. 4 在汇编语言程序中通过连接器支持interwork7. 4. l 利用veneers实现汇编程序间的程序状态切换7. 4. 2 利用veneers实现汇编程序与C/C++程序间的程序状态切换第8章 C\C++以及汇编语言的混合编程(4课时)8. l 内嵌汇编器的使用8. 1. l 内嵌的汇编指令用法8. 1. 2 内嵌的汇编器和armasm的区别8. l. 3 在C\C++程序中使用内嵌的汇编指令8. 1. 4 内嵌汇编指令的应用举例8. 2 从汇编程序中访问C程序变量8. 3 汇编程序.C程序以及C++程序的相互调用8. 3. l 在C++程序中使用C程序头文件8. 3. 2 汇编程序.C程序以及C++程序的相互调用举例第9章异常中断处理(2课时)9. 1 ARM中异常中断处理概述9. 1. 1 ARM体系中异常中断种类9. 1. 2 异常中断向量表及异常中断优先级9. 1. 3 异常中断使用的寄存器9. 2 进入和退出异常中断的过程9. 2. 1 ARM处理器对异常中断的响应过程9. 2. 2 从异常中断处理程序中返回9. 3 在应用程序中安装异常中断处理程序9. 3. 1 在系统复位时安装异常中断处理程序9. 3. 2 在C程序中安装异常中断处理程序9. 4 SWI异常中断处理程序9. 4. 1 SWI异常中断处理程序的实现9. 4. 2 SWI异常中断调用9. 5 FIQ和IRQ异常中断处理程序9. 5. 1 IRQ/FIQ异常中断处理程序9. 5. 2 IRQ异常中断处理程序举例9. 6 复位异常中断处理程序9. 7 未定义指令异常中断9. 8 指令预取中止异常中断处理程序9. 9 数据访问中止异常中断处理程序第10章 ARM C/0++编译器(1课时)10. 1 ARM C/C++编译器概述10. 1. 1 ARM C/C++编译器及语言库介绍10. l. 2 ARM编译器中与搜索路径相关的一些基本概念10. 2 ARM编译器命令行格式10. 2. l 过程调用标准10. 2. 2 设置源程序语言类型10. 2. 3 指定搜索路径10. 2. 4 设置预处理选项10. 2. 5 设置输出文件类型10. 2. 6 指定目标处理器和ARM体系版本10. 2. 7 生成调试信息10. 2. 8 代码生成的控制10. 2. 9 控制警告信息的产生10. 2. 10 编译时进行的一些额外的检查10. 2. 11 控制错误信息10. 3 ARM编译器中的pragmas10. 4 ARM编译器特定的关键词10. 4. 1 用于声明函数的关键词10. 4. 2 用于声明交量的关键词10. 4. 3 用于限定数据类型的关键词10. 5 ARM编译器支持的基本数据类型10. 6 ARM编译器中预定义宏10. 7 ARM中C/C++库10. 7. 1 ARM中C/C++运行时库概述10. 7. 2 建立一个包含C/C++运行时库的C/C++应用程序10. 7. 3 建立不包含C运行时库的应用程序10. 7. 4 裁减C/C++运行时库以适应特定的目标运行环境第11章 ARM连接器(2课时)11. 1 ARM映像文件11. 1. 1 ARM映像文件的组成11. 1. 2 ARM映像文件的入口点11. 1. 3 输入段的排序规则11. 2 ARM连接器介绍11. 3 ARM连接器生成的符号11. 3. 1 连接器生成的与域相关的符号11. 3. 2 连接器生成的与输出段相关的符号11. 3. 3 连接器生成的与输入段相关的符号11. 4 连接器的优化功能11. 5 运行时库的使用11. 5. 1 C/C++运行时库与目标文件11. 5. 2 查找需要的C/C++运行时库11. 5. 3 选择合适种类的C/C++运行时库11. 5. 4 扫描C/C++运行时库11. 6 从一个映像文件中使用另一个映像文件中的符号11. 6. 1 symdefs文件11. 6. 2 建立symdefs文件11. 6. 3 symdefs文件的使用11. 7 隐藏或者重命名全局符号11. 7. l steering文件的格式11. 7. 2 steering文件中的命令11. 8 ARM连接器命令行选项11. 9 使用scatter文件定义映像文件的地址映射11. 9. l scatter文件概述11. 9. 2 satter文件中各部分介绍11. 9. 3 scatter文件使用举例第12章嵌入式应用程序示例(3课时)12. l 嵌入式应用程序设计的基本知识12. 1. 1 嵌入式应用系统中的存储映射12. 1. 2 系统初始化12. 2 使用semihosting的 C语言程序示例12. 2. 1 源程序分析12. 2. 2 生成映像文件12. 3 一个嵌入式应用系统示例12. 3. l 源程序分析12. 3. 2 生成映像文件12. 3. 3 本例中地址映射模式12. 4 进行ROM/RAM地址重映射的嵌入式应用系统12. 4. l 地址映射模式12. 4. 2 源程序分析12. 4. 3 生成映像文件12. 5 一个嵌入式操作系统示例第13章使用CodeWarrior(2课时)13. 1 CodeWarrior for ADS概述13. 2 简单工程项目的使用13. 2. 1 工程项目窗口13. 2. 2 简单工程项目的使用13. 3 配置生成目标13. 3. 1 Debug Settings对话框介绍13. 3. 2 设置牛成目标的基本选项13. 3. 3 汇编器选项设置13. 3. 4 编译器的选项设置13. 3. 5 连接器的选项设置13. 3. 6 fromELF工具的选项设置13. 4 复杂工程项目的使用13. 4. l 建立一个新的生成目标13. 4. 2 将一个生成目标更名13. 4. 3 建立生成目标之间的依赖关系13. 4. 4 子工程项目的使用13. 5 工程项目模板13. 5. 1 ADS中工程项目模板的使用13. 5. 2 建立用户工程项目模板13. 6 编译和连接工程项目13. 6. 1 编译文件13. 6. 2 生成工程项目第14章 ARM体系中的调试方法(1课时)14. 1 ARM体系中调试系统概述14. 2 基于Angel的调试系统14. 2. l 基于Angel的调试系统的概述14. 2. 2 使用Angel开发应用程序14. 2. 3 Angel执行的操作14. 2. 4 将Angel移植到特定的目标系统14. 3 基于JTAG的调试系统14. 3. l 基于JTAG的调试系统的特点14. 3. 2 基于JTAG的调试系统结构14. 3. 3 目标系统中的调试功能扩展部件14. 3. 4 基于JTAG的调试过程14. 4 ADW使用介绍14. 4. 1 ADW概述14. 4. 2 ADW中的窗口14. 4. 3 ADW使用介绍三、教学重点与难点第1章 ARM概述及其基本编程模型重点:ARM编程模型难点:异常中断处理第2章ARM指令分类及其寻址方式重点:ARM寻址方式难点:ARM指令寻址第3章ARM指令集介绍重点:ARM指令集难点:异常中断指令第4章ARM汇编语言程序设计重点:ARM汇编语言调用难点:ARM汇编语言设计第5章 ARM存储系统重点: ARM存储难点: MMU管理第6章ATPCS介绍重点:寄存器、数据栈、参数传递规则难点:特定的ATPCS第7章ARM程序和Thumb程序混合使用重点:ARM程序和Thumb程序混合难点:ARM程序和Thumb程序混合使用第8章C\C++以及汇编语言的混合编程重点:内嵌汇编器难点:汇编程序.C程序以及C++程序的相互调用第9章异常中断处理重点:异常中断向量表难点:异常中断响应第10章ARM C/0++编译器重点:ARM C/0++编译过程难点:ARM中C/C++库第11章ARM连接器重点:ARM连接器映像文件难点:从一个映像文件中使用另一个映像文件中的符号第12章嵌入式应用程序示例重点:嵌入式应用程序开发过程难点:ROM/RAM地址重映射的嵌入式应用系统第13章使用CodeWarrior重点:CodeWarrior使用难点:配置生成目标第14章ARM体系中的调试方法重点:基于JTAG的调试系统难点:bug定位四、主要教学方式本课程采用多媒体设备,结合板书形式进行教学。
ARM体系结构与编程教学大纲
《ARM体系结构与编程》课程教学大纲课程代码:060331005课程英文名称:ARM Architecture and Programming课程类别:专业基础课课程性质:必修适用专业:电子科学与技术课程总学时:40 讲课:40 实验:0 上机:0大纲编写(修订)时间:2017.11一、大纲使用说明(一)课程的地位及教学目的本课程主要介绍ARM的体系结构、ARM开发语言、开发平台以及基于ARM的编程。
通过本课程的学习,使学生能够理解基本的嵌入式开发流程、开发使用的工具,,使学生在学习理论的同时建立起整机的概念,并使学生掌握汇编语言的编程能力,可以进行底层设计,掌握嵌入式产品的开发方法。
(二)知识、能力及技能方面的基本要求(1)知识方面,以理解原理、具备编程能力为主,尽量避免过多或过复杂处理器的介绍,加强基本理论和基本设计方法的讨论。
(2)能力方面强调理论与实践结合:掌握CPU与内存的控制与连接、计算机与外部设备数据传送基本方法、掌握常用接口芯片的硬件结构、编程要点及使用方法;能够读懂接口电路原理图及相关的控制程序;能够根据设计要求设计常用接口电路,编写相应的程序;(三)实施说明参考学时为 40学时。
其中理论课32学时,实验课8学时。
1.教学内容:中央处理器的结构、指令集及工作原理及内存储器、各种接口芯片的结构与工作方式,讲解汇编语言程序设计的方法。
2.教学方法:采用启发式教学,提高学生分析问题和解决问题的能力。
鼓励学生通过实践和自学获取知识,培养学生的自学能力,调动学生自行设计的积极性和创新能力。
在实施中要展现新技术,但不能消弱基础知识和基本原理,培养学生理论联系实际,触类旁通的能力。
3.教学手段:本课程属于技术基础课,在教学中可采用电子教案、CAI课件及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。
4.大纲实施时应贯彻工程训练与工程教育相结合的特点,注重学生的能力培养和专业素质的提高,尤其是培养学生的实际动手设计和操作的能力。
第2章 ARM体系结构1(80)PPT课件
Slide 16
2.2 ARM微处理器结构
2.2.1 ARM7微处理器 2.2.2 ARM9微处理器 2.2.3 ARM9E微处理器 2.2.4 ARM10E微处理器 2.2.5 SecurCore微处理器 2.2.6 StrongARM微处理器 2.2.7 XScale微处理器
2020/10/31
16
A Free sample background from
Slide 17
2.2.1 ARM7微处理器
ARM7系列微处理器包括ARM7TDMI、ARM7TDMI-S、 ARM720T、ARM7EJ几种类型。其中,ARM7TMDI是目前 使用最广泛的32位嵌入式RISC处理器,主频最高可达130 MIPS;采用能够提供0.9MIPS/MHz的三级流水线结构;内嵌 硬件乘法器(Multiplier);支持16位压缩指令集Thumb;嵌 入式ICE;支持片上Debug;支持片上断点和调试点;指令系 统与ARM9系列、ARM9E系列和ARM10E系列兼容;支持 Windows CE、Linux、Palm OS等操作系统。典型产品如 Samsung公司的S3C4510B。
ARM Approved Design Centre (ARM样品设计中心) 众华
RTOS 公司(实时操作系统开发) 普天慧信,科银京成、北京凯思昊鹏、中科红旗,世纪科泰等
2004年9月7日,ARM北京分处成立:
科银京成和凯思昊鹏与ARM合作,开发支持JTEK和SWERVE技术 中芯国际拓展ARM代工计划,获ARM926EJ处理器0.13微米工艺授权 北京振戎融通与ARM合作,将JTEK集成在中国联通新一代Java环境中
于ARM体系结构的处理器,除了具有ARM体系结构的共同特
嵌入式系统教案(3-ARM7体系结构)
当发生数据中止时,根据指令的类型产生不同的动作:
数据转移指令LDR、STR回写到被修改的基址寄存器。
交换指令SWP中止好像没有被执行过一样。
(八)程序状态寄存器
ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR包含:4个条件代码标志(负N、零Z、进位C和溢出V);2个中断禁止位,分别用于一种类型的中断;5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。
1、条件代码标志
大多数数值处理指令可以选择条件是否修改条件代码标志。一般的,如果指令带S后缀,则指令会修改条件代码标志;但有一些指令总是改变条件代码标志。
如果异常处理程序已经把返回地址拷贝到堆栈,可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。
2、进入异常
当处理异常时,ARM7TDMI内核会:
(1)在适当的LR中保存下一条指令的地址。当异常入口来自:
ARM状态下,ARM7TDMI将下一条指令的地址复制到LR中(当前PC+4或PC+8,取决于异常的类型)。
V:使用加法/减法运算,当发生有符号溢出时,V=1;否则,V=0。其他指令V通常不变。
2、控制位
CPSR的最低8位为控制位。它们分别是中断禁止位、T位、模式位。当发生异常时,控制位改变。当处理器在一个特权模式下操作时,可用软件操作这些位。
(1)中断禁止位
I和F位都是中断禁止位:
当I位置位时,IRQ中断被禁止。
(四)体系结构直接支持的数据类型
ARM处理器支持下列数据类型:
字节:8位
半字:16位(必须分配为占用2字节)
字:32位(必须分配为占用4字节)
(五)处理器状态
ARM7体系结构专业讲堂PPT课件
3.2 ARM7TDMI
▪ 三级流水线
ARM7TDMI处理器使用流水线来增加处理器指 令流的速度。这样可使几个操作同时进行,并使处 理和存储器系统连续操作,能提供0.9MIPS/MHz的 指令执行速度。
ARM7TDMI的流水线分3级,分别为: 取指 译码 执行
5.处理器状态
14.ARM7指令简介
6.处理器模式
15.协处理器接口
7.内部寄存器
16.调试接口简介
8. 程序状态寄存器
17.ETM接口简介
3.4 体系结构直接支持的数据类型
▪ 体系结构直接支持的数据类型
ARM处理器支持下列数据类型:
字节 8位
1
半字 16位(必须分配为占用两个字节) 1 2
地址寄存器
地址增加器
寄存器组 31*32位寄存器 (6个状态寄存器)
扫描调试 控制
指令译码 和
控制逻辑
乘法器
桶形移位器 32位ALU
写数据寄存器
指令管线读数据寄存器 Thumb指令译码器
WDATA[31:0]
RDATA[31:0]
ARM7TDMI内核框图
CLK CLEN CFGBIGEND nIRQ nFIQ nRESET ABORT LOCK WRITE
LDR R0,=Lable
BX
R0
地址最低位为 0,表示切换 到ARM状态
第3章 目录
1.简介
9.异常
2.ARM7TDMI
10.中断延迟
3.ARM7TDMI的模块和 11.复位
内部框图
12.存储器及存储器映射
4.体系结构直接支持的 I/O
《ARM体系结构》课程教学大纲
《ARM体系结构》课程教学大纲(64学时4学分)类别:专选课开设学期:第6学期适用专业:软件工程(嵌入式方向)专业先行、后续课:电子技术,单片机原理,嵌入式Linux开发教材:邱铁. ARM嵌入式系统结构与编程. 清华大学出版社.参考书:《嵌入式系统开发与应用》,田泽,北京航空航天大学出版社《ARM体系结构与编程》,杜春等著,清华大学出版社一、课程的性质、目的和任务通过本课程的学习,培养学生掌握ARM体系结构,ARM指令集、以及在ARM体系下的嵌入式编程,使学生掌握基于S3C44b0x/S3C24100x的硬件开发平台,并在此平台下进行硬件编程与硬件接口实验。
为学生进行嵌入式系统软硬件设计和开发打下良好的基础。
二、本课程的主要内容及基本要求(一)内容范围第1章绪论.第2章ARM技术与ARM体系结构第3章ARM指令集寻址方式第4章ARM指令集系统第5章Thumb指令第6章ARM汇编伪指令与伪操作第7章汇编语言程序设计第8章ARM汇编语言与嵌入式C混合编程第9章S3C44B0/S3C2410硬件结构与关键技术分析(二)基本要求根据教材内容分以下几个方面的基本要求:1.内容范围中未作标记的是重点内容(掌握内容),▲标记内容对部份专业讲授。
2.内容范围中画有“*“号的内容为选讲内容。
3.有少数内容,不一定在课堂讲,可让学生自学。
三、课程的重点、难点(一)课程重点ARM编程模型、ARM寻址方式、ARM指令集、ARM汇编语言调用、ARM存储、寄存器、数据栈、参数传递规则、ARM寻址方式、ARM指令集、ARM汇编语言调用、ARM 存储、寄存器、数据栈、参数传递规则(二)课程难点异常中断处理、ARM指令寻址、异常中断指令、ARM汇编语言设计、特定的ATPCS 、MMU管理、ARM编程模型、异常中断处理、ARM指令寻址、异常中断指令、ARM汇编语言设计、MMU管理、特定的A TPCS四、实验安排16学时1、ARM汇编编程-寄存器访问2学时2、LED跑马灯程序2学时3、KEY程序设计(查询方式) 2学时4、蜂鸣器程序设计(中断方式) 2学时5、定时器程序设计2学时6、UART程序设计(中断方式) 2学时7、触摸屏程序设计2学时8、LCD程序设计2学时五、学时分配第1章绪论. 2学时第2章ARM技术与ARM体系结构6学时第3章ARM指令集寻址方式4学时第4章ARM指令集系统4学时第5章Thumb指令4学时第6章ARM汇编伪指令与伪操作8学时第7章汇编语言程序设计8学时第8章ARM汇编语言与嵌入式C混合编程8学时第9章S3C44B0/S3C2410硬件结构与关键技术分析4学时六、说明计划总学时为64学时,其中授课48学时,实验16学时。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《ARM体系结构》课程教学大纲
(64学时4学分)
类别:专选课
开设学期:第6学期
适用专业:软件工程(嵌入式方向)专业
先行、后续课:电子技术,单片机原理,嵌入式Linux开发
教材:邱铁. ARM嵌入式系统结构与编程. 清华大学出版社.
参考书:《嵌入式系统开发与应用》,田泽,北京航空航天大学出版社
《ARM体系结构与编程》,杜春等著,清华大学出版社
一、课程的性质、目的和任务
通过本课程的学习,培养学生掌握ARM体系结构,ARM指令集、以及在ARM体系下的嵌入式编程,使学生掌握基于S3C44b0x/S3C24100x的硬件开发平台,并在此平台下进行硬件编程与硬件接口实验。
为学生进行嵌入式系统软硬件设计和开发打下良好的基础。
二、本课程的主要内容及基本要求
(一)内容范围
第1章绪论.
第2章ARM技术与ARM体系结构
第3章ARM指令集寻址方式
第4章ARM指令集系统
第5章Thumb指令
第6章ARM汇编伪指令与伪操作
第7章汇编语言程序设计
第8章ARM汇编语言与嵌入式C混合编程
第9章S3C44B0/S3C2410硬件结构与关键技术分析
(二)基本要求
根据教材内容分以下几个方面的基本要求:
1.内容范围中未作标记的是重点内容(掌握内容),▲标记内容对部份专业讲授。
2.内容范围中画有“*“号的内容为选讲内容。
3.有少数内容,不一定在课堂讲,可让学生自学。
三、课程的重点、难点
(一)课程重点
ARM编程模型、ARM寻址方式、ARM指令集、ARM汇编语言调用、ARM存储、寄存器、数据栈、参数传递规则、ARM寻址方式、ARM指令集、ARM汇编语言调用、ARM 存储、寄存器、数据栈、参数传递规则
(二)课程难点
异常中断处理、ARM指令寻址、异常中断指令、ARM汇编语言设计、特定的ATPCS 、MMU管理、ARM编程模型、异常中断处理、ARM指令寻址、异常中断指令、ARM汇编语言设计、MMU管理、特定的A TPCS
四、实验安排16学时
1、ARM汇编编程-寄存器访问2学时
2、LED跑马灯程序2学时
3、KEY程序设计(查询方式) 2学时
4、蜂鸣器程序设计(中断方式) 2学时
5、定时器程序设计2学时
6、UART程序设计(中断方式) 2学时
7、触摸屏程序设计2学时
8、LCD程序设计2学时
五、学时分配
第1章绪论. 2学时第2章ARM技术与ARM体系结构6学时第3章ARM指令集寻址方式4学时第4章ARM指令集系统4学时第5章Thumb指令4学时第6章ARM汇编伪指令与伪操作8学时第7章汇编语言程序设计8学时第8章ARM汇编语言与嵌入式C混合编程8学时第9章S3C44B0/S3C2410硬件结构与关键技术分析4学时
六、说明
计划总学时为64学时,其中授课48学时,实验16学时。
实习内容包括两部分,一部分是软件模拟实验,一部分是ARM9/ARM11硬件实验。
通过本课程的学习,使学生能基本掌握设计和实现ARM系统的基本方法和操作技术。
大纲批准:大纲审定:大纲制定:崔智勇。