zoukankan      html  css  js  c++  java
  • 关闭中断

    看芯片官方手册

    找到中断这一章节

    里面有详细的如何屏蔽中断

    下面给出210的代码.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 diasble_interrupt
        
    set_svc:
        mrs r0, cpsr
        bic r0, r0, #0x1f
        orr r0, r0, #0xd3
        msr cpsr, r0
    #define pwTCON 0x53000000
    disable_watchdog: ldr r0, =pwTCON mov r1, #0x0 str r1, [r0] 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]

    2440

    .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 diasble_interrupt
        
    set_svc:
        mrs r0, cpsr
        bic r0, r0, #0x1f
        orr r0, r0, #0xd3
        msr cpsr, r0
    
    #define pwTCON 0x53000000
    disable_watchdog:
        ldr r0, =pwTCON
        mov r1, #0x0
        str r1, [r0]
    
    disable_interrupt
        mvn r1, #0x0
        ldr r0, =0x4a000008
        str r1,[r0]    

    6410

    .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 diasble_interrupt
        
    set_svc:
        mrs r0, cpsr
        bic r0, r0, #0x1f
        orr r0, r0, #0xd3
        msr cpsr, r0
    
    #define pwTCON 0x53000000
    disable_watchdog:
        ldr r0, =pwTCON
        mov r1, #0x0
        str r1, [r0]
    
    disable_interrupt
        mvn r1, #0x0
        ldr r0, =0x71200014
        str r1, [r0]
        ldr r0, =0x71300014
        str r1, [r0]    

    三者主要的不同就在屏蔽中断的代码不一样,2440只有一个寄存器管理中断的清除,6410有两个寄存器管理中断的清除,210有4个寄存器管理中断的清除。

    这三段代码执行完每个部分之后,就需要加上 mov  pc  lr,这是把之前跳转的lr保存的pc地址给返回给pc。

  • 相关阅读:
    poj2478
    poj2376
    poj2192
    poj1062
    [HDOJ2639]Bone Collector II(第k优01背包)
    [HDOJ3466]Proud Merchants(贪心+01背包)
    [HDOJ5510]Bazinga(并查集)
    [POJ3264]Balanced Lineup(线段树,区间最值差)
    [HDOJ4325]Flowers(树状数组 离散化)
    [HDOJ5521]Meeting(最短路)
  • 原文地址:https://www.cnblogs.com/sanshijvshi/p/8336967.html
Copyright © 2011-2022 走看看