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

📄 atlas.h

📁 MIPS架构UCOS-ii移植例程
💻 H
📖 第 1 页 / 共 4 页
字号:

/* RTC Register B bit map definitions */
#define RTC_REGB_SET_SHF              7 
#define RTC_REGB_SET_MSK              (MSK(1) << RTC_REGB_SET_SHF)
#define RTC_REGB_SET_BIT              RTC_REGB_SET_MSK

#define RTC_REGB_PIE_SHF              6
#define RTC_REGB_PIE_MSK              (MSK(1) << RTC_REGB_PIE_SHF)
#define RTC_REGB_PIE_BIT              RTC_REGB_PIE_MSK

#define RTC_REGB_AIE_SHF              5
#define RTC_REGB_AIE_MSK              (MSK(1) << RTC_REGB_AIE_SHF)
#define RTC_REGB_AIE_BIT              RTC_REGB_AIE_MSK

#define RTC_REGB_UIE_SHF              4
#define RTC_REGB_UIE_MSK              (MSK(1) << RTC_REGB_UIE_SHF)
#define RTC_REGB_UIE_BIT              RTC_REGB_UIE_MSK

#define RTC_REGB_SQWE_SHF             3
#define RTC_REGB_SQWE_MSK             (MSK(1) << RTC_REGB_SQWE_SHF)
#define RTC_REGB_SQWE_BIT             RTC_REGB_SQWE_MSK

#define RTC_REGB_DM_SHF               2
#define RTC_REGB_DM_MSK               (MSK(1) << RTC_REGB_DM_SHF)
#define RTC_REGB_DM_BIT               RTC_REGB_DM_MSK
#define RTC_REGB_DM_BIN               1
#define RTC_REGB_DM_BCD               0

#define RTC_REGB_HF_SHF               1
#define RTC_REGB_HF_MSK               (MSK(1) << RTC_REGB_HF_SHF)
#define RTC_REGB_HF_BIT               RTC_REGB_HF_MSK
#define RTC_REGB_HF_24                1
#define RTC_REGB_HF_12                0

#define RTC_REGB_DSE_SHF              0    
#define RTC_REGB_DSE_MSK              (MSK(1) << RTC_REGB_DSE_SHF)
#define RTC_REGB_DSE_BIT              RTC_REGB_DSE_MSK


/* RTC Register C bit map definitions */
#define RTC_REGC_IRQF_SHF             7
#define RTC_REGC_IRQF_MSK             (MSK(1) << RTC_REGC_IRQF_SHF)
#define RTC_REGC_IRQF_BIT             RTC_REGC_IRQF_MSK

#define RTC_REGC_PF_SHF               6
#define RTC_REGC_PF_MSK               (MSK(1) << RTC_REGC_PF_SHF)
#define RTC_REGC_PF_BIT               RTC_REGC_PF_MSK

#define RTC_REGC_AF_SHF               5
#define RTC_REGC_AF_MSK               (MSK(1) << RTC_REGC_AF_SHF)
#define RTC_REGC_AF_BIT               RTC_REGC_AF_MSK

#define RTC_REGC_UF_SHF               4
#define RTC_REGC_UF_MSK               (MSK(1) << RTC_REGC_UF_SHF)
#define RTC_REGC_UF_BIT               RTC_REGC_UF_MSK


/* RTC Register D bit map definitions */
#define RTC_REGD_VRT_SHF              7
#define RTC_REGD_VRT_MSK              (MSK(1) << RTC_REGD_VRT_SHF)
#define RTC_REGD_VRT_BIT              RTC_REGD_VRT_MSK

#define RTC_REGD_DA_SHF               0
#define RTC_REGD_DA_MSK               (MSK(6) << RTC_REGD_DA_SHF)



/************************************************************************
 *  C code I/O Register access definitions
*************************************************************************/

#ifndef _ASSEMBLER_

#include "sysdefs.h"

#ifdef __cplusplus
extern "C" {
#endif

/* REVISION */
#define aREVISION       (KSEG1BASE+ATLAS_REVISION)
#define rREVISION       REG32(aREVISION)

/* Green LED */
#define rLEDGREEN       REG32(KSEG1(ATLAS_LEDGREEN))

/* LED BAR */
#define rLEDBAR         REG32(KSEG1(ATLAS_LEDBAR))

/* ASCII LEDs */
#define rASCIIWORD      REG32(KSEG1(ATLAS_ASCIIWORD))
#define rASCIIPOS0      REG32(KSEG1(ATLAS_ASCIIPOS0))
#define rASCIIPOS1      REG32(KSEG1(ATLAS_ASCIIPOS1))
#define rASCIIPOS2      REG32(KSEG1(ATLAS_ASCIIPOS2))
#define rASCIIPOS3      REG32(KSEG1(ATLAS_ASCIIPOS3))
#define rASCIIPOS4      REG32(KSEG1(ATLAS_ASCIIPOS4))
#define rASCIIPOS5      REG32(KSEG1(ATLAS_ASCIIPOS5))
#define rASCIIPOS6      REG32(KSEG1(ATLAS_ASCIIPOS6))
#define rASCIIPOS7      REG32(KSEG1(ATLAS_ASCIIPOS7))

/* Interrupt Controller Registers. BASE = 0x1F00.0000 */
#define rINTRAW         REG32(KSEG1(ATLAS_ICTA_BASE+0x00))
#define rINTSETEN       REG32(KSEG1(ATLAS_ICTA_BASE+0x08))
#define rINTRSTEN       REG32(KSEG1(ATLAS_ICTA_BASE+0x10))
#define rINTENABLE      REG32(KSEG1(ATLAS_ICTA_BASE+0x18))
#define rINTSTATUS      REG32(KSEG1(ATLAS_ICTA_BASE+0x20))

/* UART TI16C550 */
#define r16550RXTX      REG32(KSEG1(ATLAS_TI16C550_BASE+0x00))
#define r16550INTEN     REG32(KSEG1(ATLAS_TI16C550_BASE+0x08))
#define r16550IIFIFO    REG32(KSEG1(ATLAS_TI16C550_BASE+0x10))
#define r16550LCTRL     REG32(KSEG1(ATLAS_TI16C550_BASE+0x18))
#define r16550MCTRL     REG32(KSEG1(ATLAS_TI16C550_BASE+0x20))
#define r16550LSTAT     REG32(KSEG1(ATLAS_TI16C550_BASE+0x28))
#define r16550MSTAT     REG32(KSEG1(ATLAS_TI16C550_BASE+0x30))
#define r16550SCRATCH   REG32(KSEG1(ATLAS_TI16C550_BASE+0x38))
#define r16550DLL       REG32(KSEG1(ATLAS_TI16C550_BASE+0x00))
#define r16550DLM       REG32(KSEG1(ATLAS_TI16C550_BASE+0x08))

/* 24bit TIMER */
#define rTM0CNT         REG32(KSEG1(ATLAS_TMRA_BASE+0x00))
#define rTM0CMP         REG32(KSEG1(ATLAS_TMRA_BASE+0x08))
#define rTMINTACK       REG32(KSEG1(ATLAS_TMRA_BASE+0x20))

/* RTC */
#define rRTCADR         REG32(KSEG1(ATLAS_RTCADR))
#define rRTCDAT         REG32(KSEG1(ATLAS_RTCDAT))



/* Bit defintions */

/* rINTSETEN */
#define BIT_ICINT_SER                 (1<<0)  /* bit 0: SER */
#define BIT_ICINT_TIM0                (1<<1)  /* bit 1: TIM0 */
#define BIT_ICINT_TIM1                (1<<2)  /* bit 2: TIM1 */
#define BIT_ICINT_RTC                 (1<<4)  /* bit 4: RTC */
#define BIT_ICINT_COREHI              (1<<5)  /* bit 5: COREHI */
#define BIT_ICINT_CORELO              (1<<6)  /* bit 6: CORELO */
#define BIT_ICINT_NMI                 (1<<7)  /* bit 7: NMI */
#define BIT_ICINT_PCIA                (1<<8)  /* bit 8: PCIA */
#define BIT_ICINT_PCIB                (1<<9)  /* bit 9: PCIB */
#define BIT_ICINT_PCIC                (1<<10) /* bit 10: PCIC */
#define BIT_ICINT_PCID                (1<<11) /* bit 11: PCID */
#define BIT_ICINT_ENUM                (1<<12) /* bit 12: ENUM */
#define BIT_ICINT_DEG                 (1<<13) /* bit 13: DEG */
#define BIT_ICINT_ATXOKN              (1<<14) /* bit 14: ATXOKN */
#define BIT_ICINT_CONINTAN            (1<<15) /* bit 15: CONINTAN */
#define BIT_ICINT_CONINTBN            (1<<16) /* bit 16: CONINTBN */
#define BIT_ICINT_CONINTCN            (1<<17) /* bit 17: CONINTCN */
#define BIT_ICINT_CONINTDN            (1<<18) /* bit 18: CONINTDN */
#define BIT_ICINT_PCISERRN            (1<<19) /* bit 19: PCISERRN */



/* r16550INTEN */
#define BIT_16550RXINT                (1<<0)
#define BIT_16550TXINT                (1<<1)
#define BIT_16550LSINT                (1<<2)
#define BIT_16550MSINT                (1<<3)

#ifdef __cplusplus
}
#endif

#endif /* _ASSEMBLER_ */



/************************************************************************
 *  Assembly & C code soft vectors definition
*************************************************************************/

/* Core Exception handler vectors */
#define _ESR_STARTADDRESS 0x00000500+KSEG0BASE

#define aESR_INT            (_ESR_STARTADDRESS+0x8*EX_INT)
#define aESR_MOD            (_ESR_STARTADDRESS+0x8*EX_MOD)
#define aESR_TLBL           (_ESR_STARTADDRESS+0x8*EX_TLBL)
#define aESR_TLBS           (_ESR_STARTADDRESS+0x8*EX_TLBS)
#define aESR_ADEL           (_ESR_STARTADDRESS+0x8*EX_ADEL)
#define aESR_ADES           (_ESR_STARTADDRESS+0x8*EX_ADES)
#define aESR_IBE            (_ESR_STARTADDRESS+0x8*EX_IBE)
#define aESR_DBE            (_ESR_STARTADDRESS+0x8*EX_DBE)
#define aESR_SYS            (_ESR_STARTADDRESS+0x8*EX_SYS)
#define aESR_BP             (_ESR_STARTADDRESS+0x8*EX_BP)
#define aESR_RI             (_ESR_STARTADDRESS+0x8*EX_RI)
#define aESR_CPU            (_ESR_STARTADDRESS+0x8*EX_CPU)
#define aESR_OV             (_ESR_STARTADDRESS+0x8*EX_OV)
#define aESR_TR             (_ESR_STARTADDRESS+0x8*EX_TR)
#define aESR_FPE            (_ESR_STARTADDRESS+0x8*EX_FPE)
#define aESR_WATCH          (_ESR_STARTADDRESS+0x8*EX_WATCH)
#define aESR_MCHECK         (_ESR_STARTADDRESS+0x8*EX_MCHECK)

/* General Exception Vector */
#define aESR_EXCE           (aESR_MCHECK+0x8*1)

/* CPU Interrupt handler vectors */
#define _CPUISR_STARTADDRESS _ESR_STARTADDRESS+0x100

#define aCPUISR_SW0         (_CPUISR_STARTADDRESS+0x00)
#define aCPUISR_SW1         (_CPUISR_STARTADDRESS+0x08)
#define aCPUISR_HW0         (_CPUISR_STARTADDRESS+0x10)
#define aCPUISR_HW1         (_CPUISR_STARTADDRESS+0x18)
#define aCPUISR_HW2         (_CPUISR_STARTADDRESS+0x20)
#define aCPUISR_HW3         (_CPUISR_STARTADDRESS+0x28)
#define aCPUISR_HW4         (_CPUISR_STARTADDRESS+0x30)
#define aCPUISR_HW5         (_CPUISR_STARTADDRESS+0x38)

/* Interrupt Controller Interrupt handler vectors */
#define _ICISR_STARTADDRESS aCPUISR_HW5+0x8

#define aICISR_SER          (_ICISR_STARTADDRESS+0x00)
#define aICISR_TIM0         (_ICISR_STARTADDRESS+0x08)
#define aICISR_TIM1         (_ICISR_STARTADDRESS+0x10)
/* bit 3: reserved */
#define aICISR_RTC          (_ICISR_STARTADDRESS+0x20)
#define aICISR_COREHI       (_ICISR_STARTADDRESS+0x28)
#define aICISR_CORELO       (_ICISR_STARTADDRESS+0x30)
#define aICISR_NMI          (_ICISR_STARTADDRESS+0x38)
#define aICISR_PCIA         (_ICISR_STARTADDRESS+0x40)
#define aICISR_PCIB         (_ICISR_STARTADDRESS+0x48)
#define aICISR_PCIC         (_ICISR_STARTADDRESS+0x50)
#define aICISR_PCID         (_ICISR_STARTADDRESS+0x58)
#define aICISR_ENUM         (_ICISR_STARTADDRESS+0x60)
#define aICISR_DEG          (_ICISR_STARTADDRESS+0x68)
#define aICISR_ATXOKN       (_ICISR_STARTADDRESS+0x70)
#define aICISR_CONINTAN     (_ICISR_STARTADDRESS+0x78)
#define aICISR_CONINTBN     (_ICISR_STARTADDRESS+0x80)
#define aICISR_CONINTCN     (_ICISR_STARTADDRESS+0x88)
#define aICISR_CONINTDN     (_ICISR_STARTADDRESS+0x90)
#define aICISR_PCISERRN     (_ICISR_STARTADDRESS+0x98)

