;                                                EQUATES

;********************************************************************************************************

CPU_ARM_CTRL_INT_DIS  EQU       0xC0                            ; Disable both FIQ & IRQ


;********************************************************************************************************

;                                      CODE GENERATION DIRECTIVES

;********************************************************************************************************

    AREA _CPU_A_CODE_, CODE, READONLY

    ARM


;$PAGE 

;********************************************************************************************************

;                                      CRITICAL SECTION FUNCTIONS

;

; Description : Disable/Enable interrupts by preserving the state of interrupts.  Generally speaking, the 

;               state of the interrupt disable flag is stored in the local variable 'cpu_sr' & interrupts

;               are then disabled ('cpu_sr' is allocated in all functions that need to disable interrupts).

;               The previous interrupt state is restored by copying 'cpu_sr' into the CPU's status register.

;

; Prototypes  : CPU_SR  CPU_SR_Save   (void);

;               void    CPU_SR_Restore(CPU_SR cpu_sr);

;********************************************************************************************************

CPU_SR_Save

        MRS     R0, CPSR

CPU_SR_Save_Loop

                                                                ; Set IRQ & FIQ bits in CPSR to DISABLE all interrupts

        ORR     R1, R0, #CPU_ARM_CTRL_INT_DIS

        MSR     CPSR_c, R1

        MRS     R1, CPSR                                        ; Confirm that CPSR contains the proper interrupt disable flags

        AND     R1, R1, #CPU_ARM_CTRL_INT_DIS

        CMP     R1,     #CPU_ARM_CTRL_INT_DIS

        BNE     CPU_SR_Save_Loop                                ; NOT properly DISABLED (try again)

        BX      LR                                              ; DISABLED, return the original CPSR contents in R0


CPU_SR_Restore                                                  ; See Note #2

        MSR     CPSR_c, R0

        BX      LR


;$PAGE 

;********************************************************************************************************

;                                     CPU ASSEMBLY PORT FILE END

;********************************************************************************************************

        END


关键字:arm  开关中断  汇编接口 引用地址:arm开关中断汇编接口

上一篇:关于__user_initial_stackheap( )
下一篇:ARM mini2440裸奔 跑LCD手写代码

推荐阅读

        PingWest品玩 10月23日讯,据国外媒体报道,华为今年将不会在美国出售其最新旗舰智能手机Mate 20和Mate 20 Pro。但用户或能在美国的网络上使用兼容GSM(全球移动通信系统)的国际版Mate 20和Mate 20 Pro。具体来说,这些手机可在AT&T或T-Mobile的网络上运行。        今年一月,由于政治压力,美国两大电信运营商Verizon与...
近日,三星手机指纹识别被爆出存在漏洞,中国银行发布公告,暂时关闭相关型号手机的指纹登录功能,引发人们对指纹支付安全性的思考。今天就为大家梳理一下事件的过程,探讨一下指纹支付是否安全。起因:一对英国夫妇采用全包硅胶套录入指纹据英国媒体报道,三星手机的指纹漏洞由一对英国夫妇发现,这部S10是男主送给女主的礼物,并第一时间给新机套上了网...
环路增益是描述开关模式电源特性的一个重要参数。使用频率分析仪来测定环路增益能让您稳定电源并优化瞬态响应。在测定波特图之前,您需先断开环路并在断点处插入一个小型电阻器,如图1所示。该频率分析仪有一个信号源,可跨该小型电阻器注入交流(AC)干扰信号vds。 图1:典型的波特图测定设置其结果是,AC波动出现在跨该断点的两个节点(A和B)处。该频...
今(27)日,台积电董事长刘德音以台湾半导体产业协会(TSIA)理事长身份出席TSIA首度召开的在线年会开幕致词。他提到,TSIA统计2020年中国台湾地区半导体产业产值已突破3万亿元新台币,今年产值突破4万亿元新台币,成长24.7%。2019年底开始的新冠疫情在全球蔓延已快两年,使得全球半导体供应链遭遇很大冲击,然而中国台湾半导体产业仍然创造出制造第一、...

史海拾趣

问答坊 | AI 解惑

简化传感器控制设计

赛普拉斯公司的CY8C21×34可编程系统级芯片(PSoC)混合信号阵列具有一个I/O模拟多路复用器,由于每个引脚都可以被用作一个模拟输入,因此采用单个SoC便能够轻松实现需要大量不同类型传感器的控制应用。本文介绍了在多种传感器控制应用中如何利用该器 ...…

查看全部问答∨

简易示波器,FPGA源码

本帖最后由 paulhyde 于 2014-9-15 02:59 编辑 简易示波器,FPGA源码    …

查看全部问答∨

怎样提高485总线的可靠性?

1 问题的提出     在应用系统中,RS-485半双工异步通信总线是被各个研发机构广泛使用的数据通信总线,它往往应用在集中控制枢纽与分散控制单元之间。系统简图如图1所示。 图1. RS-485系统示意图   由于实际应用系统中,往往分散控 ...…

查看全部问答∨

周立功NXP_LPC21xx22xx_系列ARM_芯片的启动程序分解

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑 周立功NXP_LPC21xx22xx_系列ARM_芯片的启动程序分解,要好好学习一下哦……  …

查看全部问答∨

上电前插入USB设备,启动后无法识别

我们的平台usb设备电源是上电后就一直供应的,这样造成了一些上电前插入的USB设备在系统启动后无法识别,必须重新插拔一次.有些设备又可以正常识别. DEBUG usb 驱动发现,usb驱动在初始化的时候会查询每个端口的状态,并且会尝试枚举设备,但是上电前插 ...…

查看全部问答∨

C#2005写的文件读写怎么在wince5.0中不能打开和创建文件呢?

我只要读写.TXT 的文件就可以了。 会写的告诉我下可以吗? 谢谢拉…

查看全部问答∨

有没220V输入,5V输出的开关电源原理图

有没220V输入,5V输出的开关电源原理图有没220V输入,5V输出的开关电源原理图有没220V输入,5V输出的开关电源原理图,谢谢啦…

查看全部问答∨

PCF8591

有没有高手会PCF8591的使用啊?可否指教一下,我只想简单地输出一个1/2Vref的电压…

查看全部问答∨

430g2553定时器问题

请问430g2553为什么没有TA2引脚而只有TA1.x和TA0.x呢?TA1和TA0里的1和0分别代表什么?两者又有什么区别?求指教! …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved