ARM体系结构与编程(第2版)

ARM体系结构与编程(第2版) 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
杜春雷 著



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-22

类似图书 点击查看全场最低价

图书介绍

出版社: 清华大学出版社
ISBN:9787302403425
版次:2
商品编码:11742624
品牌:清华大学
包装:平装
开本:16开
出版时间:2015-07-01
用纸:胶版纸
页数:512
字数:797
正文语种:中文


相关图书





图书描述

内容简介

  ARM处理器是一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,由ARM公司设计,然后授权给各半导体厂商生产,它目前已经成为应用最为广泛的嵌入式处理器。《ARM体系结构与编程(第2版)》共为分14章,对ARM处理器的体系结构、指令系统和开发工具进行了比较全面的介绍。其中包括ARM体系、ARM程序设计模型、ARM汇编语言程序设计、ARM C/C++语言程序设计、ARM连接器的使用、ARM集成开发环境CodeWarrior IDE的介绍及高性能的调试工具ADW的使用。并在此基础上介绍一些典型的基于ARM体系的嵌入式应用系统设计的基本技术。通过阅读本书,可以使读者掌握开发基于ARM的应用系统的各方面的知识。本书既可作为学习ARM技术的培训材料,也可作为嵌入式系统开发人员的参考手册。

目录

第1章 ARM概述及其基本编程模型 1

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

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

1.3 ARM处理器系列 7

1.4 ARM处理器的运行模式 11

1.5 ARM寄存器介绍 11

1.6 ARM体系的异常中断 17

1.7 ARM体系中的存储系统 19

第2章 ARM指令分类及其寻址方式 22

2.1 ARM指令集概要介绍 22

2.2 ARM指令的寻址方式 24

第3章 ARM指令集介绍 61

3.1 ARM指令集 61

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

3.3 Thumb指令介绍 120

第4章 ARM汇编语言程序设计 122

4.1 伪操作 122

4.2 ARM汇编语言伪指令 151

4.3 ARM汇编语言语句的格式 153

4.4 ARM汇编语言程序的格式 162

4.5 ARM汇编编译器的使用 164

4.6 汇编程序设计举例 166

第5章 ARM的存储系统 175

5.1 ARM存储系统概述 175

5.2 ARM中用于存储管理的系统控制

协处理器CP15 176

5.3 存储器管理单元MMU 186

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

5.5 快速上下文切换技术 217

5.6 与存储系统相关的程序设计指南 219

5.7 ARM存储系统的实例 225

第6章 ATPCS介绍 242

6.1 ATPCS概述 242

6.2 基本ATPCS 242

6.3 几种特定的ATPCS 246

第7章 ARM程序和Thumb程序混合

使用 250

7.1 概述 250

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

支持interwork 251

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

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

支持interwork 259

第8章 C/C++以及汇编语言的混合

编程 263

8.1 内嵌汇编器的使用 263

8.2 从汇编程序中访问C程序变量 270

8.3 汇编程序、C程序以及C++程序的

相互调用 271

第9章 异常中断处理 276

9.1 ARM中的异常中断处理概述 276

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

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

程序 285

9.4 SWI异常中断处理程序 288

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

9.6 复位异常中断处理程序 302

9.7 未定义指令异常中断 302

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

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

第10章 ARM C/C++编译器 304

10.1 ARM C/C++编译器概述 304

10.2 ARM编译器命令行格式 306

10.3 ARM编译器中的pragmas 319

10.4 ARM编译器特定的关键词 321

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

类型 335

10.6 ARM编译器中的预定义宏 337

10.7 ARM中的C/C++库 339

第11章 ARM连接器 347

11.1 ARM映像文件 347

11.2 ARM连接器介绍 351

11.3 ARM连接器生成的符号 353

11.4 连接器的优化功能 354

11.5 运行时库的使用 355

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

文件中的符号 359

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

11.8 ARM连接器的命令行选项 363

11.9 使用scatter文件定义映像文件的

地址映射 371

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

12.1 嵌入式应用程序设计的基本知识 384

12.2 使用semihosting的C语言程序

示例 388

12.3 一个嵌入式应用系统示例 392

12.4 进行ROM/RAM地址重映射的

嵌入式应用系统 401

12.5 一个嵌入式操作系统示例 405

第13章 使用CodeWarrior 412

13.1 CodeWarrior for ARM概述 412

13.2 简单工程项目的使用 413

13.3 配置生成目标 424

13.4 复杂工程项目的使用 451

13.5 工程项目模板 456

13.6 编译和连接工程项目 461

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

14.1 ARM体系中的调试系统概述 465

14.2 基于Angel的调试系统 466

14.3 基于JTAG的调试系统 495

14.4 ADW使用介绍 498

参考文献 513

