• 从零开始学ARM
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

从零开始学ARM

全新正版未拆封

41.89 4.2折 99.8 全新

仅1件

四川成都
认证卖家担保交易快速发货售后保障

作者彭丹 周海涛

出版社人民邮电出版社

出版时间2023-05

版次1

装帧平装

上书时间2023-05-28

转角书檐

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 彭丹 周海涛
  • 出版社 人民邮电出版社
  • 出版时间 2023-05
  • 版次 1
  • ISBN 9787115606884
  • 定价 99.80元
  • 装帧 平装
  • 页数 330页
  • 字数 503千字
【内容简介】
本书主要介绍ARM开发的相关知识,详细讲解常用的ARM指令及如何基于ARM架构的外设编写驱动程序,并分析了开源软件U-Boot的启动源代码和网络协议栈。
  本书第1~4章为基础篇,主要介绍CPU与ARM、搭建环境、ARM编程、异常等;第5~13章为编程篇,主要介绍基于Exynos 4412的常用外设的工作原理及驱动程序编写等;第14~17章为应用篇,主要介绍开源软件U-Boot的使用及启动程序,并分析网卡DM9000AE的驱动和网络协议栈;以及关于汇编的两点补充。
   本书适合从事嵌入式开发的工程师和有一定计算机基础和C语言编程经验的初学者学习参考。
【作者简介】
彭丹,硕士,“一口Linux”公众号创始人,南京六九零二科技有限公司高级嵌入式驱动工程师。从事嵌入式软件开发工作16年。精通计算机网络、ARM、基于Linux的驱动开发。获得多项科技发明授权、多篇软件文章等。 

周海涛,硕士,长期从事网络安全和信息化建设相关工作,著有多篇论文,江苏省第六期333高层次人才培养工程培养对象。
【目录】
第 1章  ARM与CPU1

1.1  ARM公司1

1.2  ARM内核与架构4

1.2.1 ARM内核4

1.2.2 ARM架构5

1.2.3 指令集7

1.2.4  ARM处理器分类9

1.2.5  什么是SoC?11

1.2.6  Exynos 4412 SCP15

1.2.7  ARM授权17

1.2.8  总结18

1.3  计算机重要贡献者18

1.4  CPU架构22

1.4.1  冯诺依曼架构22

1.4.2  哈佛架构23

1.4.3  CPU组成25

1.5 指令的运行30

1.6  ARM技术特征31

1.7  ARM工作模式32

1.8  ARM寄存器33

1.8.1 寄存器分类33

1.8.2 CPSR格式详解36

1.9  协处理器37

1.10  Jzelle38

1.11  指令流水线39

1.11.1  3级流水线39

1.11.2  指令对流水线影响40

第 2章  搭建环境44

2.1  KEIL安装44

2.1.1  ARM集成开发环境44

2.1.2  KEIL、MDK、uVision、ARM之间的关系45

2.1.3  安装Keil46

2.1.4  创建第 一个工程49

2.1.5  编译代码52

2.1.6  如何debug代码?53

2.2  GNU编译环境搭建56

2.2.1  安装VMware Workstation57

2.2.2  安装ubuntu62

2.3  交叉编译工具安装67

第3章  ARM编程70

3.1  ARM指令格式71

3.2  数据处理指令72

3.2.1  MOV指令72

3.2.2  移位操作75

3.2.3  CMP指令76

3.2.4  TST指令77

3.2.5  算数运算指令78

3.3  跳转指令81

3.4 程序状态寄存器访问84

3.4.1 MRS指令84

3.4.2 MSR指令85

3.4.3 举例85

3.5  LDR/STR指令91

3.5.1  LDR指令91

3.5.2  STR指令92

3.5.3  LDRB指令93

3.5.4  LDRH指令93

3.6  ARM寻址方式94

3.7  LDREX/STREX指令103

3.8  MDK与GNU106

3.9  GNU书写风格108

3.9.1 标号symbol(或label)108

3.9.2 常数109

3.9.3 特殊字符和语法109

3.9.4 语句格式110

3.9.5 分段110

