s3c2440启动代码学习笔记

本文详细介绍了ARM处理器启动代码的关键步骤,包括设置中断向量、初始化系统、配置SP、初始化SDRAM、设定CPU运行速度等。此外,还讲解了msr指令的使用方法及其对CPSR的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动代码:

设置中断向量,顺序为

RESET

UDEF

SWI

PREFETCHUDEF

DATAABT

NOP      //保留地址

IRQ

FIQ

共七个中断向量

 

机器上电后从0x00000000地址执行指令,到RESET处初始化系统

1.关闭Watchdog,否则cpu会不断重启

 

2. 如果需要使用C函数需要设置sp

  注意每个工作模式都有自己的sp,需要设置,另外上电时内存空间只有SteppingStone的4k内部ram,sp不能超过4k

  ATPCS规定栈为FD,sp指针必须指向栈顶元素,启动代码在跳转到绝对地址运行之前必须使用相对跳转指令

 

3.初始化SDRAM

4.设置cpu运行速度

5.复制运行代码到SDRAM

6.用绝对跳转指令跳转到SDRAM处运行

 

 

msr指令:将一个值赋到CPSR中,或者将一个值赋到一个寄存器中,对cpsr的读写只能用msr指令

cpsr_(位域)

位域:

c 控制域屏蔽字节(psr[7…0])
x 扩展域屏蔽字节(psr[15…8])
s 状态域屏蔽字节(psr[23.…16])

f 条件状态标志域[31:24]

 

转载于:https://www.cnblogs.com/lwp513/p/3270794.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值