精彩书摘

  其中的符号及参数说明如下。

  :是指令助记符,如ADD表示算术加操作指令。

  {}:表示指令执行的条件。

  {S}:决定指令的操作是否影响CPSR的值。

  :表示目标寄存器。

  :表示包含第1个操作数的寄存器。

  :表示第2个操作数。

  通常有下面3种格式。

  (1) 立即数方式。每个立即数由一个8位的常数循环右移偶数位得到。其中循环右移的位数由一个4位二进制的两倍表示。如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,则有:

  = immed_8循环右移(2*rotate_imm)

  这样并不是每一个32位的常数都是合法的立即数,只有能够通过上面构造方法得到的才是合法的立即数。下面的常数是合法的立即数:

  0Xff,0x104,0xff0,0xff00

  而下面的数不能通过上述构造方法得到,则不是合法的立即数:

  0x101,0x102,0xFF1

  同时按照上面的构造方法,一个合法的立即数可能有多种编码方法。如0x3F0是一个合法的立即数,它可以采用下面两种编码方法:

  immed_8=0x3F,rotate_imm=0xE 或者

  immed_8=0xFC,rotate_imm=0Xf

  但是,由于这种立即数的构造方法中包含了循环移位操作,而循环移位操作会影响CPSR的条件标志位C。因此,同一个合法的立即数由于采用了不同的编码方式,将使某些指令的执行产生不同的结果,这是不能允许的。ARM汇编编译器按照下面的规则来生成立即数的编码。

  当立即数数值在0和0xFF范围中时,令immed_8=,rotate_ imm=0。

  其他情况下,汇编编译器选择使rotate_imm数值最小的编码方式。

  (2) 寄存器方式。在寄存器寻址方式下,操作数即为寄存器的数值。如下例所示:

  MOV R3,R2 ; 将R2的数值放到R3中

  ADD R0,R1,R2 ; R0的数值等于R1的数值加上R2的数值

  (3) 寄存器移位方式。寄存器移位方式的操作数为寄存器的数值做相应的移位(或者循环移位)而得到。具体的移位(或者循环移位)的方式有下面几种。

  ASR:算术右移。

  LSL:逻辑左移。

  LSR:逻辑右移。

  ROR:循环右移。

  RRX:扩展的循环右移。

  移位(或者循环移位)的位数可以用立即数方式或者寄存器方式表示。

  下面是一些寄存器移位方式的操作数示例:

  MOV R0,R1,LSL #3 ; R0=R1*(2**3)

  ADD R0,R1,R1,LSL #3 ; R0=R1+R1*(2**3)

  SUB R0,R1,R2,LSR #4 ; R0=R1-R2/(2**4)

  MOV R0,R1,ROR R2 ; R0=R1循环右移R2位

  数据处理指令操作数的具体寻址方式有下面11种。

  #

  , LSL #

  , LSL

  , LSR #

  , LSR

  , ASR #

  , ASR

  , ROR #

  , ROR

  , RRX

  1. #

  指令编码格式

  31 28 27 25 24 21 20 19 16 15 12 11 8 7 0

  cond 0 0 1 opcode S Rn Rd rotate_imm immed_8

  操作数生成方法

  指令的操作数即为立即数#。立即数#的生成方法见前面章节的介绍。当rotate_imm=0时,循环器的进位值(即 Carry-out 位)为CPSR中的C条件标志位;当rotate_imm!=0时,循环器的进位值(即 Carry-out 位)为操作数的最高位bit[31]。

  指令中操作数的语法格式

  #

  其中,= immed_8循环右移(2*rotate_imm)。

  指令中操作数寻址操作的伪代码

  shifter_operand = immed_8 R ARM体系结构与编程(第2版) 下载 mobi epub pdf txt 电子书 格式


ARM体系结构与编程(第2版) mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

ARM体系结构与编程(第2版) 下载 mobi pdf epub txt 电子书 格式 2024

ARM体系结构与编程(第2版) 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

# 撸起袖子大力建设公司图书角 # 都是大家推荐的书单,技术咖、年度畅销书、心灵鸡汤,速度快,纸质好,信赖京东图书!

评分

不错书不错,包装也很好,快递也给力

评分

关于ARM指令有点字典性质的样子.各指令内容重复性东西太多.以前看的arm指令教程都是直接讲助记符怎么用的,怎么拼操作指令和条件指令之类的.这书更彻底= =~!直接说了一条ARM指令各个位是怎么拼的数据,指令值是多少.刚开始看的时候一脸懵逼,还在想,这他喵的讲的是人话么?后来才发现,原来这书不是这么看的= =~!好吧,这书关于指令的讲解应该是更彻底一些.虽然一般情况下只要知道指令助记符是什么意思就行了.但是能更深入了解一条32位指令是怎么拼出来的也没什么不好.还是给好评吧.

评分

趁着618囤的书,价格很实惠。

评分

1

评分

本以为是讲架构的,拿到书发现是讲指令和编程的,留作以后拓展用了。

评分

很好,不错,满意。很合适。

评分

纸张的质量有点次,能看到反面的字

评分

不错的一本书,加油好好学习吧

类似图书 点击查看全场最低价

ARM体系结构与编程(第2版) mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.teaonline.club All Rights Reserved. 图书大百科 版权所有