S3C2440的架构及启动方式

S3C2440的架构及启动方式


文章目录

  • S3C2440的架构及启动方式
    • S3C2440的架构:
    • 启动过程:(大多数ARM芯片从0地址起动)
    • ARM芯片的构成:
    • 关于寄存器的访问:
    • 如何点亮LED:
      • 看原理图,确定控制逻辑
      • 看原理图,确定引脚
      • 看手册,确认控制哪些寄存器
      • 伪指令产生的原因:
    • 汇编实现点亮LED:
    • 编译时所需Makfile:


S3C2440的架构:

S3C2440的架构及启动方式_第1张图片

启动过程:(大多数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芯片的构成:

S3C2440的架构及启动方式_第2张图片

关于寄存器的访问:

S3C2440的架构及启动方式_第3张图片

如何点亮LED:

看原理图,确定控制逻辑

S3C2440的架构及启动方式_第4张图片

看原理图,确定引脚

S3C2440的架构及启动方式_第5张图片

看手册,确认控制哪些寄存器

S3C2440的架构及启动方式_第6张图片

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

S3C2440的架构及启动方式_第7张图片

汇编实现点亮LED:

S3C2440的架构及启动方式_第8张图片

编译时所需Makfile:

S3C2440的架构及启动方式_第9张图片

你可能感兴趣的:(嵌入式杂谈,单片机,嵌入式硬件)