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。

  • 相关阅读:
    broncho a1 hack指南-准备硬件
    嵌入式GUI ftk0.1发布
    ASP.net页面防刷新
    C#反射入门教程(转)
    万物生萨顶顶
    [转载内容]C# win程序中主窗体菜单的权限控制
    VB.net技巧更新(一)
    XML与dataset里相互读取操作
    操作EXCEL代码(c#完全版)
    [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
  • 原文地址:https://www.cnblogs.com/sanshijvshi/p/8336967.html
Copyright © 2011-2022 走看看