简介
本书在介绍微型计算机一般原理的基础上,重点介绍目前在应用中流行的ARM RISC体系结构及其嵌入式处理器,同时介绍当前流行的ARM工程开发工具Realview MDK,并以开发工具为基础介绍ARM汇编语言程序设计、工程开发及RTX操作系统的简单应用。
目录
第1章 微型计算机基础知识1 1.1 微型计算机的发展历程1 1.2 数字电路与计算机2 1.2.1 数据在计算机中的表示——二进制2 1.2.2 运算器及二进制数运算2 1.2.3 数据的存储8 1.2.4 指令及指令译码10 1.2.5 程序及程序计数器PC11 1.2.6 计算机执行程序的过程12 1.3 微型计算机系统的基本组成 13 1.3.1 冯·诺依曼计算机结构14 1.3.2 计算机的硬件系统14 1.3.3 计算机的软件系统17 1.4 计算机体系结构的发展 17 1.4.1 RISC 18 1.4.2 指令流水线20 1.4.3 高速缓存21 1.4.4 协处理器21 1.4.5 片上系统21 1.5 微型计算机的两种主要应用方向21 1.5.1 桌面系统21 1.5.2 嵌入式系统22 1.6 计算机程序设计语言22 1.6.1 低级语言22 1.6.2 高级语言23 1.7 计算机常用标准编码 23 1.7.1 ASCII码23 1.7.2 BCD码24 习 题24第2章 总线、存储器和接口26 2.1 总 线26 2.1.1 总线的基本概念26 2.1.2 系统总线27 2.1.3 系统总线结构28 2.1.4 片内总线30 2.2 存储器30 2.2.1 半导体存储器的一般结构31 2.2.2 随机读/写存储器33 2.2.3 只读存储器35 2.2.4 存储器的逻辑表示36 2.3 外部设备及接口37 2.3.1 外部设备及其特点37 2.3.2 I/O接口电路的功能38 2.3.3 I/O设备接口电路的基本结构42 2.3.4 外部设备与处理器的联络和数据传输43 2.4 常用接口电路45 2.4.1 并行接口电路45 2.4.2 串行接口电路47 2.4.3 定时器/计数器51 习 题53第3章 ARM体系结构55 3.1 ARM及其嵌入式处理器的研发与生产方式55 3.1.1 SoC与嵌入式处理器55 3.1.2 嵌入式处理器的研发和生产方式56 3.2 ARM处理器核的结构59 3.3 冯·诺依曼结构及哈佛结构在ARM中的应用60 3.4 ARM处理器的运行模式 61 3.5 ARM的两种工作状态62 3.6 ARM处理器的寄存器62 3.6.1 ARM状态下寄存器的组织方式62 3.6.2 Thumb状态下寄存器的组织方式66 3.7 存储器的组织67 3.8 ARM体系结构的其他特点69 3.8.1 灵活方便的协处理器接口69 3.8.2 嵌入式的在线仿真调试69 3.8.3 低电压低功耗的设计69 3.9 ARM体系结构的版本及处理器系列69 3.9.1 ARM体系结构的版本70 3.9.2 ARM处理器系列71 习 题72第4章 ARM指令系统73 4.1 ARM指令集的常用指令 73 4.1.1 数据传送指令74 4.1.2 ARM指令的附加操作80 4.1.3 跳转(转移)指令81 4.1.4 指令的条件码及条件指令85 4.1.5 算术运算指令88 4.1.6 逻辑运算指令93 4.1.7 程序状态寄存器访问指令 96 4.1.8 加载/存储指令 97 4.1.9 批量数据加载/存储指令 100 4.1.10 数据交换指令104 4.1.11 协处理器指令 106 4.1.12 异常产生指令 108 4.2 Thumb指令简介108 4.2.1 Thumb寄存器的使用109 4.2.2 ARM-Thumb的交互109 习 题110第5章 ARM汇编语言基础111 5.1 汇编器与汇编语言111 5.2 ARM常用伪指令 112 5.2.1 段定义伪指令112 5.2.2 符号定义伪指令 114 5.2.3 程序中的标号 117 5.2.4 数据区定义伪指令 119 5.3 宏与宏指令 122 5.3.1 宏122 5.3.2 宏指令126 5.4 其他伪指令131 5.4.1 有关程序结构的一些伪指令131 5.4.2 有关数据空间定义的一些伪指令135 5.4.3 汇编控制伪指令 137 5.4.4 其他常用伪指令 138 5.5 汇编语言规范 139 5.5.1 汇编语句格式 139 5.5.2 汇编语言的表达式和运算符 139 5.6 ARM汇编语言程序设计143 5.6.1 段 143 5.6.2 分支程序设计 143 5.6.3 循环程序设计 149 5.6.4 子程序及其调用 150 习 题151第6章 ARM工程开发及MDK153 6.1 ARM工程及其开发工具153 6.2 映像文件及程序158 6.2.1 程序的内存布局158 6.2.2 程序的加载域和执行域160 6.2.3 映像文件的结构166 6.3 程序的分散加载170 6.3.1 基本概念170 6.3.2 分散加载文件171 6.3.3 MDK生成的分散加载文件177 6.4 ARM工程框架185 6.4.1 初始化程序部分 185 6.4.2 初始化部分与主应用程序部分的衔接186 6.5 C程序与汇编程序之间的函数调用189 6.5.1 ATPCS简介190 6.5.2 汇编程序调用C函数实例197 6.5.3 汇编程序访问全局C变量 199 6.6 C/C++语言和汇编语言的混合编程200 6.6.1 内联汇编200 6.6.2 嵌入式汇编201 6.6.3 内联汇编代码与嵌入式汇编代码之间的差异202 习 题203第7章 中断和异常205 7.1 中断和异常的基本概念205 7.1.1 中断和异常205 7.1.2 中断请求信号的屏蔽206 7.1.3 中断优先级及中断嵌套207 7.1.4 中断服务程序208 7.1.5 中断向量和中断向量表209 7.1.6 中断的处理过程211 7.2 ARM的中断(异常)211 7.2.1 ARM中断(异常)的种类211 7.2.2 ARM中断(异常)的优先级213 7.2.3 ARM的中断(异常)向量表214 7.2.4 中断(异常)的响应过程及返回217 7.3 软中断SWI的应用222 7.3.1 软中断SWI的一般应用222 7.3.2 SWI函数(系统调用)228 习 题231第8章 LPC2000系列嵌入式处理器232 8.1 LPC2000嵌入式处理器概貌232 8.2 引脚连接模块233 8.3 通用可编程并行数据接口GPIO234 8.4 LPC2000的存储器239 8.5 外部存储器的连接242 8.5.1 EMC的结构242 8.5.2 外部存储器的连接244 8.6 LPC2000的时钟246 8.6.1 LPC2000时钟模块246 8.6.2 锁相环及处理器时钟cclk参数的设置247 8.6.3 pclk时钟参数的设置250 8.7 定时器250 8.7.1 定时器的原理和功能251 8.7.2 定时器的寄存器252 8.7.3 定时器的初始化254 8.8 LPC2000的脉宽调制器PWM256 8.8.1 LPC2000脉宽调制器原理256 8.8.2 脉宽调制器的寄存器257 8.8.3 LPC2000脉宽调制器的使用示例259 8.9 看门狗260 8.9.1 看门狗的结构及原理260 8.9.2 看门狗寄存器261 8.9.3 看门狗的使用261 8.10 功率控制模块261 8.11 LPC2000的UART接口263 8.11.1 UART接口的结构263 8.11.2 UART接口的寄存器264 8.11.3 UART1接口与Modem267 8.11.4 UART接口的初始化及其应用268 8.12 LPC2000的SPI接口270 8.12.1 SPI简介及LPC2000的SPI接口逻辑270 8.12.2 LPC2000 SPI接口的寄存器271 8.12.3 LPC2000 SPI接口应用实例273 8.13 LPC2000的I2C接口 276 8.13.1 I2C总线简介276 8.13.2 LPC2000的I2C总线接口278 8.13.3 I2C接口的工作过程280 8.14 A/D转换器 282 8.15 LPC2000的中断管理286 8.15.1 外部中断通道287 8.15.2 中断控制器VIC289 习 题296第9章 LPC2000外部电路298 9.1 复位电路298 9.2 人机交互设备299 9.2.1 键盘与触摸屏299 9.2.2 显示器303 习 题308第10章 LPC2000的固件309 10.1 LPC2000的重映射存储区309 10.2 LPC2000的固件及其作用310 10.3 LPC2000引导块313 10.3.1 LPC2000引导块的地址映射313 10.3.2 向量表的重映射314 10.3.3 LPC2114/2124的Boot Block的工作流程314 10.3.4 有效用户程序的识别316 10.4 RAM空间的重映射317 习 题317第11章 嵌入式操作系统基础319 11.1 基本概念319 11.1.1 什么是操作系统319 11.1.2 嵌入式操作系统324 11.2 RTX构成及其应用基础325 11.2.1 RTX中的任务325 11.2.2 时间片、优先级及调度329 11.2.3 任务的状态336 11.2.4 RTX的任务间通信339 11.2.5 RTX的数据类型350 习 题351附录A LPC2148引脚说明352附录B MDK中的文件356附录C S3C44B0X处理器简介358 C.1 S3C44B0X的结构358 C.2 S3C44B0X的存储器359 C.2.1 S3C44B0X存储映射359 C.2.2 S3C44B0X用于存储管理的寄存器360 C.3 时钟和功耗管理363 C.3.1 时钟设置363 C.3.2 功耗管理控制364 C.3.3 功耗管理控制寄存器365 C.4 中断管理366 C.4.1 中断源与中断系统结构366 C.4.2 中断控制寄存器366 C.4.3 中断源优先排队模块368 C.5 DMA控制器370 C.5.1 ZDMA和BDMA370 C.5.2 与ZDMA相关的寄存器372 C.5.3 与BDMA相关的寄存器373 C.6 LCD控制器375 C.6.1 概 述375 C.6.2 LCD控制器的控制寄存器378 C.6.3 帧缓冲区起始地址寄存器379 C.7 IIS总线接口381 C.7.1 IIS总线接口框图 381 C.7.2 IIS接口工作模式383 C.7.3 IIS接口的特殊功能寄存器383 C.8 S3C44B0X 的引脚与I/O端口386 C.8.1 端口配置寄存器PCON386 C.8.2 端口数据寄存器PDATA~PDATG387 C.8.3 上拉寄存器PUPC~PUPG 387 习 题387附录D ARM高级存储管理389 D.1 高速缓冲存储器389 D.1.1 Cache的基本概念和工作原理389 D.1.2 Cache与主存之间的关系392 D.1.3 Cache的写缓冲器393 D.2 协处理器394 D.2.1 ARM的协处理器394 D.2.2 协处理器操作指令395 D.3 ARM存储器保护单元MPU396 D.3.1 ARM的MPU397 D.3.2 协处理器CP15及保护区域的定义397 D.3.3 保护区域的重叠应用403 D.3.4 MPU应用示例404 D.4 虚拟存储与MMU411 D.4.1 虚拟存储空间与物理内存空间411 D.4.2 地址映射机构412 D.4.3 页表的缓存——快表416 D.4.4 页表的存储及二级页表417 D.4.5 采用虚拟存储技术的优点419 D.5 ARM的虚拟存储管理420 D.5.1 ARM的页表结构420 D.5.2 访问控制424 D.5.3 MMU的配置426 D.5.4 页Cache 和写缓冲器的设置426 D.5.5 快 表427 D.5.6 MMU异常428 习 题429参考文献431
ARM与Realview MDK(Keil for ARM)
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×