【经典著作】《ARM嵌入式系统开发:软件设计与优化》PDF 690页
ARM嵌入式系统开发---设计与优化--1
ARM嵌入式系统开发---设计与优化--2
ARM嵌入式系统开发---设计与优化--3
ARM嵌入式系统开发---设计与优化--4
ARM嵌入式系统开发---设计与优化--5
ARM嵌入式系统开发---设计与优化--6
ARM嵌入式系统开发---设计与优化--7
ARM嵌入式系统开发---设计与优化--8
ARM嵌入式系统开发---设计与优化--9
ARM嵌入式系统开发---设计与优化--10
ARM嵌入式系统开发---设计与优化--11
ARM嵌入式系统开发---设计与优化--12
ARM嵌入式系统开发---设计与优化--13
ARM嵌入式系统开发---设计与优化--13
内容提要
本书从软件设计的角度,全面、系统地介绍了ARM处理器的基本体系结构和软件设计与优化方法。内容包括:ARM处理器基础;ARM/Thumb指令集;C语言与汇编语言程序的设计与优化;基本运算、操作的优化;基于ARM的DSP;异常与中断处理;固件与嵌入式OS;cache与存储器管理;ARMv6体系结构的特点等。全书内容完整,针对各种不同的ARM内核系统结构都有详尽论述,并有大量的例子和源代码。附录给出了完整的ARMv4/v5/Thumb指令的功能、编码、周期定时以及汇编参考。
本书适于从事ARM嵌入式系统教学与研发,或想把其它嵌入式平台的软件移植到ARM平台上去的专业技术人员使用,要求对ARM处理器有一定的了解,并有C语言和汇编语言基础。若在编译原理、操作系统、数字信号处理、计算机体系结构等方面有一定的基础,则效果会更好。本书也可作为嵌入式系统专业方向的本科生和研究生相关课程的教材或教学参考书。
ARM嵌入式系统开发:软件设计与优化
关键词: 嵌入式 系统 开发 软件 设计 优化
目录
第1章 基于ARM的嵌入式系统
1.1 RISC设计思想
1.2 ARM设计思想
1.3 嵌入式系统的硬件
1.3.1 ARM总线技术
1.3.2 AMBA总线协议
1.3.3 存储器
1.3.4 外设
1.4 嵌入式系统的软件
1.4.1 初始化(启动)代码
1.4.2 操作系统
1.4.3 应用程序
1.5 总结
第2章 ARM处理器基础
2.1 寄存器
2.2 当前程序状态寄存器
2.2.1 处理器模式
2.2.2 分组寄存器
2.2.3 状态和指令集
2.2.4 中断屏蔽
2.2.5 条件标志
2.2.6 条件执行
2.3 流水线
2.4 异常、中断及向量表
2.5 内核扩展
2.5.1 cache和紧耦合存储器
2.5.2 存储管理
2.5.3 协处理器
2.6 体系结构的不同版本
2.6.1 命名规则
2.6.2 体系结构的发展
2.7 ARM处理器系列
2.7.1 ARM7系列
2.7.2 ARM9系列
2.7.3 ARM10系列
2.7.4 ARM11系列
2.7.5 专用处理器
2.8 总结
第3章 ARM指令集
3.1 数据处理指令
3.1.1 MOVE指令
3.1.2 桶形移位器
3.1.3 算术指令
3.1.4 算术指令使用桶形移位器
3.1.5 逻辑指令
3.1.6 比较指令
3.1.7 乘法指令
3.2 分支指令
3.3 loadstore指令
3.3.1 单寄存器传送指令
3.3.2 单寄存器loadstore指令的寻址方式
3.3.3 多寄存器传送指令
3.3.4 交换指令
3.4 软件中断指令
3.5 程序状态寄存器指令
3.5.1 协处理器指令
3.5.2 协处理器15(CP15)指令语法
3.6 常量的装载
3.7 ARMv5E扩展
3.7.1 零计数指令
3.7.2 饱和算术指令
3.7.3 ARMv5E乘法指令
3.8 条件执行
3.9 总结
第4章 Thumb指令集
4.1 Thumb寄存器的使用
4.2 ARM-Thumb交互
4.3 其它分支指令
4.4 数据处理指令
4.5 单寄存器load-store指令
4.6 多寄存器load-store指令
4.7 堆栈指令
4.8 软件中断指令
4.9 总结
第5章 高效的C编程
5.1 C编译器及其优化概述
5.2 基本的C数据类型
5.2.1 局部变量类型
5.2.2 函数参数类型
5.2.3 有符号数与无符号数
5.3 C循环结构
5.3.1 固定次数的循环
5.3.2 不定次数的循环
5.3.3 循环展开
5.4 寄存器分配
5.5 函数调用
5.6 指针别名
5.7 结构体安排
5.8 位域
5.9 边界不对齐数据和字节排列方式(大/小端)
5.10 除法
5.10.1 带余数的无符号重复除法
5.10.2 把除转换为乘
5.10.3 除数是常数的无符号除法
5.10.4 除数是常数的有符号除法
5.11 浮点运算
5.12 内联函数和内嵌汇编
5.13 移植问题
5.14 总结
第6章 ARM汇编与优化
6.1 编写汇编代码
6.2 性能分析和周期计数
6.3 指令调整
6.4 寄存器分配
6.4.1 分配变量给寄存器
6.4.2 使用超过14个的局部变量
6.4.3 最大限度地使用寄存器
6.5 条件执行
6.6 循环结构
6.6.1 减计数循环
6.6.2 展开计数循环
6.6.3 多层嵌套循环
6.6.4 其它计数循环
6.7 位操作
6.7.1 固定宽度的位域打包和解包
6.7.2 可变宽度编码的位流打包
6.7.3 可变宽度编码的位流解包
6.8 高效的switch
6.8.1 在范围0≤x 6.8.2 基于通用变量x的switch
6.9 边界不对齐数据的处理
6.10 总结
第7章 基本运算优化
7.1 双精度整数乘法
7.1.1 长整型乘法
7.1.2 128位结果的无符号64位乘法
7.1.3 128位结果的有符号64位整数乘法
7.2 整数规格化和前导0计数
7.2.1 ARMv5及以上体系结构的整数规格化
7.2.2 在ARMv4体系结构上的规格化
7.2.3 后缀0计数
7.3 除法
7.3.1 通过试探减法实现无符号数除法
7.3.2 无符号整数的NewtonRaphson除法
7.3.3 无符号小数NewtonRaphson除法
7.3.4 有符号数除法
7.4 平方根
7.4.1 通过试探减法计算平方根
7.4.2 使用NewtonRaphson迭代计算平方根
7.5 超越函数:log,exp,sin,cos
7.5.1 以2为底的对数运算
7.5.2 2的乘幂
7.5.3 三角函数
7.6 字节顺序反转和位操作
7.6.1 字节顺序反转
7.6.2 位变换
7.6.3‘1’位计数
7.7 饱和及舍入运算
7.7.1 饱和32位数到16位
7.7.2 饱和左移
7.7.3 舍入右移
7.7.4 饱和的32位加减法
7.7.5 饱和绝对值
7.8 随机数产生
7.9 总结
第8章 数字信号处理
8.1 表示一个数字信号
8.1.1 选择一种表示方法
8.1.2 操作以定点格式存储的值
8.1.3 定点信号的加法和减法
8.1.4 定点信号的乘法
8.1.5 定点信号的除法
8.1.6 定点信号的平方根
8.1.7 小结:数字信号的表示
8.2 基于ARM的DSP介绍
8.2.1 ARM7TDMI的DSP
8.2.2 ARM9TDMI的DSP
8.2.3 StrongARM的DSP
8.2.4 ARM9E的DSP
8.2.5 ARM10E的DSP
8.2.6 Intel Xscale的DSP
8.3 FIR滤波器
8.4 IIR滤波
8.5 离散傅里叶变换
8.6 总结
第9章 异常和中断处理
9.1 异常处理
9.1.1 ARM处理器模式及异常
9.1.2 向量表
9.1.3 异常优先级
9.1.4 链接寄存器偏移
9.2 中断
9.2.1 分配中断
9.2.2 中断延迟
9.2.3 IRQ与FIQ异常
9.2.4 基本的中断堆栈设计与实现
9.3 中断处理方法
9.3.1 非嵌套中断处理
9.3.2 嵌套中断处理
9.3.3 可重入中断处理
9.3.4 优先级简单中断处理
9.3.5 优先级标准中断处理
9.3.6 优先级直接中断处理
9.3.7 优先级分组中断处理
9.3.8 基于VIC PL190的中断服务例程
9.4 总结
第10章 固件
10.1 固件和引导装载程序
10.1.1 ARM Firmware Suite
10.1.2 Red Hat Redboot
10.2 例子:Sandstone
10.2.1 Sandstone的目录结构
10.2.2 Sandstone的代码结构
10.3 总结
第11章 嵌入式操作系统
11.1 基本模块
11.2 实例:简单小型操作系统SLOS
11.2.1 SLOS目录结构
11.2.2 初始化
11.2.3 存储模型
11.2.4 中断和异常处理
11.2.5 调度程序
11.2.6 上下文切换
11.2.7 设备驱动程序框架
11.3 总结
第12章 高速缓冲存储器cache
12.1 存储层次和cache
12.2 cache结构
12.2.1 cache存储器的基本结构
12.2.2 cache
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |