导读:
基于ARM作者的ARM原著《ARM System Developer’s Guide》
在拜读过程中的收获和知识点记录下来,便于日后复习。
包含了ARM所有知识如指令集,体系结构,等等。
包含如下部分:
1. ARM处理器基础
2. ARM指令集
3. Thumb指令集
4. 高效C编程
5. 优化汇编代码
6. Optimized Primitives
7. DSP
8. 异常和中断处理
9. 固件(firmware)
10. 嵌入式操作系统
11. Caches
12. MPU
13. MMU
一、ARM处理器基础
- 寄存器
- CPSR
- Pipeline
- 异常,中断与向量表
- 核心扩展
二、ARM 指令集
1.数据处理指令
点击这里进入Data Processing Instruction
包含move,arithmetic,logical,comparison,multiply instruction和barrel shifter
2.分支指令、Load-store指令、软件中断指令、psr指令、coprocessor 指令、loading constant、ARMv5E扩展指令(条件执行,前导零指令,饱和运算)
三、Thumb 指令集
thumb是在16bit总线处理器中比ARM更高效的指令集。
点击这里进入Thumb指令集
- Data processing instruction
- Branch instruction
四、高效C编程
致力于基于ARM的C代码更高效。
1. 基础数据类型,loop,寄存器分配,函数调用,指针别名的高效代码
链接:http://blog.csdn.net/feather_wch/article/details/50456850
2. 结构体,bit-fields,unalined data and endianness
链接:http://blog.csdn.net/feather_wch/article/details/50478811
3.除法,浮点数,内联函数和汇编
链接:http://blog.csdn.net/feather_wch/article/details/50485706
五、编写和优化汇编代码
链接:http://blog.csdn.net/feather_wch/article/details/50634711
为了获得更高的性能,可以使用手写的汇编代码来优化核心的部分。 本章核心就是如何编写高效的汇编代码以以提升性能。
六、 Optimized Primitives
“primitive”是广泛使用于不同算法和程序的基础操作。例如,加减乘除,随机数的产生,这些都是“primitives”。一些primitives是由ARM指令集直接提供的—包括32bit的加,乘。但是,很多的primitives需要我们编写routines去实现它们,就如随机数的产生。
链接:http://blog.csdn.net/feather_wch/article/details/50643060
七、DSP(数字信号处理)
链接:http://blog.csdn.net/feather_wch/article/details/50643074
八、异常和中断处理
本章节主要分为三个部分:
1. Exception handling
链接如下:http://blog.csdn.net/feather_wch/article/details/50491297
包含内容:
1. ARM异常和模式:core处理异常时的操作,几种模式介绍。
2. Vector table
3. 异常优先级
4. lr偏移:几种异常如何返回
2. Interrupts
链接如下:http://blog.csdn.net/feather_wch/article/details/50496164
主要讲解IRQ和FIQ中断,会包括如下内容:
1. Assigning interrupts
2. Interrupt latency
3. IRQ and FIQ exceptions
4. Basic interrupt stack design and implements
3. Interrupt handling schemes
链接如下:http://blog.csdn.net/feather_wch/article/details/50522007
包括8种interrupt scheme从简单的无嵌套中断,到高级的优先级分组中断。
九、Firmware
链接:http://blog.csdn.net/feather_wch/article/details/50531822
包含固件和bootloader的讲解,Firmware execution flow,ARM Firmware suite and Red Hat Redboot, 此外以Sandstone实际代码为例讲解了firmware execution flow的5 step。
十、Embeded Operating system
链接:http://blog.csdn.net/feather_wch/article/details/50535234
本章包含两部分:
1. 讲述组成嵌入式操作系统的基础组件和关于ARM处理器的特殊问题
2. 通过简单的嵌入式操作系统Simple Little Operating System(SLOS) 来看看基础组件的实现
十一、Caches
链接:http://blog.csdn.net/feather_wch/article/details/50560647
涉及到cache的结构,cache policy,cache的clean和flush操作,以及cache lockdown,最后讲解了如何通过对cache的理解编写出高效代码。
十二、MPU
链接:http://blog.csdn.net/feather_wch/article/details/50607209
在region基础上提供了硬件保护的能力。
十三、MMU
链接:http://blog.csdn.net/feather_wch/article/details/50649680