📄 abl_arm_arch.h
字号:
/***********************************************************************
* $Workfile: abl_arm_arch.h $
* $Revision: 1.0 $
* $Author: WellsK $
* $Date: Jun 09 2003 12:00:04 $
*
* Project: General Utilities
*
* Description:
* This file contains constant and macro definitions specific
* to the ARM architecture.
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/abl/include/abl_arm_arch.h-arc $
*
* Rev 1.0 Jun 09 2003 12:00:04 WellsK
* Initial revision.
*
*
***********************************************************************
* SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
* OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
* AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
* SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
*
* SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY
* FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A
* SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
* FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
*
* COPYRIGHT (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
**********************************************************************/
#ifndef ABL_ARM_ARCH_H
#define ABL_ARM_ARCH_H
/***********************************************************************
* ARM Hard Vector Address Locations
**********************************************************************/
#define ARM_RESET_VEC 0x00 /* ARM reset vector address */
#define ARM_UNDEF_VEC 0x04 /* ARM undefined vector address */
#define ARM_SWI_VEC 0x08 /* ARM software interrupt vector address */
#define ARM_IABORT_VEC 0x0C /* ARM prefetch abort vector address */
#define ARM_DABORT_VEC 0x10 /* ARM data abort vector address */
#define ARM_RSVD_VEC 0x14 /* Reserved */
#define ARM_IRQ_VEC 0x18 /* ARM IRQ vector address */
#define ARM_FIQ_VEC 0x1C /* ARM FIQ vector address */
/***********************************************************************
* ARM Current and Saved Processor Status Register Bits (xPSR)
**********************************************************************/
/* ARM Condition Code Flag Bits (xPSR bits [31:27]) */
#define ARM_CCFLG_N 0x80000000 /* ARM negative flag */
#define ARM_CCFLG_Z 0x40000000 /* ARM zero flag */
#define ARM_CCFLG_C 0x20000000 /* ARM carry flag */
#define ARM_CCFLG_V 0x10000000 /* ARM overflow flag */
#define ARM_CCFLG_Q 0x08000000 /* ARM 'Q' flag */
/* ARM Interrupt Disable Bits (xPSR bits [7:6]) */
#define ARM_IRQ 0x80 /* ARM IRQ mode */
#define ARM_FIQ 0x40 /* ARM FIQ mode */
/* ARM Thumb State Bit (xPSR bit [5]) */
#define ARM_THUMB 0x20 /* ARM thumb mode */
/* ARM Processor Mode Values (xPSR bits [4:0])
* Use ARM_MODE macro and constants to test ARM mode
* Example, where tmp has xPSR value:
* if (ARM_MODE(tmp, ARM_MODE_IRQ))
* statement; */
/* ARM mode selection macro */
#define ARM_MODE(m,n) (((m) & _BITMASK(5)) == (n))
#define ARM_MODE_USR 0x10 /* ARM user mode */
#define ARM_MODE_FIQ 0x11 /* ARM FIQ mode */
#define ARM_MODE_IRQ 0x12 /* ARM IRQ mode */
#define ARM_MODE_SVC 0x13 /* ARM service mode */
#define ARM_MODE_ABT 0x17 /* ARM abort mode */
#define ARM_MODE_UND 0x1B /* ARM undefined mode */
#define ARM_MODE_SYS 0x1F /* ARM system mode */
#endif /* ABL_ARM_ARCH_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -