ARM 知识汇总

导读:
基于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处理器基础

点击这里进入链接

  1. 寄存器
  2. CPSR
  3. Pipeline
  4. 异常,中断与向量表
  5. 核心扩展

二、ARM 指令集

1.数据处理指令

点击这里进入Data Processing Instruction
包含move,arithmetic,logical,comparison,multiply instruction和barrel shifter

2.分支指令、Load-store指令、软件中断指令、psr指令、coprocessor 指令、loading constant、ARMv5E扩展指令(条件执行,前导零指令,饱和运算)

点击这里进入ARM指令集下


三、Thumb 指令集

thumb是在16bit总线处理器中比ARM更高效的指令集。
点击这里进入Thumb指令集

  1. Data processing instruction
  2. 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

猜你喜欢

转载自blog.csdn.net/feather_wch/article/details/50429800