📄 cpu_reg.h
字号:
/* MShowTec - www.mshowtec.com
** msLinux cpu_reg.h ver1.0
** 20051221 lmjx create limiao@mshowtec.com
**
*/
#ifndef MSLINUX_CPU_REG_H
#define MSLINUX_CPU_REG_H
/*ARMulate ver*/
/*******************************************************************************/
/* Base addresses for standard memory-mapped peripherals */
/*******************************************************************************/
#define IntBase 0x0A000000 /* Interrupt Controller Base */
#define TimerBase 0x0A800000 /* Counter/Timer Base */
/*******************************************************************************/
/* RPS interrupt Controller IRQ register */
/*******************************************************************************/
#define IRQStatus ((volatile unsigned *)IntBase)
#define IRQRawStatus ((volatile unsigned *)(IntBase + 0x04))
#define IRQEnable ((volatile unsigned *)(IntBase + 0x08))
#define IRQEnableSet ((volatile unsigned *)(IntBase + 0x08))
#define IRQEnableClear ((volatile unsigned *)(IntBase + 0x0c))
#define IRQSoft ((volatile unsigned *)(IntBase + 0x10))
#define FIQStatus ((volatile unsigned *)(IntBase + 0x100))
#define FIQRawStatus ((volatile unsigned *)(IntBase + 0x104))
#define FIQEnable ((volatile unsigned *)(IntBase + 0x108))
#define FIQEnableSet ((volatile unsigned *)(IntBase + 0x108))
#define FIQEnableClear ((volatile unsigned *)(IntBase + 0x10c))
/*******************************************************************************/
/* RPS interrupt sources */
/*******************************************************************************/
#define IRQUser 0x0001
#define IRQProgrammed 0x0002
#define IRQCommsRx 0x0004
#define IRQCommsTx 0x0008
#define IRQTimer1 0x0010
#define IRQTimer2 0x0020
/*******************************************************************************/
/* Counter/timer registers */
/*******************************************************************************/
#define Timer1Load ((volatile unsigned *)TimerBase)
#define Timer1Value ((volatile unsigned *)(TimerBase + 0x04))
#define Timer1Control ((volatile unsigned *)(TimerBase + 0x08))
#define Timer1Clear ((volatile unsigned *)(TimerBase + 0x0C))
#define Timer2Load ((volatile unsigned *)(TimerBase + 0x020))
#define Timer2Value ((volatile unsigned *)(TimerBase + 0x024))
#define Timer2Control ((volatile unsigned *)(TimerBase + 0x028))
#define Timer2Clear ((volatile unsigned *)(TimerBase + 0x02C))
/*******************************************************************************/
/* Counter/Timer control register bits */
/*******************************************************************************/
#define TimerEnable 0x80
#define TimerPeriodic 0x40
#define TimerPrescale0 0x00
#define TimerPrescale4 0x04
#define TimerPrescale8 0x08
#define TimerDisable 0
#define TimerCyclic 0x00
/*********************************************************************/
/* tty print */
/********************************************************************/
#define TtyOut ((volatile unsigned *)0x0d800020)
/******************************************************************************/
/* arm linker args */
/******************************************************************************/
__weak extern unsigned long Load$$ESRAM$$Base;
__weak extern unsigned long Image$$ESRAM$$Base;
__weak extern unsigned long Image$$ESRAM$$Length;
__weak extern unsigned long Image$$ESRAM$$ZI$$Base;
__weak extern unsigned long Image$$ESRAM$$ZI$$Length;
__weak extern unsigned long Load$$MEMORY$$Base;
__weak extern unsigned long Image$$MEMORY$$Base;
__weak extern unsigned long Image$$MEMORY$$Length;
__weak extern unsigned long Image$$MEMORY$$ZI$$Base;
__weak extern unsigned long Image$$MEMORY$$ZI$$Length;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -