S3C2440的架构及启动方式
文章目录
S3C2440的架构:
启动过程:(大多数ARM芯片从0地址起动)
1. NOR 启动,NOR Flash基地址为0,片内RAM的地址为0X4000,0000;CPU读出NOR Flash上的第一条指令(4Byte)执行;CPU继续读出其它指令执行。
2. Nand 启动,片内4K RAM 的基地址为0,NOR Flash 不可访问,上电后S3C2440硬件自动把Nand Flash 前 4K 的内容复制到片内 RAM ,然后CPU从0地址取出第一条指令执行。
ARM芯片的构成:
关于寄存器的访问:
如何点亮LED:
看原理图,确定控制逻辑
看原理图,确定引脚
看手册,确认控制哪些寄存器
1. 设置GPFCON [9:8] = 0b01, GPF4配置为输出,===> 把0x100写到GPFCON即写到地址0x56000050上
2. 设置GPFDAT[4] = 1 输出高电平,LED熄灭,===> 把0x10写到地址0x56000054上
设置GPFDAT[4] = 0 输出低电平,LED点亮,===> 把0写到地址0c56000054上
几条汇编代码:
1. LDR(load) 读内存 LDR R0, [R1] 假设R1的值为x,读取地址x上的数据(4字节),储存到R0中(4字节)。
2. STR(store)写内存 STR R0, [R1] 假设R1的值为x,把R0的值,写到地址x上去(4字节)。
3. B 跳转
4. MOV(move) MOV R0, R1 把R1的值赋给R0 MOV R0, #0x100 R0 = 0x100
5. LDR LDR R0, =0x12345678 伪指令,它会被拆分为几条真正的ARM指令
伪指令产生的原因:
MOV R0, #0X12345678 错误指令