u-boot关闭中断

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

_undifined_instruction: .word undifined_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 reset

undifined_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

set_svc:
mrs r0, cpsr
bic r0, r0,#0x1f
orr r0, r0,#0xd3
msr cpsr, r0
mov pc, lr

#define pWTCON 0x53000000
disable_watchdog:
ldr r0, =pWTCON
mov r1, #0x0
str r1, [r0]
mov pc, lr


//2440和6410以及210关闭中断的操作不一样

//2440
disable_interrupt:
mvn r1, #0x0 //mvn取反传送,r1=0x1
ldr r0, =0x4a000008 //0x4a000008为INTMSK寄存器的地址
str r1, [r0]
mov pc, lr


//6410的使能中断和屏蔽中断用的是不同的寄存器
disable_interrupt:
mvn r1,#0x0
ldr r0,=0x71200014 //VIC0INTENCLEAR 寄存器地址
str r1,[r0]

ldr r0,=0x71300014 //  VIC1INTENCLEAR寄存器地址
str r1,[r0]
mov pc, lr

//210和6410一样,使能中断和屏蔽中断用的是不同的寄存器
disable_interrupt:
mvn r1,#0x0
ldr r0,=0xf2000014
str r1,[r0]

ldr r0,=0xf2100014
str r1,[r0]

ldr r0,=0xf2200014
str r1,[r0]

ldr r0,=0xf2300014
str r1,[r0]
mov pc, lr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值