3.9.6 定义入口点112

3.10伪操作112

3.10.1 数据定义伪操作112

3.10.2 .align .end .include .incbin伪操作113

3.10.3 .rept伪操作114

3.10.4 macro宏定义114

3.10.5 .if伪操作115

3.10.6 .global/.type/.title/.list伪操作115

3.10.7 杂项伪操作标识符116

3.10.8 伪指令118

3.13  GNU代码的编译119

3.13.1 交叉编译工具119

3.13.2. 交叉编译工具命名规则119

3.13.3 代码编译过程120

3.13.3 编译选项122

3.13.4 ELF与bin126

3.13.5 编译举例127

3.14 ATPCS和AAPCS132

3.15 内联汇编135

3.16 C语言和汇编相互调用举例137

第4章  异常(Exception)139

4.1  异常基础知识139

4.2 异常处理141

4.2.1  异常发生后硬件操作141

4.2.2  异常向量表142

4.2.3  保存执行现场143

4.2.4  异常处理的返回144

4.2.5  异常恢复146

4.3  IRQ中断异常146

4.3.1  中断概念146

4.3.2  中断处理流程147

4.4  软中断148

4.4.1  SWI指令148

4.4.2  BKPT指令148

4.4.3  举例149

4.4.4  如何同时跳转并切换模式?151

4.4.5  如何获取中断号?151

第5章 GPIO及LED152

5.1 GPIO153

5.1.1 Exynos 4412 GPIO特性153

5.1.2 LED灯电路图154

5.1.3 如何操作GPIO?155

5.2 LED驱动编写157

5.2.1 汇编代码157

5.2.2 c语言实现158

5.2.3 烧写代码161

第6章 PWM162

6.1PWM基础知识162

6.2 Exynos 4412 PWM164

6.2.1 Exynos 4412 PWM特性165

6.2.2 PWM工作步骤166

6.3 蜂鸣器驱动编写167

6.3.1 参考电路167

6.3.2 寄存器168

6.3.3 代码实现172

第7章 中断、key173

7.1 GIC173

7.1.1 分发器174

7.1.2 CPU接口176

7.1.3 中断分类176

7.1.4 中断处理179

7.2 key驱动编写180

7.2.1 电路图180

7.2.2 配置按键为中断触发方式181

7.2.3 寄存器183

7.2.4 代码实现188

7.3 轮询方式190

第8章 UART192

8.1 UART概述192

8.1.1 UART通信方式192

8.1.2 UART帧格式195

8.2 Exynos 4412 UART控制器196

8.2.1 UART特性197

8.2.2 UART内部功能模块197

8.2.3 时钟源200

8.4 驱动编写200

8.4.1 参考电路200

8.4.2 UART寄存器202

8.4.3 代码实现206

8.5 移植printf()209

第9章 RTC详解209

9.1 Exynos 4412 RTC210

9.1.1 Exynos 4412 RTC特性210

9.1.2 RTC Block210

9.1.3 备用电池211

9.1.4 晶振211

9.2 RTC寄存器212

9.3 RTC操作214

9.4 代码实现219

第 10章 看门狗222

10.1 Exynos 4412 看门狗222

10.1.1 看门狗定时器模块图223

10.1.2 工作原理223

10.2 驱动编写224

10.2.1 看门狗软件程序设计流程224

10.2.2 看门狗寄存器224

10.2.3 代码实现226

第 11章 ADC227

11.1  信号基础知识228

11.1.1 信号分类228

11.1.2 数字信号优点229

11.1.4 PCM脉冲编码调制229

11.2 Exynos 4412 ADC控制器231

11.2.1 Exynos 4412 ADC控制器特性231

11.2.2 寄存器232

11.2.3 Combiner中断控制器234

11.2.4 A/D转换的转换时间计算236

11.3 驱动编写236

11.3.1 参考电路236

11.3.2  代码实例238

第 12章 I2C241

12.1 I2C协议241

12.1.1 开始和停止条件241

12.1.2 数据有效性243

12.1.3 数据传输格式243

12.1.4 数据传输格式245

12.2 Exynos 4412 I2C控制器245

12.2.1 Exynos 4412 I2C控制器综述245

12.2.2 Exynos 4412 I2C总线接口特性246

12.2.3 I2C数据读写格式247

12.2.3 数据读写流程248

12.2.4 寄存器252

12.2.5 寄存器使用规则255

12.3 MPU6050及驱动编写255

12.3.1 MPU6050255

12.3.2 参考电路258

12.3.3 MPU6050内部寄存器259

12.3.4 代码实例:260

第 13章 SPI264

13.1 SPI基础知识264

13.1.1 SPI特点264

13.1.2 极性和相位268

13.1.3 采样波形268

13.1.4 如何设置极性和相位270

13.1.5 数据交换(Data Exchanges)271

13.2 Exynos 4412 SPI控制器272

13.3 SPI操作274

13.3.1 参考电路274

13.3.2 寄存器275

13.3.3 SPI初始化流程278

13.3.4 收发数据流程282

13.4 MCP2515283

13.4.1 MCP2515简介283

13.4.2 MCP2515特性283

13.4.3 结构框图284

13.4.4 SPI 协议模块285

13.4.5 SPI 指令集285

13.4.6 CAN初始化289

13.4.7 CAN缓冲区296

13.4.8 数据发送296

13.4.9 CAN数据的接收298

17.6.7 MCP2515驱动实现300

第 14章 U-Boot304

14.1 Bootloader304

14.1.1 概念304

14.1.2 分类305

14.1.3 Bootloader对不同CPU架构支持306

14.2 U-Boot概述307

14.2.1 U-Boot概念307

14.2.2 U-Boot的特性307

14.2.3 工作模式308

14.2.4 U-Boot常用命令309

14.2.5 配置举例312

14.3 U-Boot移植步骤313

14.3.1 U-Boot源码简介313

14.3.2 U-boot源码配置316

14.3.3 U-Boot源码编译319

14.4 U-Boot硬件驱动移植321

14.4.1 实现串口输出321

14.4.2 网卡驱动移植322

14.4.3 FLASH移植 (EMMC)325

14.5 SD卡制作331

14.5.1 编写脚本331

14.5.2 sd卡制作334

14.5.3 通过sd卡启动烧写U-Boot334

14.5.4 网络烧写U-Boot336

第 15章、U-Boot代码启动分析337

15.1 内核启动流程概述337

15.1.1 U-boot启动加载linux内核一般流程337

15.1.2 Exynos 4412内存布局339

15.1.3 Booting Sequence340

15.1.4 SD卡镜像布局342

15.1.5 lds文件343

15.2 U-Boot启动流程代码详解344

15.2.1 U-Boot启动代码流程344

15.2.2 U-Boot启动详解346

15.3 U-Boot启动的几个关键问题364

第 16章 网卡DM9000x365

16.1 网卡概述365

16.2 DM9000AE366

16.2.1 DM9000AE概述366

16.2.2 模块图367

16.2.3 引脚说明368

16.2.4 DM9000AE内部寄存器372

16.3 SROM 控制器378

16.3.1 概念378

16.3.2 寄存器SROM_BW、SROM_BC1378

16.3.3 配置为SROM模式383

16.3.4 SROM初始化388

16.4 DM9000AE驱动分析392

16.4.1 网卡注册392

16.4.2 网卡注册代码分析394

16.4.5 网卡的初始化398

16.4.6 数据的发送402

16.4.7 数据的接收404

16.4.4 网卡注销406

16.5 U-Boot中网络协议栈407

16.5.1 网络协议栈架构407

16.5.2 DNS协议详解408

第 17章 关于汇编的两点补充420

17.1 为什么使用结构体效率会高?420

17.1.1 定义多个全局变量420

17.1.2 使用结构体423

17.1.3 literal pool424

17.1.4 继续优化425

17.2 位置无关码426

17.2.1 为什么需要位置无关码?426

17.2.2 如何编写位置无关码 427

17.2.3 举例427

17.2.4 总结431

17.2.5 思考题432
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP