• 全新正版现货 从零开始学ARM 9787115606884
21年品牌 40万+商家 超1.5亿件商品

全新正版现货 从零开始学ARM 9787115606884

正版新书现货 可以下单一般就是有货的 下午5点前订单当天发货

58.88 5.9折 99.8 全新

库存89件

北京丰台
认证卖家担保交易快速发货售后保障

作者彭丹,周海涛编著

出版社人民邮电出版社

ISBN9787115606884

出版时间2023-05

版次1

装帧平装

开本16开

纸张胶版纸

页数330页

字数99999千字

定价99.8元

货号R_12546171

上书时间2024-01-23

黎明书店

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

   商品详情   

品相描述:全新
商品描述
基本信息
书名:从零开始学ARM
定价:99.80元
作者:彭丹,周海涛编著
出版社:人民邮电出版社
出版日期:2023-05-01
ISBN:9787115606884
字数:503000
页码:330
版次:
装帧:平装
开本:16开
商品重量:
编辑推荐
适读人群 :从事嵌入式开发的工程师 有一定计算机基础和C语言编程经验的初学者                               1.循序渐进,由浅入深:本书从开发环境的安装和配置及ARM基本指令等相关基础知识开始讲解,再详细说明硬件的功能原理,最后介绍U-Boot的使用及启动程序,使读者将ARM相关知识点融会贯通。2.实例丰富,内容翔实:包含大量汇编实例,且所有汇编指令都在KEIL软件中测试过;硬件裸机驱动源程序均在开发板上调试过,并有详细的分析注解;U-Boot的启动源程序和U-Boot中的网络协议栈也有详细的程序注解,结合硬件原理图、用户手册说明硬件功能原理,逐个分析9种硬件驱动编程方法,方便读者复现实例并进行学以致用。3.提供配套电子资源:本书提供了配套的安装工具、源程序、PPT课件等电子资源,方便读者学习和使用。4.作者团队专业:本书作者团队具有嵌入式软件开发多年的经验和丰富的计算机网络、ARM、基于Linux的驱动开发等专业技能,得到了广泛认可和好评。5.参考价值高:ARM架构已成为全球重要的科技公司之一,基于ARM架构开发产品的相关工作非常热门,本书介绍的相关知识点对于对嵌入式开发感兴趣的人员非常有参考价值。
内容提要
本书主要介绍ARM开发的相关知识,详细讲解常用的ARM指令及如何基于ARM架构的外设编写驱动程序,并分析了开源软件U-Boot的启动源代码和网络协议栈。本书~4章为基础篇,主要介绍CPU与ARM、搭建环境、ARM编程、异常等;第5~13章为编程篇,主要介绍基于Exynos 4412的常用外设的工作原理及驱动程序编写等;4~17章为应用篇,主要介绍开源软件U-Boot的使用及启动程序,并分析网卡DM9000AE的驱动和网络协议栈;以及关于汇编的两点补充。 本书适合从事嵌入式开发的工程师和有一定计算机基础和C语言编程经验的初学者学习参考。
目录
章 ARM与CPU 11.1 ARM公司 11.2 ARM内核与架构 41.2.1 ARM内核 41.2.2 ARM架构 51.2.3 指令集 71.2.4 ARM处理器分类 91.2.5 什么是SoC? 111.2.6 Exynos 4412 SCP 151.2.7 ARM授权 171.2.8 总结 181.3 计算机重要贡献者 181.4 CPU架构 221.4.1 冯诺依曼架构 221.4.2 哈佛架构 231.4.3 CPU组成 251.5 指令的运行 301.6 ARM技术特征 311.7 ARM工作模式 321.8 ARM寄存器 331.8.1 寄存器分类 331.8.2 CPSR格式详解 361.9 协处理器 371.10 Jzelle 381.11 指令流水线 391.11.1 3级流水线 391.11.2 指令对流水线影响 40第 2章 搭建环境 442.1 KEIL安装 442.1.1 ARM集成开发环境 442.1.2 KEIL、MDK、uVision、ARM之间的关系 452.1.3 安装Keil 462.1.4 创建个工程 492.1.5 编译代码 522.1.6 如何debug代码? 532.2 GNU编译环境搭建 562.2.1 安装VMware Workstatio572.2.2 安装ubuntu 622.3 交叉编译工具安装 67第3章 ARM编程 703.1 ARM指令格式 713.2 数据处理指令 723.2.1 MOV指令 723.2.2 移位操作 753.2.3 CMP指令 763.2.4 TST指令 773.2.5 算数运算指令 783.3 跳转指令 813.4 程序状态寄存器访问 843.4.1 MRS指令 843.4.2 MSR指令 853.4.3 举例 853.5 LDR/STR指令 913.5.1 LDR指令 913.5.2 STR指令 923.5.3 LDRB指令 933.5.4 LDRH指令 933.6 ARM寻址方式 943.7 LDREX/STREX指令 1033.8 MDK与GNU 1063.9 GNU书写风格 1083.9.1 标号symbol(或label) 1083.9.2 常数 1093.9.3 特殊字符和语法 1093.9.4 语句格式 1103.9.5 分段 1103.9.6 定义入口点 1123.10 伪操作 1123.10.1 数据定义伪操作 1123.10.2 .alig.end .include .incbin伪操作 1133.10.3 .rept伪操作 1143.10.4 macro宏定义 1143.10.5 .if伪操作 1153.10.6 .global/.type/.title/.list伪操作 1153.10.7 杂项伪操作标识符 1163.10.8 伪指令 1183.13 GNU代码的编译 1193.13.1 交叉编译工具 1193.13.2. 交叉编译工具命名规则 1193.13.3 代码编译过程 1203.13.3 编译选项 1223.13.4 ELF与bi1263.13.5 编译举例 1273.14 ATPCS和AAPCS 1323.15 内联汇编 1353.16 C语言和汇编相互调用举例 137第4章 异常(Exception) 1394.1 异常基础知识 1394.2 异常处理 1414.2.1 异常发生后硬件操作 1414.2.2 异常向量表 1424.2.3 保存执行现场 1434.2.4 异常处理的返回 1444.2.5 异常恢复 1464.3 IRQ中断异常 1464.3.1 中断概念 1464.3.2 中断处理流程 1474.4 软中断 1484.4.1 SWI指令 1484.4.2 BKPT指令 1484.4.3 举例 1494.4.4 如何同时跳转并切换模式? 1514.4.5 如何获取中断号? 151第5章 GPIO及LED 1525.1 GPIO 1535.1.1 Exynos 4412 GPIO特性 1535.1.2 LED灯电路图 1545.1.3 如何操作GPIO? 1555.2 LED驱动编写 1575.2.1 汇编代码 1575.2.2 c语言实现 1585.2.3 烧写代码 161第6章 PWM 1626.1 PWM基础知识 1626.2 Exynos 4412 PWM 1646.2.1 Exynos 4412 PWM特性 1656.2.2 PWM工作步骤 1666.3 蜂鸣器驱动编写 1676.3.1 参考电路 1676.3.2 寄存器 1686.3.3 代码实现 172第7章 中断、key 1737.1 GIC 1737.1.1 分发器 1747.1.2 CPU接口 1767.1.3 中断分类 1767.1.4 中断处理 1797.2 key驱动编写 1807.2.1 电路图 1807.2.2 配置按键为中断触发方式 1817.2.3 寄存器 1837.2.4 代码实现 1887.3 轮询方式 190第8章 UART 1928.1 UART概述 1928.1.1 UART通信方式 1928.1.2 UART帧格式 1958.2 Exynos 4412 UART控制器 1968.2.1 UART特性 1978.2.2 UART内部功能模块 1978.2.3 时钟源 2008.4 驱动编写 2008.4.1 参考电路 2008.4.2 UART寄存器 2028.4.3 代码实现 2068.5 移植printf 209第9章 RTC详解 2099.1 Exynos 4412 RTC 2109.1.1 Exynos 4412 RTC特性 2109.1.2 RTC Block 2109.1.3 备用电池 2119.1.4 晶振 2119.2 RTC寄存器 2129.3 RTC操作 2149.4 代码实现 2190章 看门狗 22210.1 Exynos 4412 看门狗 22210.1.1 看门狗定时器模块图 22310.1.2 工作原理 22310.2 驱动编写 22410.2.1 看门狗软件程序设计流程 22410.2.2 看门狗寄存器 22410.2.3 代码实现 2261章 ADC 22711.1 信号基础知识 22811.1.1 信号分类 22811.1.2 数字信号优点 22911.1.4 PCM脉冲编码调制 22911.2 Exynos 4412 ADC控制器 23111.2.1 Exynos 4412 ADC控制器特性 23111.2.2 寄存器 23211.2.3 Combiner中断控制器 23411.2.4 A/D转换的转换时间计算 23611.3 驱动编写 23611.3.1 参考电路 23611.3.2 代码实例 2382章 I2C 24112.1 I2C协议 24112.1.1 开始和停止条件 24112.1.2 数据有效性 24312.1.3 数据传输格式 24312.1.4 数据传输格式 24512.2 Exynos 4412 I2C控制器 24512.2.1 Exynos 4412 I2C控制器综述 24512.2.2 Exynos 4412 I2C总线接口特性 24612.2.3 I2C数据读写格式 24712.2.3 数据读写流程 24812.2.4 寄存器 25212.2.5 寄存器使用规则 25512.3 MPU6050及驱动编写 25512.3.1 MPU6050 25512.3.2 参考电路 25812.3.3 MPU6050内部寄存器 25912.3.4 代码实例: 2603章 SPI 26413.1 SPI基础知识 26413.1.1 SPI特点 26413.1.2 极性和相位 26813.1.3 采样波形 26813.1.4 如何设置极性和相位 27013.1.5 数据交换(Data Exchanges) 27113.2 Exynos 4412 SPI控制器 27213.3 SPI操作 27413.3.1 参考电路 27413.3.2 寄存器 27513.3.3 SPI初始化流程 27813.3.4 收发数据流程 28213.4 MCP2515 28313.4.1 MCP2515简介 28313.4.2 MCP2515特性 28313.4.3 结构框图 28413.4.4 SPI 协议模块 28513.4.5 SPI 指令集 28513.4.6 CAN初始化 28913.4.7 CAN缓冲区 29613.4.8 数据发送 29613.4.9 CAN数据的接收 29817.6.7 MCP2515驱动实现 3004章 U-Boot 30414.1 Bootloader 30414.1.1 概念 30414.1.2 分类 30514.1.3 Bootloader对不同CPU架构支持 30614.2 U-Boot概述 30714.2.1 U-Boot概念 30714.2.2 U-Boot的特性 30714.2.3 工作模式 30814.2.4 U-Boot常用命令 30914.2.5 配置举例 31214.3 U-Boot移植步骤 31314.3.1 U-Boot源码简介 31314.3.2 U-boot源码配置 31614.3.3 U-Boot源码编译 31914.4 U-Boot硬件驱动移植 32114.4.1 实现串口输出 32114.4.2 网卡驱动移植 32214.4.3 FLASH移植 (EMMC) 32514.5 SD卡制作 33114.5.1 编写脚本 33114.5.2 sd卡制作 33414.5.3 通过sd卡启动烧写U-Boot 33414.5.4 网络烧写U-Boot 3365章、U-Boot代码启动分析 33715.1 内核启动流程概述 33715.1.1 U-boot启动加载linux内核一般流程 33715.1.2 Exynos 4412内存布局 33915.1.3 Booting Sequence 34015.1.4 SD卡镜像布局 34215.1.5 lds文件 34315.2 U-Boot启动流程代码详解 34415.2.1 U-Boot启动代码流程 34415.2.2 U-Boot启动详解 34615.3 U-Boot启动的几个关键问题 3646章 网卡DM9000x 36516.1 网卡概述 36516.2 DM9000AE 36616.2.1 DM9000AE概述 36616.2.2 模块图 36716.2.3 引脚说明 36816.2.4 DM9000AE内部寄存器 37216.3 SROM 控制器 37816.3.1 概念 37816.3.2 寄存器SROM_BW、SROM_BC1 37816.3.3 配置为SROM模式 38316.3.4 SROM初始化 38816.4 DM9000AE驱动分析 39216.4.1 网卡注册 39216.4.2 网卡注册代码分析 39416.4.5 网卡的初始化 39816.4.6 数据的发送 40216.4.7 数据的接收 40416.4.4 网卡 40616.5 U-Boot中网络协议栈 40716.5.1 网络协议栈架构 40716.5.2 DNS协议详解 4087章 关于汇编的两点补充 42017.1 为什么使用结构体效率会高? 42017.1.1 定义多个全局变量 42017.1.2 使用结构体 42317.1.3 literal pool 42417.1.4 继续优化 42517.2 位置无关码 42617.2.1 为什么需要位置无关码? 42617.2.2 如何编写位置无关码 42717.2.3 举例 42717.2.4 总结 43117.2.5 思考题 432
作者介绍
彭丹,硕士,“一口Linux”公众号创始人,南京六九零二科技有限公司高级嵌入式驱动工程师。从事嵌入式软件开发工作16年。精通计算机网络、ARM、基于Linux的驱动开发。获得多项科技发明授权、多篇软件文章等。 周海涛,硕士,长期从事网络安全和信息化建设相关工作,著有多篇论文,江苏省第六期333高层次人才培养工程培养对象。
序言

—  没有更多了  —

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

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