思路
1.关看门狗
2.设置时钟
3.初始化sdram
4.重定位
5.执行main
.text 表示代码段
.global _start (global 表示全局标号)
关看门狗
可以调c完成disable_watch_dag 确定看门狗地址0x....
ldr r0 ,=0x... ldr 违汇编指令
mov r1,#0
str r1, [r0]
设置时钟 可以用 c clock_init()
CLKDIVN 定义位置board中
ldr r0, =0x4c00001
mov r1, #0x03 0x03 分频系数 //FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1
str r1,[r0] asm 如果是c,它是标志嵌入汇编 读芯片手册,调整异步模式,根据芯片具体情况
mrc 指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断
MCR{
Rd>不能为PC,当其为PC时,指令操作结果不可预知送到得协处理器寄存器中
orr ORR指令的格式为: ORR{条件}{S} 目的寄存器,操作数1,操作数2
ORR指令用于在两个操作数上进行逻辑戒运算,并把结果放置到目的寄存器中
操作数1应该是一 个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。
该指令常用于设置操 作数1的某些位。
MRC指令将协处理器的寄存器中数值传送到ARM处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断
指令示例: ORR R0,R0,#3 ;
该指令设置R0的0、1位,其余位保持不变。
orr r0,r0,#0xd3
0xd3=1101 0111
将r0与0xd3作算数或运算,然后将结果返还给r0,即把r0的bit[7:6]和bit[4]和bit[2:0]置为1