📄 var_io.h
字号:
#define AT91_AIC_SMR0 ((0*4)+0x000)
#define AT91_AIC_SMR1 ((1*4)+0x000)
#define AT91_AIC_SMR2 ((2*4)+0x000)
#define AT91_AIC_SMR3 ((3*4)+0x000)
#define AT91_AIC_SMR4 ((4*4)+0x000)
#define AT91_AIC_SMR5 ((5*4)+0x000)
#define AT91_AIC_SMR6 ((6*4)+0x000)
#define AT91_AIC_SMR7 ((7*4)+0x000)
#define AT91_AIC_SMR8 ((8*4)+0x000)
#define AT91_AIC_SMR9 ((9*4)+0x000)
#define AT91_AIC_SMR10 ((10*4)+0x000)
#define AT91_AIC_SMR11 ((11*4)+0x000)
#define AT91_AIC_SMR12 ((12*4)+0x000)
#define AT91_AIC_SMR13 ((13*4)+0x000)
#define AT91_AIC_SMR14 ((14*4)+0x000)
#define AT91_AIC_SMR15 ((15*4)+0x000)
#define AT91_AIC_SMR16 ((16*4)+0x000)
#define AT91_AIC_SMR17 ((17*4)+0x000)
#define AT91_AIC_SMR18 ((18*4)+0x000)
#define AT91_AIC_SMR19 ((19*4)+0x000)
#define AT91_AIC_SMR20 ((20*4)+0x000)
#define AT91_AIC_SMR21 ((21*4)+0x000)
#define AT91_AIC_SMR22 ((22*4)+0x000)
#define AT91_AIC_SMR23 ((23*4)+0x000)
#define AT91_AIC_SMR24 ((24*4)+0x000)
#define AT91_AIC_SMR25 ((25*4)+0x000)
#define AT91_AIC_SMR26 ((26*4)+0x000)
#define AT91_AIC_SMR27 ((27*4)+0x000)
#define AT91_AIC_SMR28 ((28*4)+0x000)
#define AT91_AIC_SMR29 ((29*4)+0x000)
#define AT91_AIC_SMR30 ((30*4)+0x000)
#define AT91_AIC_SMR31 ((31*4)+0x000)
#define AT91_AIC_SMR_LEVEL_LOW (0<<5)
#define AT91_AIC_SMR_LEVEL_HI (2<<5)
#define AT91_AIC_SMR_EDGE_NEG (1<<5)
#define AT91_AIC_SMR_EDGE_POS (3<<5)
#define AT91_AIC_SMR_PRIORITY 0x07
#define AT91_AIC_SVR0 ((0*4)+0x080)
#define AT91_AIC_SVR1 ((1*4)+0x080)
#define AT91_AIC_SVR2 ((2*4)+0x080)
#define AT91_AIC_SVR3 ((3*4)+0x080)
#define AT91_AIC_SVR4 ((4*4)+0x080)
#define AT91_AIC_SVR5 ((5*4)+0x080)
#define AT91_AIC_SVR6 ((6*4)+0x080)
#define AT91_AIC_SVR7 ((7*4)+0x080)
#define AT91_AIC_SVR8 ((8*4)+0x080)
#define AT91_AIC_SVR9 ((9*4)+0x080)
#define AT91_AIC_SVR10 ((10*4)+0x080)
#define AT91_AIC_SVR11 ((11*4)+0x080)
#define AT91_AIC_SVR12 ((12*4)+0x080)
#define AT91_AIC_SVR13 ((13*4)+0x080)
#define AT91_AIC_SVR14 ((14*4)+0x080)
#define AT91_AIC_SVR15 ((15*4)+0x080)
#define AT91_AIC_SVR16 ((16*4)+0x080)
#define AT91_AIC_SVR17 ((17*4)+0x080)
#define AT91_AIC_SVR18 ((18*4)+0x080)
#define AT91_AIC_SVR19 ((19*4)+0x080)
#define AT91_AIC_SVR20 ((20*4)+0x080)
#define AT91_AIC_SVR21 ((21*4)+0x080)
#define AT91_AIC_SVR22 ((22*4)+0x080)
#define AT91_AIC_SVR23 ((23*4)+0x080)
#define AT91_AIC_SVR24 ((24*4)+0x080)
#define AT91_AIC_SVR25 ((25*4)+0x080)
#define AT91_AIC_SVR26 ((26*4)+0x080)
#define AT91_AIC_SVR27 ((27*4)+0x080)
#define AT91_AIC_SVR28 ((28*4)+0x080)
#define AT91_AIC_SVR29 ((29*4)+0x080)
#define AT91_AIC_SVR30 ((30*4)+0x080)
#define AT91_AIC_SVR31 ((31*4)+0x080)
#define AT91_AIC_IVR 0x100
#define AT91_AIC_FVR 0x104
#define AT91_AIC_ISR 0x108
#define AT91_AIC_IPR 0x10C
#define AT91_AIC_IMR 0x110
#define AT91_AIC_CISR 0x114
#define AT91_AIC_IECR 0x120
#define AT91_AIC_IDCR 0x124
#define AT91_AIC_ICCR 0x128
#define AT91_AIC_ISCR 0x12C
#define AT91_AIC_EOI 0x130
#define AT91_AIC_SVR 0x134
#ifdef CYGHWR_HAL_ARM_AT91SAM7
#define AT91_AIC_DCR 0x138 // Debug Control Register
#define AT91_AIC_FFER 0x140 // Fast Forcing Enable Register
#define AT91_AIC_FFDR 0x144 // Fast Forcing Enable Register
#define AT91_AIC_FFSR 0x148 // Fast Forcing Enable Register
#endif // CYGHWR_HAL_ARM_AT91SAM7
//=============================================================================
// Timer / counter
#ifndef AT91_TC
#define AT91_TC 0xFFFE0000
#endif
#define AT91_TC_TC0 0x00
#define AT91_TC_TC1 0x40
#define AT91_TC_TC2 0x80
#define AT91_TC_TC_SIZE 0x40
#define AT91_TC_CCR 0x00
#define AT91_TC_CCR_CLKEN 0x01
#define AT91_TC_CCR_CLKDIS 0x02
#define AT91_TC_CCR_TRIG 0x04
// Channel Mode Register
#define AT91_TC_CMR 0x04
#define AT91_TC_CMR_CLKS 0
#define AT91_TC_CMR_CLKS_MCK2 (0<<0)
#define AT91_TC_CMR_CLKS_MCK8 (1<<0)
#define AT91_TC_CMR_CLKS_MCK32 (2<<0)
#define AT91_TC_CMR_CLKS_MCK128 (3<<0)
#define AT91_TC_CMR_CLKS_MCK1024 (4<<0)
#define AT91_TC_CMR_CLKS_XC0 (5<<0)
#define AT91_TC_CMR_CLKS_XC1 (6<<0)
#define AT91_TC_CMR_CLKS_XC2 (7<<0)
#define AT91_TC_CMR_CLKI (1<<3)
#define AT91_TC_CMR_BURST_NONE (0<<4)
#define AT91_TC_CMR_BURST_XC0 (1<<4)
#define AT91_TC_CMR_BURST_XC1 (2<<4)
#define AT91_TC_CMR_BURST_XC2 (3<<4)
// Capture mode definitions
#define AT91_TC_CMR_LDBSTOP (1<<6)
#define AT91_TC_CMR_LDBDIS (1<<7)
#define AT91_TC_CMR_TRIG_NONE (0<<8)
#define AT91_TC_CMR_TRIG_NEG (1<<8)
#define AT91_TC_CMR_TRIG_POS (2<<8)
#define AT91_TC_CMR_TRIG_BOTH (3<<8)
#define AT91_TC_CMR_EXT_TRIG_TIOB (0<<10)
#define AT91_TC_CMR_EXT_TRIG_TIOA (1<<10)
#define AT91_TC_CMR_CPCTRG (1<<14)
#define AT91_TC_CMR_LDRA_NONE (0<<16)
#define AT91_TC_CMR_LDRA_TIOA_NEG (1<<16)
#define AT91_TC_CMR_LDRA_TIOA_POS (2<<16)
#define AT91_TC_CMR_LDRA_TIOA_BOTH (3<<16)
#define AT91_TC_CMR_LDRB_NONE (0<<18)
#define AT91_TC_CMR_LDRB_TIOA_NEG (1<<18)
#define AT91_TC_CMR_LDRB_TIOA_POS (2<<18)
#define AT91_TC_CMR_LDRB_TIOA_BOTH (3<<18)
// Waveform mode definitions
#define AT91_TC_CMR_CPCSTOP (1<<6)
#define AT91_TC_CMR_CPCDIS (1<<7)
#define AT91_TC_CMR_EEVTEDG_NONE (0<<8)
#define AT91_TC_CMR_EEVTEDG_NEG (1<<8)
#define AT91_TC_CMR_EEVTEDG_POS (2<<8)
#define AT91_TC_CMR_EEVTEDG_BOTH (3<<8)
#define AT91_TC_CMR_EEVT_TIOB (0<<10)
#define AT91_TC_CMR_EEVT_XC0 (1<<10)
#define AT91_TC_CMR_EEVT_XC1 (2<<10)
#define AT91_TC_CMR_EEVT_XC2 (3<<10)
#define AT91_TC_CMR_ENETRG (1<<12)
#define AT91_TC_CMR_CPCTRG (1<<14)
#define AT91_TC_CMR_WAVE (1<<15)
#define AT91_TC_CMR_ACPA_NONE (0<<16)
#define AT91_TC_CMR_ACPA_SET (1<<16)
#define AT91_TC_CMR_ACPA_CLEAR (2<<16)
#define AT91_TC_CMR_ACPA_TOGGLE (3<<16)
#define AT91_TC_CMR_ACPC_NONE (0<<18)
#define AT91_TC_CMR_ACPC_SET (1<<18)
#define AT91_TC_CMR_ACPC_CLEAR (2<<18)
#define AT91_TC_CMR_ACPC_TOGGLE (3<<18)
#define AT91_TC_CMR_AEEVT_NONE (0<<20)
#define AT91_TC_CMR_AEEVT_SET (1<<20)
#define AT91_TC_CMR_AEEVT_CLEAR (2<<20)
#define AT91_TC_CMR_AEEVT_TOGGLE (3<<20)
#define AT91_TC_CMR_ASWTRG_NONE (0<<22)
#define AT91_TC_CMR_ASWTRG_SET (1<<22)
#define AT91_TC_CMR_ASWTRG_CLEAR (2<<22)
#define AT91_TC_CMR_ASWTRG_TOGGLE (3<<22)
#define AT91_TC_CMR_BCPB_NONE (0<<24)
#define AT91_TC_CMR_BCPB_SET (1<<24)
#define AT91_TC_CMR_BCPB_CLEAR (2<<24)
#define AT91_TC_CMR_BCPB_TOGGLE (3<<24)
#define AT91_TC_CMR_BCPC_NONE (0<<26)
#define AT91_TC_CMR_BCPC_SET (1<<26)
#define AT91_TC_CMR_BCPC_CLEAR (2<<26)
#define AT91_TC_CMR_BCPC_TOGGLE (3<<26)
#define AT91_TC_CMR_BEEVT_NONE (0<<28)
#define AT91_TC_CMR_BEEVT_SET (1<<28)
#define AT91_TC_CMR_BEEVT_CLEAR (2<<28)
#define AT91_TC_CMR_BEEVT_TOGGLE (3<<28)
#define AT91_TC_CMR_BSWTRG_NONE (0<<30)
#define AT91_TC_CMR_BSWTRG_SET (1<<30)
#define AT91_TC_CMR_BSWTRG_CLEAR (2<<30)
#define AT91_TC_CMR_BSWTRG_TOGGLE (3<<30)
#define AT91_TC_CV 0x10
#define AT91_TC_RA 0x14
#define AT91_TC_RB 0x18
#define AT91_TC_RC 0x1C
#define AT91_TC_SR 0x20
#define AT91_TC_SR_COVF (1<<0) // Counter overrun
#define AT91_TC_SR_LOVR (1<<1) // Load overrun
#define AT91_TC_SR_CPA (1<<2) // RA compare
#define AT91_TC_SR_CPB (1<<3) // RB compare
#define AT91_TC_SR_CPC (1<<4) // RC compare
#define AT91_TC_SR_LDRA (1<<5) // Load A status
#define AT91_TC_SR_LDRB (1<<6) // Load B status
#define AT91_TC_SR_EXT (1<<7) // External trigger
#define AT91_TC_SR_CLKSTA (1<<16) // Clock enable/disable status
#define AT91_TC_SR_MTIOA (1<<17) // TIOA mirror
#define AT91_TC_SR_MTIOB (1<<18) // TIOB mirror
#define AT91_TC_IER 0x24
#define AT91_TC_IER_COVF (1<<0) // Counter overrun
#define AT91_TC_IER_LOVR (1<<1) // Load overrun
#define AT91_TC_IER_CPA (1<<2) // RA compare
#define AT91_TC_IER_CPB (1<<3) // RB compare
#define AT91_TC_IER_CPC (1<<4) // RC compare
#define AT91_TC_IER_LDRA (1<<5) // Load A status
#define AT91_TC_IER_LDRB (1<<6) // Load B status
#define AT91_TC_IER_EXT (1<<7) // External trigger
#define AT91_TC_IDR 0x28
#define AT91_TC_IMR 0x2C
#define AT91_TC_TC1 0x40
#define AT91_TC_TC2 0x80
#define AT91_TC_BCR 0xC0
#define AT91_TC_BCR_SYNC 0x01
#define AT91_TC_BMR 0xC4
#define AT91_TC_BMR_MASK (0x3f)
#define AT91_TC_BMR_TC0XC0S_TCLK0 (0 << 0) // XC0S = TCLK0
#define AT91_TC_BMR_TC0XC0S_NONE (1 << 0) // XC0S = none
#define AT91_TC_BMR_TC0XC0S_TIOA1 (2 << 0) // XC0S = TIOA1
#define AT91_TC_BMR_TC0XC0S_TIOA2 (3 << 0) // XC0S = TIOA2
#define AT91_TC_BMR_TC1XC1S_TCLK1 (0 << 2) // XC1S = TCLK1
#define AT91_TC_BMR_TC1XC1S_NONE (1 << 2) // XC1S = none
#define AT91_TC_BMR_TC1XC1S_TIOA0 (2 << 2) // XC1S = TIOA0
#define AT91_TC_BMR_TC1XC1S_TIOA2 (3 << 2) // XC1S = TIOA2
#define AT91_TC_BMR_TC2XC2S_TCLK2 (0 << 4) // XC2S = TCLK2
#define AT91_TC_BMR_TC2XC2S_NONE (1 << 4) // XC2S = none
#define AT91_TC_BMR_TC2XC2S_TIOA0 (2 << 4) // XC2S = TIOA0
#define AT91_TC_BMR_TC2XC2S_TIOA1 (3 << 4) // XC2S = TIOA1
//=============================================================================
// External Bus Interface
#ifndef AT91_EBI
#define AT91_EBI 0xFFE00000
#endif
#define AT91_EBI_CSR0 0x00
#define AT91_EBI_CSR1 0x04
#define AT91_EBI_CSR2 0x08
#define AT91_EBI_CSR3 0x0C
#define AT91_EBI_CSR4 0x10
#define AT91_EBI_CSR5 0x14
#define AT91_EBI_CSR6 0x18
#define AT91_EBI_CSR7 0x1C // Chip select
#define AT91_EBI_CSR_DBW_16 0x1 // Data bus 16 bits wide
#define AT91_EBI_CSR_DBW_8 0x2 // Data bus 8 bits wide
#define AT91_EBI_CSR_NWS_1 (0x0 << 2)
#define AT91_EBI_CSR_NWS_2 (0x1 << 2)
#define AT91_EBI_CSR_NWS_3 (0x2 << 2)
#define AT91_EBI_CSR_NWS_4 (0x3 << 2)
#define AT91_EBI_CSR_NWS_5 (0x4 << 2)
#define AT91_EBI_CSR_NWS_6 (0x5 << 2)
#define AT91_EBI_CSR_NWS_7 (0x6 << 2)
#define AT91_EBI_CSR_NWS_8 (0x7 << 2) // Number of wait states
#define AT91_EBI_CSR_WSE (0x1 << 5) // Wait state enable
#define AT91_EBI_CSR_PAGES_1M (0x0 << 7)
#define AT91_EBI_CSR_PAGES_4M (0x1 << 7)
#define AT91_EBI_CSR_PAGES_16M (0x2 << 7)
#define AT91_EBI_CSR_PAGES_64M (0x3 << 7) // Page size
#define AT91_EBI_CSR_TDF_0 (0x0 << 9)
#define AT91_EBI_CSR_TDF_1 (0x1 << 9)
#define AT91_EBI_CSR_TDF_2 (0x2 << 9)
#define AT91_EBI_CSR_TDF_3 (0x3 << 9)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -