s3c2440核心初始化

.text
.global _start
_start:
    b   reset
    ldr pc, _undefined_instruction
    ldr pc, _software_interrupt
    ldr pc, _prefetch_abort
    ldr pc, _data_abort
    ldr pc, _not_used
    ldr pc, _irq
    ldr pc, _fiq    

_undefined_instruction: .word   undefined_instruction
_software_interrupt:    .word   software_interrupt
_prefetch_abort:    .word   prefetch_abort
_data_abort:        .word   data_abort
_not_used:      .word   not_used
_irq:           .word   irq
_fiq:           .word   fiq

undefined_instruction:
    nop
software_interrupt:
    nop
prefetch_abort:
    nop
data_abort:
    nop
not_used:
    nop
irq:
    nop
fiq:
    nop
reset:
    bl set_svc
    bl disable_watchdog
    bl disable_interrupt
    bl disable_mmu
set_svc:              @在arm文档第a2章processor modes
    mrs r0,cpsr
    bic r0,r0,#0x1f
    orr r0,r0,#0xd3
    msr cpsr,r0 
    mov     pc,lr
#define pWTCON  0x53000000
disable_watchdog:         @在s3c2440文档18章watchdog timer special resgister 
    ldr r0,=pWTCON
    mov r1,#0x0
    str r1,[r0]
    mov pc,lr
disable_interrupt:        @在s3c2440文档的14章interrupt control中有说明,interrupt mask register
    ldr r0,=0x4a000008
    mvn r1,#0x0
    str r1,[r0]
    mov pc,lr   
disable_mmu:                      @在核文档cp15的control寄存器中有讲解
    mcr p15,0,r0,c7,c7,0  @使icache与dcache中的数据失效
    mrc p15,0,r0,c1,c0,0  
    bic r0,r0,#0x00000007 @顺带清除第1位,icache可以不清除
    mcr p15,0,r0,c1,c0,0
    mov pc,lr


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值