/* Interrupt Controller Interrupt handler vectors */
#define _SAAISR_STARTADDRESS aICISR_PCISERRN+0x8

#define aSAAISR_ETH         (_SAAISR_STARTADDRESS+0x00)
#define aSAAISR_UART        (_SAAISR_STARTADDRESS+0x08)



#ifndef _ASSEMBLER_

#ifdef __cplusplus
extern "C" {
#endif

/* Pointer definition for C code */
/* Core Exception handler vectors */
#define pESR_INT            (*(U32 *)aESR_INT)
#define pESR_MOD            (*(U32 *)aESR_MOD)
#define pESR_TLBL           (*(U32 *)aESR_TLBL)
#define pESR_TLBS           (*(U32 *)aESR_TLBS)
#define pESR_ADEL           (*(U32 *)aESR_ADEL)
#define pESR_ADES           (*(U32 *)aESR_ADES)
#define pESR_IBE            (*(U32 *)aESR_IBE)
#define pESR_DBE            (*(U32 *)aESR_DBE)
#define pESR_SYS            (*(U32 *)aESR_SYS)
#define pESR_BP             (*(U32 *)aESR_BP)
#define pESR_RI             (*(U32 *)aESR_RI)
#define pESR_CPU            (*(U32 *)aESR_CPU)
#define pESR_OV             (*(U32 *)aESR_OV)
#define pESR_TR             (*(U32 *)aESR_TR)
#define pESR_FPE            (*(U32 *)aESR_FPE)
#define pESR_WATCH          (*(U32 *)aESR_WATCH)
#define pESR_MCHECK         (*(U32 *)aESR_MCHECK)

/* General Exception Vector */
#define pESR_EXCE           (*(U32 *)aESR_EXCE)

/* CPU Interrupt handler vectors */
#define pCPUISR_SW0         (*(U32 *)aCPUISR_SW0)
#define pCPUISR_SW1         (*(U32 *)aCPUISR_SW1)
#define pCPUISR_HW0         (*(U32 *)aCPUISR_HW0)
#define pCPUISR_HW1         (*(U32 *)aCPUISR_HW1)
#define pCPUISR_HW2         (*(U32 *)aCPUISR_HW2)
#define pCPUISR_HW3         (*(U32 *)aCPUISR_HW3)
#define pCPUISR_HW4         (*(U32 *)aCPUISR_HW4)
#define pCPUISR_HW5         (*(U32 *)aCPUISR_HW5)

/* Interrupt Controller Interrupt handler vectors */
#define pICISR_SER          (*(U32 *)aICISR_SER)
#define pICISR_TIM0         (*(U32 *)aICISR_TIM0)
#define pICISR_TIM1         (*(U32 *)aICISR_TIM1)
/* bit 3: reserved */
#define pICISR_RTC          (*(U32 *)aICISR_RTC)
#define pICISR_COREHI       (*(U32 *)aICISR_COREHI)
#define pICISR_CORELO       (*(U32 *)aICISR_CORELO)
#define pICISR_NMI          (*(U32 *)aICISR_NMI)
#define pICISR_PCIA         (*(U32 *)aICISR_PCIA)
#define pICISR_PCIB         (*(U32 *)aICISR_PCIB)
#define pICISR_PCIC         (*(U32 *)aICISR_PCIC)
#define pICISR_PCID         (*(U32 *)aICISR_PCID)
#define pICISR_ENUM         (*(U32 *)aICISR_ENUM)
#define pICISR_DEG          (*(U32 *)aICISR_DEG)
#define pICISR_ATXOKN       (*(U32 *)aICISR_ATXOKN)
#define pICISR_CONINTAN     (*(U32 *)aICISR_CONINTAN)
#define pICISR_CONINTBN     (*(U32 *)aICISR_CONINTBN)
#define pICISR_CONINTCN     (*(U32 *)aICISR_CONINTCN)
#define pICISR_CONINTDN     (*(U32 *)aICISR_CONINTDN)
#define pICISR_PCISERRN     (*(U32 *)aICISR_PCISERRN)

#define pSAAISR_ETH         (*(U32 *)aSAAISR_ETH)
#define pSAAISR_UART        (*(U32 *)aSAAISR_UART)

#ifdef __cplusplus
}
#endif

#endif /* _ASSEMBLER_ */


/* ********************************************************************* */
/* Interface function definition */


/* ********************************************************************* */

#endif /* __ATLAS_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -