⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 armvic.c

📁 Free Usb Stack for NXP LPC2xxx microcontrollers.
💻 C
字号:
/****************************************************************************** * * $RCSfile$ * $Revision: 124 $ * * This module provides the interface routines for setting up and * controlling the various interrupt modes present on the ARM processor. * Copyright 2004, R O SoftWare * No guarantees, warrantees, or promises, implied or otherwise. * May be used for hobby or commercial purposes provided copyright * notice remains intact. * *****************************************************************************/#include "type.h"#include "armVIC.h"#define IRQ_MASK 0x00000080#define FIQ_MASK 0x00000040#define INT_MASK (IRQ_MASK | FIQ_MASK)static inline unsigned __get_cpsr(void){  unsigned long retval;  asm volatile (" mrs  %0, cpsr" : "=r" (retval) : /* no inputs */  );   return retval;}static inline void __set_cpsr(unsigned val){  asm volatile (" msr  cpsr, %0" : /* no outputs */ : "r" (val)  );	}unsigned disableIRQ(void){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr(_cpsr | IRQ_MASK);  return _cpsr;}unsigned restoreIRQ(unsigned oldCPSR){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK));  return _cpsr;}unsigned enableIRQ(void){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr(_cpsr & ~IRQ_MASK);  return _cpsr;}unsigned disableFIQ(void){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr(_cpsr | FIQ_MASK);  return _cpsr;}unsigned restoreFIQ(unsigned oldCPSR){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr((_cpsr & ~FIQ_MASK) | (oldCPSR & FIQ_MASK));  return _cpsr;}unsigned enableFIQ(void){  unsigned _cpsr;  _cpsr = __get_cpsr();  __set_cpsr(_cpsr & ~FIQ_MASK);  return _cpsr;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -