《CH03_-_ARM程序设计基础》.pdf

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 ARM 程序设计基础 本章对ARM 汇编程序设计基础进行了详细介绍,是全书的重点之一。本章对ARM 处 理器的工作原理、汇编程序编码格式、寻址方式、指令功能进行了详细介绍,另外,对所 有的指令都安排了一个详细的示例程序。本章内容是嵌入式底层开发的核心内容之一,对 于学习底层开发的读者而言,需要详细掌握本章所有内容,完成本章及第4 章内容学习后, 能够独立完成 ARM 汇编代码的编写。对于从事嵌入式上层软件开发的读者,对本章相应 内容也需要有比较深入的了解,至少能够看懂ARM 汇编代码。 在编写本章提供的汇编代码前,请读者参阅本书第4 章关于编译器ADS 的使用相关 内容。 由于嵌入式系统是一个软、硬件结合的综合系统,嵌入式开发已经逐步分离为软件设 计和硬件设计两部分。一般来说,硬件电路设计以及操作系统之下与硬件相关的软件底层 开发都是由硬件工程师完成的;操作系统之上的软件开发都是由软件工程师完成的。各部 分开发工作包括以下方面: (1) 硬件电路设计。硬件电路设计包括 PCB 电路设计、电路焊接与调试等硬件电路设 计工作,这是典型的电子工程师所完成的工作。 (2) Boot Loader 开发。Boot Loader 类似于通用计算机系统的 BIOS ,但不仅是BIOS , 例如,Linux 下的 GRUB 就是一种类型的 Boot Loader ,这是由于大多数嵌入式系统都需要 运行操作系统,因此需要一个加载操作系统的程序,即 Boot Loader 程序,这个程序的主要 工作就是引导操作系统。一般来说,Boot Loader 开发工作是由硬件工程师完成的,主要代 码都是由汇编语言和 C 语言编写的,并且大量代码与硬件直接相关。 (3) 操作系统移植。由于现有的操作系统并不一定适合当前的硬件处理器架构,故需 要对现有的操作系统内核源代码进行适当修改,重新编译,以适应新的处理器,这一部分 工作即所谓的操作系统移植。例如,Linux 操作系统在 ARM 上的移植,即 Linux 操作系统 为现有的操作系统,ARM 为应用处理器平台。因为 Linux 最初是针对 X86 处理器的,它 与 CPU 相关的汇编代码是针对 X86 系统的,因此需要对内核源代码进行修改。一般来说, 操作系统只有少部分代码是汇编语言编写的,但从事这一部分开发仍然需要工程师熟悉硬 件底层结构。 (4) 驱动开发。由于嵌入式系统是专用系统,大量的驱动程序都需要开发者自行开发, 因此,底层软件开发工程师的一个非常重要的工作就是驱动程序设计。一般大量驱动程序 仍然是由 C 语言编写的(少量汇编程序) ,这一部分开发需要工程师熟悉硬件底层接口电路 以及软件设计。 (5) 上层应用软件开发。针对所应用的嵌入式操作系统不同,如 Windows CE 、Linux 、 ·24 · 嵌入式 ARM 系统原理与实例开发 Symbian 以及 VxWorks ,进行操作系统之上的应用软件开发,这一部分的开发基本上是属 于软件开发,只是不同的操作系统采用不同的开发平台而已。 由以上可以看出,嵌入式开发很大一部分工作内容都需要与硬件直接相关,所涉及的 开发语言大多数为汇编和 C 语言,对于嵌入式开发工程师来说,了解硬件底层及汇编程序 设计很有必要,本节即主要介绍嵌入式 ARM 处理器内部结构及 ARM 汇编程序设计。 本章 3.1 节主要介绍 ARM 处理器内部寄存器结构,包括处理器的工作模式、寄存器功 能以及 ARM 指令编码方式。 本章 3.2 节主要介绍 ARM 汇编程序寻址方式,包括立即数寻址、寄存器寻址、基地址 变址寻址、寄存器偏移寻址、寄存器间接寻址、多寄存器寻址、块地址寻址以及相对寻址 等寻址方式。 本章 3.3 节主要介绍 ARM 指令及应用程序,这些指令是直接与寄存器打交道的,主要 包括 ARM 处理器常用的指令系统,如加减指令、逻辑指令、乘法指令、跳转指令、内存 数据加载指令、CPSR 数据传输指令和数据交换指令,关于每一类指令都将介绍详细指令 编码,并给出详细的指令例程。 本章 3.4 节主要介绍伪指令功能及语法结构,伪指令主要用于辅助编程工作,如定义 变量、控制语法结构、信息报告等功能,对于每一类指令都将详细介绍指令编码,并给出 详细的指令例程。

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档