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。

  • 相关阅读:
    [SHOI2015]自动刷题机
    【教程】AI画放射图
    AI画圆角矩形
    极限运动:街头极限单车,不只是牛逼!
    DPK750针式打印机驱动,750u.dll下载
    文艺青年必看的Ⅹ部心理电影
    C语言程序设计-第2章 算法-程序的灵魂
    C语言程序设计-第1章 程序设计和C语言
    20151127笔记
    20151125小概念
  • 原文地址:https://www.cnblogs.com/sanshijvshi/p/8336967.html
Copyright © 2011-2022 走看看