S3C2440的架构及启动方式

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 错误指令

在这里插入图片描述

汇编实现点亮LED:

在这里插入图片描述

编译时所需Makfile:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值