94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2006-2021, RT-Thread Development Team
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: Apache-2.0
 | 
						|
 *
 | 
						|
 * Change Logs:
 | 
						|
 * Date           Author       Notes
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __ARMV6_H__
 | 
						|
#define __ARMV6_H__
 | 
						|
 | 
						|
 | 
						|
/*****************************/
 | 
						|
/* CPU Mode                  */
 | 
						|
/*****************************/
 | 
						|
#define USERMODE        0x10
 | 
						|
#define FIQMODE         0x11
 | 
						|
#define IRQMODE         0x12
 | 
						|
#define SVCMODE         0x13
 | 
						|
#define ABORTMODE       0x17
 | 
						|
#define UNDEFMODE       0x1b
 | 
						|
#define MODEMASK        0x1f
 | 
						|
#define NOINT           0xc0
 | 
						|
 | 
						|
#ifndef __ASSEMBLY__
 | 
						|
struct rt_hw_register
 | 
						|
{
 | 
						|
    rt_uint32_t cpsr;
 | 
						|
    rt_uint32_t r0;
 | 
						|
    rt_uint32_t r1;
 | 
						|
    rt_uint32_t r2;
 | 
						|
    rt_uint32_t r3;
 | 
						|
    rt_uint32_t r4;
 | 
						|
    rt_uint32_t r5;
 | 
						|
    rt_uint32_t r6;
 | 
						|
    rt_uint32_t r7;
 | 
						|
    rt_uint32_t r8;
 | 
						|
    rt_uint32_t r9;
 | 
						|
    rt_uint32_t r10;
 | 
						|
    rt_uint32_t fp;
 | 
						|
    rt_uint32_t ip;
 | 
						|
    rt_uint32_t sp;
 | 
						|
    rt_uint32_t lr;
 | 
						|
    rt_uint32_t pc;
 | 
						|
};
 | 
						|
#if(0)
 | 
						|
struct rt_hw_register{
 | 
						|
    rt_uint32_t r0;
 | 
						|
    rt_uint32_t r1;
 | 
						|
    rt_uint32_t r2;
 | 
						|
    rt_uint32_t r3;
 | 
						|
    rt_uint32_t r4;
 | 
						|
    rt_uint32_t r5;
 | 
						|
    rt_uint32_t r6;
 | 
						|
    rt_uint32_t r7;
 | 
						|
    rt_uint32_t r8;
 | 
						|
    rt_uint32_t r9;
 | 
						|
    rt_uint32_t r10;
 | 
						|
    rt_uint32_t fp;
 | 
						|
    rt_uint32_t ip;
 | 
						|
    rt_uint32_t sp;
 | 
						|
    rt_uint32_t lr;
 | 
						|
    rt_uint32_t pc;
 | 
						|
    rt_uint32_t cpsr;
 | 
						|
    rt_uint32_t ORIG_r0;
 | 
						|
};
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
/* rt_hw_register offset */
 | 
						|
#define S_FRAME_SIZE        68
 | 
						|
 | 
						|
#define S_PC                64
 | 
						|
#define S_LR                60
 | 
						|
#define S_SP                56
 | 
						|
#define S_IP                52
 | 
						|
#define S_FP                48
 | 
						|
#define S_R10               44
 | 
						|
#define S_R9                40
 | 
						|
#define S_R8                36
 | 
						|
#define S_R7                32
 | 
						|
#define S_R6                28
 | 
						|
#define S_R5                24
 | 
						|
#define S_R4                20
 | 
						|
#define S_R3                16
 | 
						|
#define S_R2                12
 | 
						|
#define S_R1                8
 | 
						|
#define S_R0                4
 | 
						|
#define S_CPSR              0
 | 
						|
 | 
						|
 | 
						|
#endif
 |