logo资料库

嵌入式ARM系统原理与实例开发 杨宗德.pdf

第1页 / 共247页
第2页 / 共247页
第3页 / 共247页
第4页 / 共247页
第5页 / 共247页
第6页 / 共247页
第7页 / 共247页
第8页 / 共247页
资料共247页,剩余部分请下载后查看
封面
前言
目录
第1章 嵌入式系统概述
第2章 嵌入式ARM处理器
第3章 ARM程序设计基础
第4章 ADS环境下汇编/C/C++程序开发
第5章 嵌入式系统结构及软件开发模式
第6章 ARM异常中断处理及程序设计
第7章 嵌入式系统接口及驱动程序开发
第8章 基于µC/OS-II应用程序开发基础
第9章 ARM存储管理
参考文献
21 世纪全国应用型人才培养规划教材·嵌入式技术系列 嵌入式 ARM 系统原理与实例开发 杨宗德 编著 杨 刚 主 审 参 编 张厚先 汤 斌 杨智硕 主 审 熊义杰 张恒杰 编 李 磊 张 军
内 容 简 介 本书是一本介绍 ARM 处理器原理与底层程序开发实例的教材,涉及嵌入式系统结构、嵌入式处理器 及操作系统基本概念、ARM 处理器原理及应用、ARM 汇编程序设计、ARM 处理器 C 语言程序设计、ARM 中断处理、无操作系统下 ARM 接口驱动程序设计以及嵌入式操作系统基本原理等内容。本书在内容编写 上按由浅入深、从易到难的顺序,构建了完整的嵌入式 ARM 底层相关开发知识体系。第 1 部分:精要介 绍了与该知识点相关的基础理论;第 2 部分:详细介绍了应用平台 ARM 处理器与之相关的知识点内容; 第 3 部分:详细介绍了 ARM 实例开发程序和源代码分析。 本书所对应的课程是嵌入式专业的核心课程之一,是嵌入式知识体系中的重中之重,无论以后是从事 嵌入式上层应用开发、驱动开发、系统开发,还是硬件底层开发的读者都需要对这一部分内容有较深入的 研究。 本书可以作为高等学校电子、通信、软件方向的嵌入式专业专科生、本科生的教材,也可以作为 IT 企业嵌入式工程师的参考用书。 图书在版编目(CIP)数据 嵌入式 ARM 系统原理与实例开发/杨宗德编著. —北京:北京大学出版社,2007.9 (21 世纪全国应用型人才培养规划教材·嵌入式技术系列) ISBN 978-7-301-12530-4 Ⅰ. 嵌… Ⅱ. 杨… Ⅲ. 微处理器,ARM—系统设计—高等学校—教材 Ⅳ. TP332 中国版本图书馆 CIP 数据核字(2007)第 106102 号 书 名:嵌入式 ARM 系统原理与实例开发 著作责任者:杨宗德 编著 责 任 编 辑:孙 琳 标 准 书 号:ISBN 978-7-301-12530-4/TP·0908 出 版 者:北京大学出版社 地 址:北京市海淀区成府路 205 号 100871 网 址:http://www.pup.cn http://www.pup6.com 电 话:邮购部 62752015 发行部 62750672 编辑部 62750667 出版部 62754962 电 子 邮 箱:pup_6@163.com 印 刷 者:北京大学印刷厂 发 行 者:北京大学出版社 经 销 者:新华书店 787 毫米×1092 毫米 16 开本 15.75 印张 351 千字 2007 年 9 月第 1 版 2007 年 9 月第 1 次印刷 定 价:25.00 元 未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。 版权所有,侵权必究 举报电话:010-62752024 电子邮箱:fd@pup. pku. edu. cn
前 言 随着信息技术的发展,嵌入式技术也已经广泛运用到日常生活中的方方面面,嵌入式 系统在消费、汽车电子、微控制、无线通信、数码产品、网络设备、安全系统等领域的应 用方兴未艾。从广义概念来说,除了通用的计算机系统应用外,其他所有的智能电子设备 都属于嵌入式系统。从狭义概念来讲,嵌入式系统主要有以下两个重要特征: 在硬件上,嵌入式系统至少拥有一个高性能处理器作为硬件平台(目前以 32 位处理 器为主流),如 ARM、MIPS 系列处理器。 在软件上,嵌入式系统以一个多任务操作系统为软件开发平台,如 Linux、Windows CE、Symbian、µC/OS-II、VxWorks 等。 随着越来越多的公司、研究单位、大专院校以及个人开始进行嵌入式系统的研究,嵌 入式系统设计将是未来相当长一段时间内电子领域研究的热点。 本书主要为应用型本科和高等职业院校嵌入式专业而编写,在介绍主要内容及写作思 路之前,首先介绍作者所在院校嵌入式专业(3 年制专科)的培养目标及教学体系。 1. 高等职业院校嵌入式专业培养目标(参考) 目前,全国本专科院校已经着手培养嵌入式专业的本科生和专科生。可见,设置符 合高职院校学生的嵌入式专业课程体系极为重要。以下介绍高职院校嵌入式专业培养目 标,仅供参考。 1) 嵌入式应用工程师能力结构 由于嵌入式领域以工程应用为主,对从业人员而言,主要强调实际的工程应用能力, 为此,在高校培养方向上应以培养嵌入式应用工程师为主,其能力结构如图 1 所示。 图 1 嵌入式应用工程师能力结构(参考) 2) 高职高专嵌入式专业(3 年制)培养目标 作者根据在嵌入式专业的教学经验和高职高专院校学生底子较差、学习时间较短(一般 为 3 年)的情况,认为高职院校的嵌入式专业培养目标及体系应考虑以下原则。 (1) 在培养目标上,以培养嵌入式应用工程师为主,强调学生动手能力,尽可能减少 烦琐的理论知识介绍。
·IV· 嵌入式 ARM 系统原理与实例开发 (2) 在教学方法上,主要采用案例教学的思想。 (3) 在教学形式上,多开设实践课程,要求学生在绝大多数课程中动手操作。 (4) 在嵌入式专业知识体系上,学生应该在整个学习期间掌握以下知识点: 至少一种嵌入式处理器。最好选用当前流行的 32 位处理器,如 ARM、MIPS 系列, 具体选择哪种操作系统可根据学校实际情况来定。 至少一种嵌入式操作系统。具体的处理器可根据学校实际情况来定,但最好选用一 种较简单、开源的嵌入式操作系统,学生可以直接查看操作系统源代码,如 Linux、 µC/OS-II 操作系统。 一套嵌入式开发工具。根据处理器的不同而选择不同的底层程序开发工具(每种类型 的处理器有不同的底层程序开发工具,如 ARM 处理器流行的开发环境为 ADS), 根据选用的嵌入式操作系统选择该应用平台对应的开发工具(如 Linux 系统平台的 开发软件包为 GCC 套件)。 一类开发语言。由于目前在嵌入式设备上的程序绝大多数采用 C 语言,因此建议采 用 C 系列语言为学习对象。 2. 高等职业院校嵌入式专业课程设置(参考) 1) 高职高专嵌入式专业(3 年制)课程体系架构(参考) 如图 2 所示是作者所在高职院校嵌入式专业课程体系结构图。在此方案中,以 ARM(处 理器)+Linux(操作系统)+GCC(开发工具)+C(开发语言)为课程体系主线,即选用 ARM 处 理器为硬件平台,Linux 为主要操作系统平台(在介绍操作系统原理时选用µC/OS-II,因为 Linux 源代码太多,不便于教学),在开发工具上采用 ADS+GCC 套件,在开发语言上选择 C 语言系列。 图 2 嵌入式专业课程体系 ·IV·
前 言 ·V· 从能力结构上,此教学体系软件和硬件两条线并行,图 2 中的课程体系包括了专业基 础课程、硬件相关课程、软件相关课程、软/硬件结合课程和实践课程,另外根据院校情况 可以开设相应的专业方向选修课程。 2) 主干课程介绍 (1) 基础课程介绍,如表 1 所示。包括嵌入式基础概述和网络技术基础。嵌入式基础 概述作为专业介绍性内容,网络技术基础为后续 Linux 网络应用基础,Linux 应用编程(网 络编程部分),嵌入式在网络中的应用打基础。其中“可选”表示可以选择性开设,亦可不 开设,“<32”表示低于 32 学时。 表 1 嵌入式基础课程 课程名称 参考 学时 嵌入式基础概述 <32 网络技术基础 32 课程主要内容参考 前导课程 实验 入门课程,对嵌入式开发进行概要性介绍,本 课程也可以在学生进校后只安排几个学时作为专 业介绍内容 主要介绍网络基本原理、基本概念,为学习 Linux 网络应用打基础;Linux 网络编程为嵌入式 在网络中的应用打基础 无 可选 无 可选 (2) 硬件核心课程介绍,如表 2 所示。此部分课程主要包括嵌入式专业的硬件课程, 主要涉及数字/模拟电路、PCB 硬件电路设计、单片机课程和嵌入式 ARM 基础。 课程名称 参考 学时 表 2 嵌入式硬件核心课程 课程主要内容参考 主要介绍数字/模拟电路相关知识点,作为以后学习 单片机原理及 ARM 处理器基础之用 以某一种单片机处理器为介绍对象,介绍单片机基 本原理、接口原理、C 语言程序开发(如选用 51 单片机) 掌握一门 PCB 印制电路设计工具,学生毕业后进行 嵌入式电路设计时需要使用,选用 Protel DXP 专业前 导课程 无 C 语言 数字/模拟电路 实验 有 有 数字/模拟电路 有 数字/模拟 电路基础 单片机原理 及程序开发 PCB 印制 电路设计 嵌入式 ARM 处理器原理 及程序开发 64 64 48 64 以 ARM 处理器为主,主要介绍 32 位处理器架构、 ADS 汇编程序、ARM 接口、无操作系统 ARM 接口 驱动开发 单片机原理 C 语言 数字/模拟电路 有 (3) 软件核心课程介绍,如表 3 所示。此部分以 C 语言开发为主线,包括 C 语言程序 设计、Linux 操作系统基础、嵌入式操作系统原理(µC/OS-II 为对象)、Linux 应用程序开发 以及软件工程内容。“选”表示可以根据情况选择性开设,如果条件不允许,可以不开设该 课程。 ·V·
·VI· 嵌入式 ARM 系统原理与实例开发 课程名称 C 语言程序 设计 Linux 操作 系统基础 嵌入式操作系 统原理及应用 Linux 下 C 语 言应用编程 软件工程 参考 学时 64 48 64 64 32 嵌入式数据库 48 选 C++程序设计 64 选 表 3 嵌入式软件核心课程 课程主要内容参考 专业前 导课程 实验 介绍 C 语言程序开发相关知识点 学习 Linux 操作系统(如 RedHat)的使用,重点介 绍 Linux 使用以及简单的服务器配置(因为部分服务 器在嵌入式开发中会用到,如 NFS) 与传统的操作系统原理课程类似,但介绍对象为 一种嵌入式操作系统,涉及操作系统内核分析,如 选用µC/OS-II。因 Linux 内核代码过多,故不建议 使用 Linux 无 无 C 语言 单片机原理 让学生掌握软件开发的基本流程,具有工程化开 以 C 语言为开发工具,主要介绍 Linux 上层应用 程序开发,包括文件管理、进程/线程管理、进程间 通信、网络编程基础等上层应用开发内容 Linux 应用基础 C 语言 操作系统原理 操 作 系 统 原 理 C 语言 Linux 基础 C 语言基础 选修。有条件学院(课时充足)介绍 C++程序开发 C 语言基础 选修。有条件学院(课时充足)介绍一种数据库, 让学生对数据库有一定的了解,如选用 Mysql 发软件的思想 有 有 有 有 无 有 有 (4) 软、硬件结合课程,如表 4 所示。此部分主要为一门课程,结合前面学习的软、 硬件基础,进行嵌入式系统应用开发,“>64”表示学时数需要超过 64 学时。 课程名称 参考 学时 ARM+Linux 应用系统开发 >64 表 4 嵌入式软、硬件结合课程 课程主要内容参考 专业前 导课程 以 ARM 处理器为硬件平台,以 Linux 操作系统为 开发平台,根据需要选择性介绍基于 ARM 处理器的 Linux 上层开发、驱动开发及内核开发等内容 ARM 处理器、 Linux 操作 系 统等内容 实验 有 (5) 专业选修课程,如表 5 所示。因为嵌入式专业根据选用的软件操作系统平台不同 可以分为多个方向(如 Linux 方向、Windows CE 方向等),因此,可以开设其他专业的选修 课程。如果前面不选择 Linux 操作系统,可以选择以下所列的某操作系统为介绍主线。 表 5 嵌入式专业选修课程 课程名称 课程主要内容参考 实 验 Symbian 方向课程 Windows CE 方向课程 Java 方向课程 在 Symbian 智能手机上开发 C++应用程序,包括 C++程序开 发课程、Symbian 基础、Symbian 通信应用开发课程 与嵌入式 Windows CE 操作系统相关的课程内容,包括 C++ 程序开发、Windows CE 应用开发,以及 Windows CE 下驱动开 发相关内容 跨平台的 Java、J2ME 应用程序开发,包括 Java 程序设计、 J2ME 程序开发等课程内容 有 有 有 ·VI·
前 言 ·VII· (6) 项目实训课程,如表 6 所示。根据学校条件,可以选择性或者全部开设下列专业 项目实训课程,作者所在院校有 2 次小学期实践(1~1.5 个月/次),学生针对某一个专题进 行项目实习,如果没有条件,可以在毕业设计中体现这些内容。 表 6 嵌入式项目实训课程 项目名称 课程主要内容参考 前导课程 单片机项目实训 Linux 应用程序开发项目实训 基于某一种单片机处理器(如 51 系列单片 机),让学生学会简单电路设计、单片机接口 驱动程序开发 在 Linux 操作系统下设计 Linux 应用程序 项目 嵌入式系统开发毕业设计 作为本专业毕业设计内容,内容涉及硬件 开发、操作系统设计、软件程序开发等 C 语言、单片机原理 及程序开发、PCB 印制 电路板设计 C 语言、操作系统原 理、Linux 应用程序开发 本专业所有核心课程 3. 本书的写作思路及使用参考 1) 本书内容安排 本书是一本介绍 ARM 处理器原理及底层程序开发的教材,在内容上涉及 ARM 汇编程 序设计、ARM 处理器 C 语言程序设计、无操作系统下 ARM 接口驱动程序设计以及嵌入式 操作系统基本原理等内容。本书在内容编写上按由浅入深、从易到难的顺序,从而构建出 如图 3 所示的完整嵌入式 ARM 底层相关开发知识体系。 图 3 本书主要知识点及编排结构 第 1 章主要介绍嵌入式系统的基本概念、嵌入式操作系统特点、嵌入式系统的应用 领域以及当前流行的嵌入式处理器类型。 第 2 章概要介绍冯·诺依曼体系结构和哈佛体系结构的区别,然后重点介绍 ARM7 内核处理器、ARM9 内核处理器以及 xScale 内核处理器架构和主要接口功能。 第 3 章主要介绍嵌入式 ARM 程序设计基础,包括 ARM 处理器的寄存器结构、工 ·VII·
·VIII· 嵌入式 ARM 系统原理与实例开发 作模式、寻址方式、指令编码格式以及常用的 ARM 汇编指令和伪指令功能和语法, 在介绍每一类指令时以一个具体程序为例子。 第 4 章主要介绍 ADS 集成开发环境下汇编程序/C/C++程序开发。重点介绍 ADS 集 成开发环境的使用、ARM 可执行程序结构、ARM 汇编程序/C/C++程序编译及调试, 并对每一个知识点都给出详细的示例程序。 第 5 章主要介绍嵌入式系统的软、硬件体系结构和嵌入式软件的几种开发模式,包 括交叉编译环境和嵌入式应用软件开发模式示例。 第 6 章主要介绍 ARM 处理器的 7 种异常中断处理类型,阐述了它们的原理及应用 方法,同时以 SWI 为例为读者展示了中断处理程序的装载过程和运行过程。 第 7 章主要介绍 ARM 处理器常见接口原理及驱动程序,包括串行通信接口实验、 键盘和 LED 实验、触摸屏实验、A/D 模/数转换实验以及 LCD 驱动实验。在介绍每 一个实验时,首先介绍了与该知识点相关的原理,然后介绍了该实验中使用到的硬 件电路原理,最后为读者展示了相关源代码分析。 第 8 章以µC/OS-II 为对象介绍了嵌入式操作系统的基本概念。内容涉及嵌入式操作 系统的基本概念、µC/OS-II 操作系统与处理器相关的源代码分析。这一部分内容是 后续课程——嵌入式操作系统的基础内容。 第 9 章增加了 ARM 存储设备的管理模式的内容,重点介绍了常用存储设备特点和应 用领域,并对 ARM 处理器的 MMU 原理进行了简要介绍。 2) 本书写作方式 从写作方式上,本书在介绍每个知识点时遵循了以下原则。 第 1 部分:精要介绍了与该知识点相关的基础理论; 第 2 部分:详细介绍了应用平台 ARM 处理器与之相关的知识点内容; 第 3 部分:详细介绍了该内容的示例程序和源代码分析。 3) 本书课程地位 本书所对应的课程是嵌入式专业的核心课程之一,是嵌入式知识体系中的重中之重, 无论以后是从事嵌入式上层应用开发、驱动开发、系统开发,还是硬件底层开发,都需要 对这一部分内容有较深入的研究。 4) 本书读者对象 本书可以作为高等学校电子、通信、软件方向的嵌入式专业本科生、专科生的教材, 也可以作为 IT 企业嵌入式工程师的参考用书。 本书力求满足绝大多数专业学生的需要,在教学安排上,根据应用专业,可以使读者 选择性地学习相关内容。如下所示为电子专业和计算机专业对各章内容的掌握情况。 专业方向 第 1 章 系统 电子方向 了解 计算机方向 了解 第 2 章 偏硬 掌握 了解 第 3 章 结合 掌握 掌握 第 4 章 偏软 掌握 掌握 第 5 章 系统 掌握 掌握 第 6 章 偏硬 了解 了解 第 7 章 结合 掌握 掌握 第 8 章 偏软 了解 了解 第 9 章 偏硬 了解 选学 ·VIII·
分享到:
收藏