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

📄 abl_arm_arch.h

📁 在sharp 404开发板的串口测试代码
💻 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 + -