专题**-我从内部看ARM

专题02-我从内部看ARM
核心理论
主目录
CPU执行顺序
系统加电或复位后,所有的CPU通常都从CPU制造商预先安排地址开始执行。比如s3c2410在复位后从地址0x00000000处开始执行。而嵌入式系统则将固态存储设备(FLASH)安排在这个地址上,而bootloader程序又安排在固态存储器的最前端,这样就能保证在系统加电后,CPU首先执行bootloader程序。
Bootloader启动流程
Bootloader的启动过程可分为单阶段和多阶段两种,通常多阶段的bootloader具有更复杂的功能,更好的可移植性。从固态存储设备上启动的bootloader大多采用两阶段,即启动过程可以分为stag1和stag2;stage1完成初始化硬件,为stage2准备内存空间,并将stage2复制到内存中,设置堆栈,然后跳转到stage2.
Uboot源代码下载地址:ftp://ftp.denx.de/pub/u-boot/

主目录

ARM家族大检阅

以ARM为花蕊,以ARM9,ARM11,Cortex-A8,s3c2440,s3c6410,s5pv210,ARMv6,ARMv7为花瓣。

芯片 s3c2440 s3c6410 s5pv210
ARM核 ARM9 ARM11 Cortex-A8
指令架构 ARMv4 ARMv6 ARMv7

芯片和ARM核关系:芯片手册:产品概览章节:块图(包含关系)
ARM核和指令架构关系:核手册:关键字:ARMv4|ARMv6|ARMv7(包含关系,向下兼容)

ARM核演变图:ARM经典、Cortex-M系列、Cortex-R系列、Cortex-A系列。

ARM处理器工作模式

ARM体系结构参考手册:Programmers’ Model:Processor modes
Linux用户程序运行在usr模式、Linux内核运行在svc模式下!

ARM寄存器详解

上面的表不可能凭空产生,那么上面表是怎么来的呢?也就是ARM如何获取ARM寄存器信息呢?参考《ARM体系结构参考手册》:程序员模型:寄存器。
ARM寄存器有31个通用寄存器:
ARM寄存器有6个状态寄存器:

ARM寻址方式

什么是寻址方式?
处理器根据指令信息获取所需操作数的方式。

立即数寻址:add r0, r0, #0x3f ;*r0 = *r0+0x3f
寄存器寻址:add r0, r0, r1 ;*r0 = *r0+*r1
寄存器间接寻址:ldr r0, [r1] ;*r0 = [r1]
基址变址寻址:ldr r0, [r1, #4] ;r0 = [r1+4]

LDR r0, [r1, #4] ;r0=[r1+4];
LDR r0, [r1, #4]! ;r0=[r1+4], r1=r1+4;
LDR r0, [r1], #4 ;r0=r1, r1=r1+4;

相对寻址:
BL Label

Label

Mov pc, lr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值