嵌入式Linux与物联网软件开发:ARM处理器开发自学教程9787115617088
正版图书,可开发票,请放心购买。
¥
56.32
6.3折
¥
89.8
全新
仅1件
作者朱有鹏,韩霆编著
出版社人民邮电出版社
ISBN9787115617088
出版时间2023-12
装帧平装
开本16开
定价89.8元
货号14358432
上书时间2024-11-08
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
朱有鹏,先后从事电子工程师、单片机软件工程师、嵌入式Linux软件工程师、物联网软件工程师、架构师等工作,“朱老师物联网大讲堂”创始人。擅长U-Boot、Linux内核等嵌入式底层和系统层开发、架构设计。擅长汇编、C/C++、Java、C#等常用开发语言,2015年起录制的在线视频课程“朱有鹏老师嵌入式Linux核心课程”累计学习人数超300万。
目录
ARM那些你需要知道的事 01 1.1 ARM公司大事记 01 1.2 ARM公司的商业模式和生态系统 02 1.3 ARM处理器版本命名解析 03 1.3.1 如何描述ARM处理器的版本号 03 1.3.2 ARM处理器版本的发展历程 04 1.4 CPU和SoC的区别及外围设备的概念 05 1.4.1 CPU和SoC的区别 05 1.4.2 外围设备 06 1.5 学习平台的选择 06 1.5.1 学习平台的选择要求 06 1.5.2 为什么选择三星S5PV210 06 1.6 X210开发板介绍 07 1.7 基于单片机的嵌入式系统和基于复杂操作系统的 嵌入式系统的区别 07 1.7.1 芯片平台对比 08 1.7.2 片上资源、价格、应用领域上的对比 08 1.7.3 开发模式对比 08 1.7.4 技术特征对比 08 1.7.5 职业发展对比 09 1.8 嵌入式开发学习和编程语言、英语水平等的 关系 09 1.8.1 嵌入式开发学习和编程语言的关系 09 1.8.2 嵌入式开发学习和英语水平的关系 09 1.8.3 嵌入式开发学习和数电、模电的关系 09 1.8.4 嵌入式开发学习和专业的关系 09 1.8.5 嵌入式开发学习和个人性格的关系 10 1.9 嵌入式系统的构成、特点和发展方向 10 1.9.1 嵌入式系统的构成 10 1.9.2 嵌入式系统的特点 10 1.9.3 嵌入式系统的发展方向 11 1.10 交叉编译 12 1.10.1 软件开发的两种模式 12 1.10.2 交叉编译的特点 12 1.11 CPU的设计原理、地址总线/数据总线/控制 总线 13 1.11.1 CPU的设计原理 13 1.11.2 地址总线、数据总线和控制总线 13 1.12 嵌入式辅助开发工具 14 1.13 习题 14 ARM CPU的体系结构与汇编指令 15 2.1 可编程器件的编程原理 15 2.2 指令集对CPU的意义 16 2.3 CISC和RISC 16 2.4 统一编址和独立编址、冯·诺依曼结构和哈佛 结构 17 2.4.1 I/O与内存的统一编址和独立编址 17 2.4.2 冯·诺依曼结构和哈佛结构 18 2.5 软件编程控制硬件的关键——寄存器 19 2.5.1 寄存器的含义及查看方法 19 2.5.2 寄存器的分类 21 2.6 S5PV210的地址映射详解 21 2.7 CPU的外存储器和接口方式 24 2.7.1 SoC外存储器分类与介绍 25 2.7.2 S5PV210支持的外存储器 26 2.8 S5PV210的启动过程详解 27 2.8.1 不同计算机系统内存和外存配置的区别 27 2.8.2 S5PV210启动方式详解 28 2.8.3 X210开发板启动方式选择 30 2.9 ARM CPU的编程模式和7种工作模式 32 2.9.1 ARM CPU的编程模式 32 2.9.2 ARM CPU的7种工作模式 33 2.10 ARM CPU的37个寄存器详解 34 2.11 ARM CPU的异常处理方式简介 37 2.12 ARM汇编指令集详解 38 2.12.1 ARM汇编指令集总述 38 2.12.2 ARM汇编指令集中指令的分类及详细讲解 40 2.12.3 ARM汇编指令中的伪指令 46 2.13 习题 48 开发板、原理图和数据手册 49 3.1 开发板配置简介 49 3.2 资料导读 50 3.2.1 开发板硬件手册导读 50 3.2.2 X210核心板、底板原理图导读 51 3.2.3 S5PV210数据手册 55 3.3 开发板刷系统 56 3.3.1 刷机工具简介 56 3.3.2 开发板刷系统方法介绍 58 3.4 新开发板X210BV3S 65 3.5 习题 66 GPIO和LED 67 4.1 交叉编译工具链 67 4.2 Makefile 70 4.3 mkv210_image.c 73 4.3.1 mkv210_image.c的作用 73 4.3.2 mkv210_image.c代码解析 74 4.4 编写点亮LED程序前的相关准备工作 77 4.5 点亮LED 81 4.6 扩展:反汇编工具objdump 87 4.7 习题 89 SDRAM和重定位 90 5.1 关闭看门狗 90 5.2 设置栈和调用C程序 92 5.3 用汇编语言编写启动代码之开/关iCache 95 5.4 重定位引入与编程实现 96 5.4.1 重定位引入和链接脚本 96 5.4.2 重定位代码实现 99 5.5 SDRAM初始化 102 5.5.1 原理图中SDRAM相关部分分析 103 5.5.2 数据手册中SDRAM相关部分分析 104 5.5.3 代码实战 111 5.6 习题 117 时钟系统 118 6.1 SoC时钟系统简介 118 6.2 S5PV210的时钟系统 119 6.3 时钟设置的关键寄存器分析 126 6.4 实现时钟设置代码详解 126 6.4.1 S5PV210时钟设置的步骤分析 126 6.4.2 S5PV210时钟设置汇编语言代码分析 127 6.4.3 S5PV210时钟设置C语言代码分析 132 6.5 习题 134 串口通信 135 7.1 通信发展史及电子通信涉及的基础概念 135 7.1.1 通信发展史 135 7.1.2 电子通信中涉及的概念 136 7.2 串口通信的基本概念 138 7.3 串口通信的基本原理 140 7.4 S5PV210串口通信详解 142 7.4.1 原理框图与自动流控 142 7.4.2 3种扩展模式 144 7.4.3 串口通信中的中断与时钟 145 7.5 S5PV210串口通信编程实战 146 7.6 uart stdio的移植介绍 156 7.7 习题 164 按键和CPU中断系统 165 8.1 按键 165 8.2 S5PV210的中断体系介绍 167 8.3 异常向量表的编程处理 168 8.3.1 访问异常向量表 169 8.3.2 中断处理过程中汇编代码的使用 169 8.4 S5PV210中断处理的主要寄存器 170 8.5 中断处理的代码实现步骤 172 8.6 按键与外部中断 175 8.6.1 外部中断寄存器配置 175 8.6.2 外部中断实现按键 175 8.7 习题 176 定时器、看门狗和实时时钟等 177 9.1 定时器 177 9.2 S5PV210中的PWM定时器介绍 178 9.2.1 S5PV210的PWM定时器原理图简介 179 9.2.2 预分频器与分频器 180 9.2.3 TCNT、TCNTB、TCON和TCNTO寄存器 功能介绍 181 9.2.4 自动重载和双缓冲 183 9.3 PWM波形介绍 183 9.3.1 什么是PWM 183 9.3.2 PWM波形的生成原理 184 9.3.3 输出电平翻转器 185 9.3.4 死区生成器 185 9.4 蜂鸣器和PWM定时器编程实战 186 9.4.1 蜂鸣器的工作原理 186 9.4.2 原理图和硬件信息 187 9.4.3 驱动蜂鸣器的PWM定时器代码编写 188 9.4.4 编写C语言主函数、子函数 190 9.4.5 修改Makefile 191 9.5 看门狗 192 9.5.1 什么是看门狗及看门狗的作用 193 9.5.2 S5PV210看门狗的结构原理图 193 9.5.3 看门狗的主要寄存器 193 9.6 看门狗的编程实战 194 9.6.1 看门狗产生中断信号功能代码编写 194 9.6.2 看门狗产生复位信号功能代码编写 198 9.7 实时时钟介绍 200 9.7.1 S5PV210实时时钟的结构框图 200 9.7.2 S5PV210 RTC的主要寄存器 201 9.7.3 BCD码介绍 201 9.8 RTC编程实战 201 9.8.1 编程注意事项 201 9.8.2 实战步骤详解 202 9.8.3 示例程序详解 204 9.9 习题 208 SD卡启动 209 10.1 SD卡的特点和背景知识 209 10.2 SD卡的编程接口 210 10.2.1 物理接口 210 10.2.2 SD协议与SPI协议 210 10.3 S5PV210的SD卡启动详解 211 10.3.1 SoC为何要支持SD卡启动 211 10.3.2 SD卡启动的难点在哪里 211 10.3.3 SD卡启动流程 212 10.3.4 SoC支持SD卡启动的秘密 212 10.3.5 扇区和块的概念 213 10.3.6 用函数指针方式调用device copy function 213 10.4 S5PV210的SD卡启动实战 214 10.4.1 任务:大于16KB的.bin文件使用SD卡 启动 214 10.4.2 代码划分为两部分(BL1和BL2)编写 214 10.4.3 BL1中的重定位 216 10.4.4 BL2远跳转 217 10.5 区别于将代码分为两部分的另一种启动方式 217 10.5.1 代码分为两部分启动的缺陷 217 10.5.2 U-Boot的SD卡启动 218 10.5.3 分析U-Boot的SD卡启动细节 218 10.6 习题 218 外存芯片NAND Flash和iNAND 219 11.1 NAND Flash的型号和命名 219 11.1.1 NAND Flash的数据位 219 11.1.2 NAND Flash的功能框图 219 11.2 NAND Flash的单元组织:Block和Page 221 11.2.1 带内数据和带外数据 221 11.2.2 NAND Flash的地址时序和命令码 222 11.3 NAND Flash的坏块检查 222 11.3.1 NAND Flash的页写操作 223 11.3.2 NAND Flash的擦除和页读操作 224 11.4 SoC的NAND Flash控制器 224 11.5 NAND Flash操作代码解析 225 11.6 iNAND介绍 228 11.7 SD卡/iNAND硬件接口 228 11.7.1 SD卡命令相应的操作模式 229 11.7.2 SD卡体系结构、内部寄存器 229 11.8 SD/iNAND代码分析 230 11.8.1 Hsmmc.h头文件CMD×和ACMD×命令码 分析 230 11.8.2 Hsmmc.c文件分析 233 I2C通信 238 12.1 I2C通信介绍 238 12.2 I2C通信的时序 239 12.2.1 I2C的空闲态/忙态、起始位/结束位 239 12.2.2 I2C数据传输格式(数据位和ACK) 240 12.2.3 数据在总线上的传输协议 240 12.3 S5PV210的I2C控制器 241 12.4 X210开发板的板载重力传感器介绍 243 12.4.1 原理图 243 12.4.2 重力传感器简介 244 12.4.3 I2C从设备地址 244 12.4.4 I2C从设备的通信速率 245 12.5 I2C的通信流程 245 12.5.1 I2C的通信流程寄存器分析 245 12.5.2 重力传感器读/写寄存器流程分析 247 12.6 I2C通信代码分析 248 12.7 习题 250 A/D转换器 251 13.1 A/D转换器的引入 251 13.1.1 模拟量和数字量 251 13.1.2 什么是A/D转换器 252 13.1.3 有A/D转换器自然就有D/A转换器 252 13.2 A/D转换器的主要相关概念 252 13.2.1 量程 252 13.2.2 精度 252 13.2.3 转换速率 253 13.2.4 A/D转换器的工作时钟框图 253 13.2.5 A/D转换器的通道数 254 13.2.6 A/D转换器和电阻式触摸屏的关系 255 13.3 S5PV210的A/D转换控制器 255 13.4 硬件设计分析 258 13.5 软件设计 258 13.6 程序烧录与调试 260 13.7 习题 262 LCD屏 263 14.1 LCD简介 263 14.1.1 什么是LCD 263 14.1.2 LCD的显示原理和特点 263 14.1.3 LCD屏的种类 264 14.1.4 其他类型的显示屏 264 14.2 LCD设备的接口技术 265 14.2.1 LCD设备通信接口中的电平转换 265 14.2.2 RGB接口详解 266 14.3 LCD的显像原理和相关概念 267 14.3.1 像素及相关概念 267 14.3.2 扫描 268 14.3.3 驱动器和控制器 269 14.3.4 显示内存(显存) 269 14.3.5 LCD屏的6个主要时序参数 270 14.4 颜色在计算机中的表示 272 14.4.1 计算机中的颜色是离散的 272 14.4.2 常见像素深度 272 14.5 S5PV210的LCD控制器 273 14.5.1 虚拟屏幕叠加 274 14.5.2 虚拟显示 275 14.6 LCD编程实战 276 14.6.1 LCD控制器初始化 276 14.6.2 显示像素、刷背景、横线竖线和画圆功能的 实现 287 14.6.3 写英文和中文字符 290 14.6.4 画图 292 14.7 习题 295 触摸屏 296 15.1 输入设备简介及触摸屏介绍 296 15.1.1 触摸屏的特点 296 15.1.2 触摸屏和显示屏的联系与区别 296 15.2 电阻式触摸屏的原理 297 15.3 S5PV210的电阻式触摸屏控制器 298 15.3.1 控制器框图介绍 298 15.3.2 控制器部件的工作模式选择 299 15.3.3 控制器的主要寄存器 300 15.4 电容式触摸屏的原理 301 15.4.1 人体感知电流 301 15.4.2 专用电路计算坐标 301 15.4.3 多个区块支持多点触摸 302 15.4.4 对外提供I2C的访问接口 302 15.5 FT5x06电容触摸IC简介 302 15.6 习题 303 Shell原理和问答机制引入 304 16.1 理解Shell 304 16.1.1 什么是Shell 304 16.1.2 Shell的运行原理 305 16.1.3 Shell应用举例 305 16.2 从零写最简单的Shell 306 16.2.1 使用printf和scanf函数做输入回显 306 16.2.2 定义简单命令集 306 16.3 将简易Shell移植到开发板中 308 16.3.1 工程选定、文件复制、Makefile编写 308 16.3.2 printf和scanf函数的移植 314 16.3.3 main.c和其余文件 317 16.3.4 编译下载和调试验证 319 16.4 定义标准命令集及解析 320 16.4.1 添加cmd_parser和cmd_exec函数 321 16.4.2 自己动手写strcmp和strcpy函数 322 16.4.3 定义命令集、添加shell.h头文件 322 16.4.4 修改代码 323 16.4.5 烧录与测试 324 16.5 添加第 一个命令 326 16.5.1 命令任务分析 326 16.5.2 命令解析与命令执行 327 16.5.3 修改代码 330 16.5.4 第 一个命令的测试 331 16.6 添加其他命令 332 16.6.1 添加pwm.c文件 332 16.6.2 添加adc.c命令文件 333 16.6.3 移植printf函数 334 16.6.4 &
— 没有更多了 —
以下为对购买帮助不大的评价