📄 54xx.h
字号:
/*****************************************************************************/
/* 54xx.h v1.00 */
/* Copyright (c) 2004 8511 */
/*****************************************************************************/
/*C54 映射寄存器定义.H*/
/*地址定义*/
extern volatile unsigned ST0; /* status0 register */
asm("_ST0 .set 0x6");
extern volatile unsigned ST1; /* status1 register */
asm("_ST1 .set 0x7");
extern volatile unsigned PMST; /* processor mode status register */
asm("_PMST .set 0x1D");
extern volatile unsigned IMR; /* interrupt mask register */
asm("_IMR .set 0x0");
extern volatile unsigned IFR; /* interrtupt flag register */
asm("_IFR .set 0x1");
extern volatile unsigned Timer; /* Timer register */
asm("_Timer .set 0x24");
extern volatile unsigned PRD; /* Timer period counter */
asm("_PRD .set 0x25");
extern volatile unsigned TCR; /* Timer control register */
asm("_TCR .set 0x26");
extern volatile unsigned CLKMD; /* Clkmd control register */
asm("_CLKMD .set 0x58");
extern volatile unsigned SWWSR; /* software wait-states register */
asm("_SWWSR .set 0x28");
extern volatile unsigned BSCR; /* Band-switching control register */
asm("_BSCRD .set 0x29");
extern volatile unsigned SWCR; /* software control wait-states register */
asm("_SWCR .set 0x2b");
/*参数定义*/
/*ST0 状态寄存器0*/
#define ST0_ARP (1<<13)
#define ST0_TC (1<<12)
#define ST0_C (1<<11)
#define ST0_OVA (1<<10)
#define ST0_OVB (1<<9)
#define ST0_DP (1<<0)
#define ST0_ARP_INI 0
#define ST0_TC_INI 1
#define ST0_C_INI 1
#define ST0_OVA_INI 0
#define ST0_OVB_INI 0
#define ST0_DP_INI 0
#define ST0_INI (ST0_ARP_INI*ST0_ARP+ST0_TC_INI*ST0_TC+ST0_C_INI*ST0_C+ST0_OVA_INI*ST0_OVA+ST0_OVB_INI*ST0_OVB+ST0_DP_INI*ST0_DP)
/*ST1 状态寄存器1*/
#define ST1_BRAF (1<<15)
#define ST1_CPL (1<<14)
#define ST1_XF (1<<13)
#define ST1_HM (1<<12)
#define ST1_INTM (1<<11)
#define ST1_OVM (1<<9)
#define ST1_SXM (1<<8)
#define ST1_C16 (1<<7)
#define ST1_FRCT (1<<6)
#define ST1_CMPT (1<<5)
#define ST1_ASM (1<<0)
#define ST1_BRAF_INI 0
#define ST1_CPL_INI 1
#define ST1_XF_INI 1
#define ST1_HM_INI 0
#define ST1_INTM_INI 0
#define ST1_OVM_INI 0
#define ST1_SXM_INI 1
#define ST1_C16_INI 0
#define ST1_FRCT_INI 0
#define ST1_CMPT_INI 0
#define ST1_ASM_INI 0
#define ST1_INI (ST1_BRAF_INI*ST1_BRAF+ST1_CPL_INI*ST1_CPL+ST1_XF_INI*ST1_XF+ST1_HM_INI*ST1_XF+ST1_INTM_INI*ST1_INTM+ST1_OVM_INI*ST1_OVM+ST1_SXM_INI*ST1_SXM+ST1_C16_INI*ST1_C16+ST1_FRCT_INI*ST1_FRCT+ST1_CMPT_INI*ST1_CMPT+ST1_ASM_INI*ST1_ASM)
/*PMST 处理器模式状态寄存器*/
#define PMST_IPTR (1<<7)
#define PMST_MPMC (1<<6)
#define PMST_OVLY (1<<5)
#define PMST_AVIS (1<<4)
#define PMST_DPROM (1<<3)
#define PMST_CLKOFF (1<<2)
#define PMST_SMUL (1<<1)
#define PMST_SST (1<<0)
#define PMST_IPTR_INI 0x1FF
#define PMST_MPMC_INI 1 /*此处根据实际值进行修改*/
#define PMST_OVLY_INI 0
#define PMST_AVIS_INI 0
#define PMST_DPROM_INI 1
#define PMST_CLKOFF_INI 0
#define PMST_SMUL_INI 1
#define PMST_SST_INI 1
#define PMST_INI (PMST_IPTR_INI*PMST_IPTR+PMST_MPMC_INI*PMST_MPMC+PMST_OVLY_INI*PMST_OVLY+PMST_AVIS_INI*PMST_AVIS+PMST_DPROM_INI*PMST_DPROM+PMST_CLKOFF_INI*PMST_CLKOFF+PMST_SMUL_INI*PMST_SMUL+PMST_SST_INI*PMST_SST)
/*SWWSR 软件等待寄存器*/
#define SWWSR_XPA (1<<15)
#define SWWSR_IO (1<<12)
#define SWWSR_DATAH (1<<9)
#define SWWSR_DATAL (1<<6)
#define SWWSR_PROGH (1<<3)
#define SWWSR_PROGL (1<<0)
#define SWWSR_XPA_INI 0
#define SWWSR_IO_INI 1
#define SWWSR_DATAH_INI 1
#define SWWSR_DATAL_INI 1
#define SWWSR_PROGH_INI 1
#define SWWSR_PROGL_INI 1
#define SWWSR_INI (SWWSR_XPA_INI*SWWSR_XPA+SWWSR_IO_INI*SWWSR_IO+SWWSR_DATAH_INI*SWWSR_DATAH+SWWSR_DATAL_INI*SWWSR_DATAL+SWWSR_PROGH_INI*SWWSR_PROGH+SWWSR_PROGL_INI*SWWSR_PROGL)
/*SWCR 软件等待配置寄存器,决定是否等待时间加倍,如此系统最大等待为14个等待周期*/
#define SWCR_SWSM (1<<0)
#define SWCR_SWSM_INI 0
#define SWCR_INI (SWCR_SWSM*SWCR_SWSM_INI)
/*BSCR 软件等待配置寄存器,决定是否等待时间加倍,如此系统最大等待为14个等待周期*/
#define BSCR_BNKCMP (1<<12)
#define BSCR_PSDS (1<<11)
#define BSCR_HBH (1<<2)
#define BSCR_BH (1<<1)
#define BSCR_EXIO (1<<0)
#define BSCR_BNKCMP_INI 0xF
#define BSCR_PSDS_INI 1
#define BSCR_HBH_INI 0
#define BSCR_BH_INI 0
#define BSCR_EXIO_INI 0
#define BSCR_INI (BSCR_BNKCMP_INI*BSCR_BNKCMP+BSCR_PSDS_INI*BSCR_PSDS+BSCR_HBH_INI*BSCR_HBH+BSCR_BH_INI*BSCR_BH+BSCR_EXIO_INI*BSCR_EXIO)
/*IMR 中断屏蔽寄存器*/
#define IMR_DMAC5 (1<<13)
#define IMR_DMAC4 (1<<12)
#define IMR_BXINT1 (1<<11)
#define IMR_BRINT1 (1<<10)
#define IMR_HINT (1<<9)
#define IMR_INT3 (1<<8)
#define IMR_BXINT2 (1<<7)
#define IMR_BRINT2 (1<<6)
#define IMR_BXINT0 (1<<5)
#define IMR_BRINT0 (1<<4)
#define IMR_TINT (1<<3)
#define IMR_INT2 (1<<2)
#define IMR_INT1 (1<<1)
#define IMR_INT0 (1<<0)
#define IMR_DMAC5_INI 0
#define IMR_DMAC4_INI 0
#define IMR_BXINT1_INI 0
#define IMR_BRINT1_INI 0
#define IMR_HINT_INI 0
#define IMR_INT3_INI 0
#define IMR_BXINT2_INI 0
#define IMR_BRINT2_INI 0
#define IMR_BXINT0_INI 0
#define IMR_BRINT0_INI 0
#define IMR_TINT_INI 0
#define IMR_INT2_INI 0
#define IMR_INT1_INI 0
#define IMR_INT0_INI 0
#define IMR_INI (IMR_DMAC5_INI*IMR_DMAC5+IMR_DMAC4_INI*IMR_DMAC4+IMR_BXINT1_INI*IMR_BXINT1+IMR_BRINT1_INI*IMR_BRINT1+IMR_HINT_INI*IMR_HINT+IMR_INT3_INI*IMR_INT3+IMR_BXINT2_INI*IMR_BXINT2+IMR_BRINT2_INI*IMR_BRINT2)IMR_BXINT0_INI*IMR_BXINT0+IMR_BRINT0_INI*IMR_BRINT0+IMR_TINT_INI*IMR_TINT+IMR_INT2_INI*IMR_INT2+IMR_INT1_INI*IMR_INT1+IMR_INT0_INI*IMR_INT0)
#define NOP asm(" nop");
void disable();
void enable();
void InitPLL(unsigned int s); /* sets up PLL */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -