ARM
ARM( Advanced RISC Machine**)** 是全球最流行的处理器架构之一,广泛应用于智能手机、嵌入式系统、物联网设备等领域。


冯.诺依曼架构:指令和数据共享一块空间
哈佛架构:指令和数据分别有独立的存储空间(绝大多数计算器使用哈弗架构)

RISC :Reduced Instruction Set Computer, 精简指令集
芯片简单、成本低 、体积小、功耗小
CISC :Complex Instruction Set Computer,复杂指令集
性能强、芯片复杂、成本高、体积高,功耗大
x86 :复杂指令集架构
ARM:精简指令集架构
ARM处理器:
ARM1 ARM7 ARM8 ARM9
CortexA:Application 高端应用领域 消费电子 CortexA7 CortexA8 CoretxA9 CortexA97
CortexR:Real-time 实时性领域
CortexM: Micro 微控制领域
stm32f103 ARM:Cortex-M3 st:意法半导体
Samsung Gaxly Note:CortexA8
Enxoy 4412:CorteA9

通用寄存器(内核16):
ALU : 运算逻辑单元
pc (programmer counter ):R15 程序计数器,本质上是一个指针,指向当前正在处理的指令的下一条指令
lr( linked regiter):R14 链接寄存器,保存函数返回地址
sp (stack pointer):R13 栈指针寄存器,用于管理栈区空间
CPSR :current programmer status register,当前程序状态寄存器,存放程序运行到某一步时相关的状态(溢出、进位、借位)
SPSR :save programmer status register,保存程序状态寄存器,当异常发生时,保存CPSR寄存器中的值
MMU:Memory Management Unit,内存管理单元,将程序中的虚拟内存空间映射到实际物理内存空间,提高物理内存利用率

CACHE : 高速缓存,提高CPU访问数据的速度
DCACHE : data cache, 数据缓存
ICACHE:instruction cache,指令缓存

eeprom AT24C02 2048bit 256byte
nor flash :每一个字节都可以被寻址,带有地址总线和数据总线,数据访问时可以向RAM一样(单片机)NOR Flash 是"内存型"闪存,适合存代码

nand flash : 块设备数据,通常以512byte去访问(电脑、SOC),地址,数据和命令共用IO引脚,NAND Flash 是"磁盘型"闪存,适合存数据


内核版本:CortexA97
指令集版本:armv8
imx6ull -> Cortex-A7 -> armv7
s3c2440 -> ARM920T -> armv4te
Exnoy4412 -> Cortex-A9 -> armv8
大端存储:内存低地址存放高数据位,内 存高地址存放低数据位
小端存储:内存低地址存放低数据位,内存高地址存放高数据位(SOC)
中断向量: 标号,根据向量找 到中断向量表中的中断服务函数
中断向量表 :数组,数组中存 放的是中断服务函数的入口地址
void (*p5)(void) = {fn1, fn2, fn3, fn4, fn5};
异常向量:跳转到异常服务函数指令的地址
异常向量表 :数组,数组中存放的是跳转到对 应异常服务函数的指令
0x00:b reset_handler
0x04:b undefine_handler
void rest_handler(void) // 复位异常函数
{
}
void undefine_handler(void) // 未定义指令异常函数
{
}
逻辑右移(LSR) :最高位补0,不需要考虑数值的符号位(无符号数)
算术右移(ASR) :最高位补符号位,考虑数值的符号位(有符号数)
循环右移(ROR) :循环将每次移出的最低位补到最高位
1011 0010 >>(lsr) 1 : 0101 1001
1011 0010 >>(asr) 1 : 1101 1001
1011 0010 >>(ror) 1:0101 1001 1010 1100
单总线 :内核和外设之间通过一组线连接通信
双总线 :内核和外设之间通过两组线通信
AHB : Advanced High Bus,先进高速总线(USB、网口、RAM)
APB:Advanced Peripheral Bus,先进外设总线(Timer、GPIO、UART)








