IP核、芯片与开发板
什么是ARM? --ARM(Advanced RISC Machines).
ARM公司本身不直接从事芯片生产,主要出售芯片技术的授权。ARM芯片中都含有ARM技术知识产权(IP)核( Intellectual Property core )。
ARM的芯片实在是太多了!和PC端的处理器主要有Intel和AMD形成鲜明的对比!
我所用的开发板是友善之臂的mini2440.她的处理器是Samsung S3C2440。
处理器结构
MMU(Memory Management Unit)内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也 负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。
UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
处理器模式
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
寄存器
要知道ARM有两种工作状态:ARM状态(执行32位ARM指令集)和Thumb状态(执行16位指令集)。这两种状态可使用的寄存器是不同的。具体地可以查表。
大小端格式 :
大端格式是字数据的高字节存储在低地址中,低字节存在高地址中。
小端格式是低地址中存放的是子数据的低字节,高地址存放的是子数据的高字节。
1.不分组寄存器R0~R7
2.分组寄存器R8~R14
R13通常用作堆栈指针(SP),寄存器14用作子程序的连接寄存器,也称为连接寄存器(Link Register,LR)。
3.程序计数器R15
4.当前程序状态寄存器(CPSR),还有5个保存程序状态寄存器(SPSRs)。
流水线结构
arm9系列处理器的流水线分为取指、译码、执行、访存、回写。
C语言内嵌汇编格式
内嵌汇编的语法:
_asm
{
指令[:指令] /*注释*/
...
[指令]
}
例如: