历史上的今天
返回首页

历史上的今天

今天是:2024年10月28日(星期一)

正在发生

2019年10月28日 | arm开关中断汇编接口

2019-10-28 来源:51hei

;                                                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


推荐阅读

史海拾趣

Gazelle Microcircuits Inc公司的发展小趣事
+12V电压是电脑主板中非常重要的电压之一,它主要用于给硬盘驱动器、光驱、风扇等大功率设备供电。这些设备通常需要较高的电压来驱动其内部的电机或机械结构。
DAYLIGHT公司的发展小趣事

DAYLIGHT公司成立于XX年,由一群富有远见卓识的电子工程师和投资者共同创立。当时,电子行业正经历着快速的技术革新,市场对高效、可靠的电子产品需求日益增加。DAYLIGHT公司凭借其独特的技术优势和创新能力,成功开发出一系列高性能的电子产品,迅速在市场中立足。

Electech Electronics公司的发展小趣事

随着公司业务的不断发展,Electech Electronics开始实施国际化战略,积极开拓海外市场。公司先后在亚洲、欧洲和北美等地设立了分公司和办事处,与当地的企业和渠道商建立了紧密的合作关系。同时,Electech Electronics还积极参加国际电子产品展会,展示公司的最新产品和技术,吸引更多的海外客户。

Euroquartz公司的发展小趣事

Euroquartz Limited成立于1982年,其发展历程中,1987年的一次收购具有重要意义。这一年,Euroquartz收购了Brookes Crystals,这是一家在第二次世界大战期间形成的英国石英晶体制造商。这一收购使Euroquartz在石英晶体领域获得了重要的技术积累和市场地位,成为了英国重要的变频控制产品制造商。

台湾君耀(Brightking)公司的发展小趣事

作为一家具有社会责任感的企业,君耀始终注重环保和可持续发展。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,君耀还积极参与各种环保活动,推动行业的绿色发展。这种理念不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

这些故事只是君耀公司发展历程中的一部分,每个阶段都充满了挑战和机遇。君耀凭借其坚韧不拔的精神、卓越的技术实力和市场洞察力,成功在电子行业中崛起并持续壮大。如需更多详细信息或具体故事,建议查阅君耀公司的官方资料、相关新闻报道或行业分析报告。

AMI [American Megatrends Inc]公司的发展小趣事

作为一家具有社会责任感的企业,君耀始终注重环保和可持续发展。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,君耀还积极参与各种环保活动,推动行业的绿色发展。这种理念不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

这些故事只是君耀公司发展历程中的一部分,每个阶段都充满了挑战和机遇。君耀凭借其坚韧不拔的精神、卓越的技术实力和市场洞察力,成功在电子行业中崛起并持续壮大。如需更多详细信息或具体故事,建议查阅君耀公司的官方资料、相关新闻报道或行业分析报告。

问答坊 | AI 解惑

15W三路输出DC/DC模块电源设计

摘要   本文介绍了一种UC3843控制的小功率多路DC/DC模块电源的详细设计过程,重点讨论了多路输出模块电源设计与单路输出的不同,详细介绍了DC/DC模块电源中常用的新型芯片UC3843的外围电路参数的设计,给出了多路输出模块电源中变压器和耦合电感 ...…

查看全部问答>

当电容老化后.....

电源的寿命很多时候取决与电解电容的寿命,但在电解电容逐渐老化的时候电容的特性都出现了什么变化? 请不吝赐教…

查看全部问答>

MCF52259读写I2C EEPROM

利用MCF52259片上i2c 控制器读写常用的at24c02 eeprom,用的开发板是我们做的NSCF52259-R1开发板 //filename: i2c_driver.h //mcf52259 i2c驱动头文件 #ifndef _NICROSYSTEM_NSCF52259R1_I2C_DRIVER_H_ #define _NICROSYSTEM_NSCF52259R1 ...…

查看全部问答>

Freescale 2009 seminar之五New Product Update Update i.MX for Consumer and Ge

New Product Update: i.MXARM9 for Consumer and General Embedded Market ►i.MXApplications Processor Overview •Target markets, product portfolio •ARM®9 portfolio comparison •Platform support ► ...…

查看全部问答>

硬件工程师的发展方向?

最近开始迷茫。。。       其实硬件方面我还是新手,可对未来的发展已经很是迷茫。。。       刚毕业一年,有幸进了一家芯片方案公司,自家的芯片,完全成熟的方案,一直以来都是熟悉熟悉,早晚熟悉完了 ...…

查看全部问答>

Treating Test Like a Product

Test engineers and magicians have a lot in common; they are both expected to pull rabbits out of a hat on command. But it doesn\'t stop there. Test engineers are expected to pull test systems out of a hat while juggling multiple p ...…

查看全部问答>

2440 usb 接线

2440的开发板! 请问usb共5线,怎么接踩可以使其正常工作! USB带有供电功能! ------------ 现在是在板子上点USB CONNECT 显示已连接,而且在PC端,ActiveSync的图片也在闪, 但过一会就显示无法连接! …

查看全部问答>

关于驱动编译(C语言)出现的问题

…… #include #include \"gpio.h\" #define PRIVATE                        static #define PUBLIC /* GPIO 寄存器对应的虚拟地址 */ PRIVATE volatile S3C6410_IOPORT_ ...…

查看全部问答>

上百个电路实用图集锦(刚才不知为何没传上,抱歉)

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 好东东  …

查看全部问答>