58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
/* esfArm-m.h - ARM exception stack frames */
|
|
|
|
/*
|
|
* Copyright (c) 2012 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01c,10may12,j_b fix tabs/spacing
|
|
01b,03may12,j_b replace "-" in filename include macro
|
|
01a,03apr12,j_b created from target/h/arch/arm/esfArm.f version 01b
|
|
*/
|
|
|
|
#ifndef __INCesfArm_mh
|
|
#define __INCesfArm_mh
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
|
|
/*
|
|
* The Exception Stack Frame
|
|
* On ARMv7-M, this is faked by a stub and the pointer
|
|
* passed back points to the PC and PSR at the end of the
|
|
* register structure. If that changes, so must this.
|
|
*
|
|
* I.E., REG_SET struct & ESF struct 'overlap' on last 4
|
|
* elements of REG_SET (pc, psr, primask and basepri).
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
INSTR *pc; /* program counter */
|
|
ULONG psr; /* combined A/I/E PSR */
|
|
ULONG basepri; /* BASEPRI */
|
|
ULONG demcr; /* MON_STEP in DEMCR */
|
|
ULONG primask; /* PRIMASK */
|
|
ULONG faultmask; /* FAULTMASK */
|
|
ULONG control; /* CONTROL */
|
|
UINT32 vecNum; /* exception number */
|
|
} ESF;
|
|
|
|
#endif /* _ASMLANGUAGE */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCesfArm_mh */
|