ARM体系结构与编程教学大纲.docx

上传人:b****6 文档编号:7949942 上传时间:2023-01-27 格式:DOCX 页数:14 大小:20.19KB
下载 相关 举报
ARM体系结构与编程教学大纲.docx_第1页
第1页 / 共14页
ARM体系结构与编程教学大纲.docx_第2页
第2页 / 共14页
ARM体系结构与编程教学大纲.docx_第3页
第3页 / 共14页
ARM体系结构与编程教学大纲.docx_第4页
第4页 / 共14页
ARM体系结构与编程教学大纲.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ARM体系结构与编程教学大纲.docx

《ARM体系结构与编程教学大纲.docx》由会员分享,可在线阅读,更多相关《ARM体系结构与编程教学大纲.docx(14页珍藏版)》请在冰豆网上搜索。

ARM体系结构与编程教学大纲.docx

ARM体系结构与编程教学大纲

 

课程编号:

08060400

ARM体系结构与编程

ARMArchitectureandProgramming

总学时:

32

总学分:

2

课程性质:

专业课

开设学期及周学时分配:

第5学期;2学时/周

适用专业及层次:

软件工程专业(嵌入式方向)本科

相关课程:

微机原理;单片机;C语言;C++

教材:

《ARM体系结构与编程》,杜春雷译,清华大学出版社,2005年

推荐参考书:

《ARM嵌入式系统结构与编程》,清华大学出版社,2009年;《嵌入式系统——体系结构、编程与设计》,清华大学出版社,2010年。

一、课程目的及要求

ARM是业界嵌入式开发的通用体系,产检产品几乎都是采用了ARM体系的MCU。

本课程主要介绍ARM的体系结构、ARM开发语言、开发平台以及基于ARM的编程。

通过本课程的学习,使学生能够理解基本的嵌入式开发流程、开发使用的工具,掌握嵌入式产品的开发方法及编程。

二、课程内容及学时分配

第1章ARM概述及其基本编程模型(2课时)

  1.1ARM技术的应用领域及其特点

  1.2ARM体系结构的版本及命名方法

  1.2.1ARM体系结构的版本

  1.2.2ARM体系的变种

  1.2.3ARM/Thumb体系版本的命名格式

  l.3ARM处理器系列

  1.3.1ARM7系列

  1.3.2ARM9系列

  1.3.3ARM9E系列

  1.3.4ARM1OE系列

  1.3.5SecurCore系列

  l.4ARM处理器模式

  1.5ARM寄存器介绍

  1.5.l通用寄存器

  1.5.3程序状态寄存器

  1.6ARM体系的异常中断

  1.6.1ARM中异常中断种类

  1.6.2ARM处理器对异常中断的响应过程

  1.6.3从异常中断处理程序中返回

  1.7ARM体系中存储系统

  1.7.1ARM体系中的存储空间

  1.7.2ARM存储器格式

  1.7.3非对齐的存储访问操作

  1.7.4指令预取和自修改代码

  第2章ARM指令分类及其寻址方式(2课时)

  2.1ARM指令集概要介绍

  2.1.1ARM指令的分类

  2.1.2ARM指令的一般编码格式

  2.1.3ARM指令的条件码域

  2.2ARM指令寻址方式

  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.1ARM指令集

  3.1.l跳转指令

  3.l.2数据处理指令

  3.1.3乘法指令

  3.1.4杂类的算术指令

  3.1.5状态寄存器访问指令

  3.l.6Load/Store内存访问指令

  3.1.7批量Load/Store内存访问指令

  3.1.8信号量操作指令

  3.1.9异常中断产生指令

  3.1.10ARM协处理器指令

  3.2一些基本的ARM指令功能段

  3.2.l算术逻辑运算指令的应用

  3.2.2跳转指令的应用

  3.2.3Loacl/Store指令的应用

  3.2.4批量Load/Store指令的应用

  3.2.5信号量指令的应用

  3.2.6与系统相关的一些指令代码段

  3.3Thumb指令介绍

  第4章ARM汇编语言程序设计(4课时)

  4.1伪操作

  4.1.l符号定义伪操作

  4.1.2数据定义伪操作

  4.1.3汇编控制伪操作

  4.1.4栈中数据帧描述伪操作

  4.1.5信息报告伪操作

  4.1.6其他的伪操作

  4.2ARM汇编语言伪指令

  4.3ARM汇编语言语句格式

  4.3.1ARM汇编语言中的符号

  4.3.2ARM汇编语言中的表达式

  4.4ARM汇编语言程序格式.

  4.4.l汇编语言程序格式

  4.4.2汇编语言子程序调用

  4.5ARM汇编编译器的使用

  4.6汇编程序设计举例

  4.6.1ARM中伪操作使用实例

  4.6.2ARM中汇编程序实例

  第5章ARM存储系统(3课时)

  5.1ARM存储系统概述

  5.2ARM中用于存储管理的系统控制协处理器CP15

  5.2.1访问CP15寄存器的指令

  5.2.2CP15中的寄存器

  5.3存储器管理单元MMU

  5.3.l存储器管理单元MMU概述

  5.3.2禁止/使能MMU

  5.3.3MMU中地址变换过程

  5.3.4MMU中存储访问权限控制

  5.3.5MMU中的域

  5.3.6关于快表的操作

  5.3.7ARM中的存储访问失效

  5.4高速缓冲存储器和写缓冲区

  5.4.1基本概念

  5.4.2cache的工作原理和地址映像方法

  5.4.3cache的分类

  5.4.4cache的替换算法

  5.4.5缓冲技术的使用注意事项

  5.4.6存储系统的一致性问题

  5.4.7cache内容锁定

  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.5IMB

  5.6.6存储器映射的I/O空间

  5.7AIOA存储系统的实例

  5.7.1L7205的存储系统概述

  5.7.2L7205中的SDRAM

  5.7.3L7205中的MMU

  第6章ATPCS介绍(1课时)

  6.1ATPCS概述

  6.2基本ATPCS

  6.2.l寄存器的使用规则

  6.2.2数据栈使用规则

  6.2.3参数传递规则

  6.3几种特定的ATPCS

  6.3.l支持数据栈限制检查的ATPCS

  6.3.2支持只读段位置无关(ROPI)的ATPCS

  6.3.3支持可读写段位置无关(RWPI)的ATPCS

  6.3.4支持ARM程序和Thumb程序混合使用的ATPCS

  6.3.5处理浮点运算的ATPCS

  第7章ARM程序和Thumb程序混合使用(1课时)

  7.1概述

  7.2在汇编语言程序中通过用户代码支持interwork

  7.2.l可以实现程序状态切换的指令

  7.2.2与程序状态切换相关的伪操作

  7.2.3进行状态切换的汇编程序实例

  7.3在C/C++程序中实现interwork

  7.4在汇编语言程序中通过连接器支持interwork

  7.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.1ARM中异常中断处理概述

  9.1.1ARM体系中异常中断种类

  9.1.2异常中断向量表及异常中断优先级

  9.1.3异常中断使用的寄存器

  9.2进入和退出异常中断的过程

  9.2.1ARM处理器对异常中断的响应过程

  9.2.2从异常中断处理程序中返回

  9.3在应用程序中安装异常中断处理程序

  9.3.1在系统复位时安装异常中断处理程序

  9.3.2在C程序中安装异常中断处理程序

  9.4SWI异常中断处理程序

  9.4.1SWI异常中断处理程序的实现

  9.4.2SWI异常中断调用

  9.5FIQ和IRQ异常中断处理程序

  9.5.1IRQ/FIQ异常中断处理程序

  9.5.2IRQ异常中断处理程序举例

  9.6复位异常中断处理程序

  9.7未定义指令异常中断

  9.8指令预取中止异常中断处理程序

  9.9数据访问中止异常中断处理程序

  第10章ARMC/0++编译器(1课时)

  10.1ARMC/C++编译器概述

  10.1.1ARMC/C++编译器及语言库介绍

  10.l.2ARM编译器中与搜索路径相关的一些基本概念

  10.2ARM编译器命令行格式

  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.3ARM编译器中的pragmas

  10.4ARM编译器特定的关键词

  10.4.1用于声明函数的关键词

  10.4.2用于声明交量的关键词

  10.4.3用于限定数据类型的关键词

  10.5ARM编译器支持的基本数据类型

  10.6ARM编译器中预定义宏

  10.7ARM中C/C++库

  10.7.1ARM中C/C++运行时库概述

  10.7.2建立一个包含C/C++运行时库的C/C++应用程序

  10.7.3建立不包含C运行时库的应用程序

  10.7.4裁减C/C++运行时库以适应特定的目标运行环境

  第11章ARM连接器(2课时)

  11.1ARM映像文件

  11.1.1ARM映像文件的组成

  11.1.2ARM映像文件的入口点

  11.1.3输入段的排序规则

  11.2ARM连接器介绍

  11.3ARM连接器生成的符号

  11.3.1连接器生成的与域相关的符号

  11.3.2连接器生成的与输出段相关的符号

  11.3.3连接器生成的与输入段相关的符号

  11.4连接器的优化功能

  11.5运行时库的使用

  11.5.1C/C++运行时库与目标文件

  11.5.2查找需要的C/C++运行时库

  11.5.3选择合适种类的C/C++运行时库

  11.5.4扫描C/C++运行时库

  11.6从一个映像文件中使用另一个映像文件中的符号

  11.6.1symdefs文件

  11.6.2建立symdefs文件

  11.6.3symdefs文件的使用

  11.7隐藏或者重命名全局符号

  11.7.lsteering文件的格式

  11.7.2steering文件中的命令

  11.8ARM连接器命令行选项

  11.9使用scatter文件定义映像文件的地址映射

  11.9.lscatter文件概述

  11.9.2satter文件中各部分介绍

  11.9.3scatter文件使用举例

  第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.1CodeWarriorforADS概述

  13.2简单工程项目的使用

  13.2.1工程项目窗口

  13.2.2简单工程项目的使用

  13.3配置生成目标

  13.3.1DebugSettings对话框介绍

  13.3.2设置牛成目标的基本选项

  13.3.3汇编器选项设置

  13.3.4编译器的选项设置

  13.3.5连接器的选项设置

  13.3.6fromELF工具的选项设置

  13.4复杂工程项目的使用

  13.4.l建立一个新的生成目标

  13.4.2将一个生成目标更名

  13.4.3建立生成目标之间的依赖关系

  13.4.4子工程项目的使用

  13.5工程项目模板

  13.5.1ADS中工程项目模板的使用

  13.5.2建立用户工程项目模板

  13.6编译和连接工程项目

  13.6.1编译文件

  13.6.2生成工程项目

  第14章ARM体系中的调试方法(1课时)

  14.1ARM体系中调试系统概述

  14.2基于Angel的调试系统

  14.2.l基于Angel的调试系统的概述

  14.2.2使用Angel开发应用程序

  14.2.3Angel执行的操作

  14.2.4将Angel移植到特定的目标系统

  14.3基于JTAG的调试系统

  14.3.l基于JTAG的调试系统的特点

  14.3.2基于JTAG的调试系统结构

  14.3.3目标系统中的调试功能扩展部件

  14.3.4基于JTAG的调试过程

  14.4ADW使用介绍

  14.4.1ADW概述

  14.4.2ADW中的窗口

  14.4.3ADW使用介绍

三、教学重点与难点

第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章ARMC/0++编译器

重点:

ARMC/0++编译过程

难点:

ARM中C/C++库

第11章ARM连接器

重点:

ARM连接器映像文件

难点:

从一个映像文件中使用另一个映像文件中的符号

第12章嵌入式应用程序示例

重点:

嵌入式应用程序开发过程

难点:

ROM/RAM地址重映射的嵌入式应用系统

第13章使用CodeWarrior

重点:

CodeWarrior使用

难点:

配置生成目标

第14章ARM体系中的调试方法

重点:

基于JTAG的调试系统

难点:

bug定位

四、主要教学方式

本课程采用多媒体设备,结合板书形式进行教学。

五、典型作业练习

1、串口通信案例的实现

2、手持式设备的开发

六、课程考核方式

本课程采用期末闭卷考试方式进行考核。

撰写人:

青软实训

审核人:

 

信息科学技术学院课程简介

ARM体系结构与编程(ARMArchitectureandProgramming)

课程编号:

08060400

课程性质:

专业课

开设学期及学时分配:

第5学期2学时/周

适用专业及层次:

软件工程专业(嵌入式方向)本科

先行课程:

C、C++、微机原理、单片机

后继课程:

嵌入式系统设计、嵌入式Linux编程;WinCE编程

教材:

《ARM体系结构与编程》,杜春雷译,清华大学出版社,2005年

推荐参考书:

《ARM嵌入式系统结构与编程》,清华大学出版社,2009年;《嵌入式系统——体系结构、编程与设计》,清华大学出版社,2010年。

课程目的、内容与要求:

ARM体系结构是分布非常广泛的MCU体系,本课程介绍了ARM编程模型、指令集及混合式编程等技术。

通过本课程的学习,使学生能偶掌握嵌入式开发的流程、语言和方法。

使学生深刻认识嵌入式软件的开发过程和实现技术

 

 本课程要求学生应具备微机原理、单片机应用技术;应熟悉C/C++编程技术以及控制论技术。

撰写人:

青软实训

审核人:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1