at91sam9261.tcl
来自「AT91SAM 系列微控制器的NAND Flash支持代码 描述怎样将NAND」· TCL 代码 · 共 1,167 行 · 第 1/5 页
TCL
1,167 行
set AT91C_SMC_NCSSETUPWR [expr 0x3F << 8 ]
set AT91C_SMC_NRDSETUP [expr 0x3F << 16 ]
set AT91C_SMC_NCSSETUPRD [expr 0x3F << 24 ]
# -------- SMC_PULSE : (SMC Offset: 0x74) Pulse Register for CS x --------
set AT91C_SMC_NWEPULSE [expr 0x7F << 0 ]
set AT91C_SMC_NCSPULSEWR [expr 0x7F << 8 ]
set AT91C_SMC_NRDPULSE [expr 0x7F << 16 ]
set AT91C_SMC_NCSPULSERD [expr 0x7F << 24 ]
# -------- SMC_CYC : (SMC Offset: 0x78) Cycle Register for CS x --------
set AT91C_SMC_NWECYCLE [expr 0x1FF << 0 ]
set AT91C_SMC_NRDCYCLE [expr 0x1FF << 16 ]
# -------- SMC_CTRL : (SMC Offset: 0x7c) Control Register for CS x --------
set AT91C_SMC_READMODE [expr 0x1 << 0 ]
set AT91C_SMC_WRITEMODE [expr 0x1 << 1 ]
set AT91C_SMC_NWAITM [expr 0x3 << 5 ]
set AT91C_SMC_NWAITM_NWAIT_DISABLE [expr 0x0 << 5 ]
set AT91C_SMC_NWAITM_NWAIT_ENABLE_FROZEN [expr 0x2 << 5 ]
set AT91C_SMC_NWAITM_NWAIT_ENABLE_READY [expr 0x3 << 5 ]
set AT91C_SMC_BAT [expr 0x1 << 8 ]
set AT91C_SMC_BAT_BYTE_SELECT [expr 0x0 << 8 ]
set AT91C_SMC_BAT_BYTE_WRITE [expr 0x1 << 8 ]
set AT91C_SMC_DBW [expr 0x3 << 12 ]
set AT91C_SMC_DBW_WIDTH_EIGTH_BITS [expr 0x0 << 12 ]
set AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS [expr 0x1 << 12 ]
set AT91C_SMC_DBW_WIDTH_THIRTY_TWO_BITS [expr 0x2 << 12 ]
set AT91C_SMC_TDF [expr 0xF << 16 ]
set AT91C_SMC_TDFEN [expr 0x1 << 20 ]
set AT91C_SMC_PMEN [expr 0x1 << 24 ]
set AT91C_SMC_PS [expr 0x3 << 28 ]
set AT91C_SMC_PS_SIZE_FOUR_BYTES [expr 0x0 << 28 ]
set AT91C_SMC_PS_SIZE_EIGHT_BYTES [expr 0x1 << 28 ]
set AT91C_SMC_PS_SIZE_SIXTEEN_BYTES [expr 0x2 << 28 ]
set AT91C_SMC_PS_SIZE_THIRTY_TWO_BYTES [expr 0x3 << 28 ]
# *****************************************************************************
# SOFTWARE API DEFINITION FOR AHB Matrix Interface
# *****************************************************************************
# -------- MATRIX_MCFG : (MATRIX Offset: 0x0) Master Configuration Register --------
set AT91C_MATRIX_RCA926I [expr 0x1 << 0 ]
set AT91C_MATRIX_RCA926D [expr 0x1 << 1 ]
# -------- MATRIX_SCFG0 : (MATRIX Offset: 0x4) Slave Configuration Register 0 --------
set AT91C_MATRIX_SLOT_CYCLE [expr 0xFF << 0 ]
set AT91C_MATRIX_DEFMSTR_TYPE [expr 0x3 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_NO_DEFMSTR [expr 0x0 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_LAST_DEFMSTR [expr 0x1 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_FIXED_DEFMSTR [expr 0x2 << 16 ]
set AT91C_MATRIX_FIXED_DEFMSTR0 [expr 0x7 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR0_ARM926I [expr 0x0 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR0_ARM926D [expr 0x1 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR0_HPDC3 [expr 0x2 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR0_LCDC [expr 0x3 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR0_UHP [expr 0x4 << 18 ]
# -------- MATRIX_SCFG1 : (MATRIX Offset: 0x8) Slave Configuration Register 1 --------
set AT91C_MATRIX_SLOT_CYCLE [expr 0xFF << 0 ]
set AT91C_MATRIX_DEFMSTR_TYPE [expr 0x3 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_NO_DEFMSTR [expr 0x0 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_LAST_DEFMSTR [expr 0x1 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_FIXED_DEFMSTR [expr 0x2 << 16 ]
set AT91C_MATRIX_FIXED_DEFMSTR1 [expr 0x7 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR1_ARM926I [expr 0x0 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR1_ARM926D [expr 0x1 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR1_HPDC3 [expr 0x2 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR1_LCDC [expr 0x3 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR1_UHP [expr 0x4 << 18 ]
# -------- MATRIX_SCFG2 : (MATRIX Offset: 0xc) Slave Configuration Register 2 --------
set AT91C_MATRIX_SLOT_CYCLE [expr 0xFF << 0 ]
set AT91C_MATRIX_DEFMSTR_TYPE [expr 0x3 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_NO_DEFMSTR [expr 0x0 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_LAST_DEFMSTR [expr 0x1 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_FIXED_DEFMSTR [expr 0x2 << 16 ]
set AT91C_MATRIX_FIXED_DEFMSTR2 [expr 0x1 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR2_ARM926I [expr 0x0 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR2_ARM926D [expr 0x1 << 18 ]
# -------- MATRIX_SCFG3 : (MATRIX Offset: 0x10) Slave Configuration Register 3 --------
set AT91C_MATRIX_SLOT_CYCLE [expr 0xFF << 0 ]
set AT91C_MATRIX_DEFMSTR_TYPE [expr 0x3 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_NO_DEFMSTR [expr 0x0 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_LAST_DEFMSTR [expr 0x1 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_FIXED_DEFMSTR [expr 0x2 << 16 ]
set AT91C_MATRIX_FIXED_DEFMSTR3 [expr 0x7 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR3_ARM926I [expr 0x0 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR3_ARM926D [expr 0x1 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR3_HPDC3 [expr 0x2 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR3_LCDC [expr 0x3 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR3_UHP [expr 0x4 << 18 ]
# -------- MATRIX_SCFG4 : (MATRIX Offset: 0x14) Slave Configuration Register 4 --------
set AT91C_MATRIX_SLOT_CYCLE [expr 0xFF << 0 ]
set AT91C_MATRIX_DEFMSTR_TYPE [expr 0x3 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_NO_DEFMSTR [expr 0x0 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_LAST_DEFMSTR [expr 0x1 << 16 ]
set AT91C_MATRIX_DEFMSTR_TYPE_FIXED_DEFMSTR [expr 0x2 << 16 ]
set AT91C_MATRIX_FIXED_DEFMSTR4 [expr 0x3 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR4_ARM926I [expr 0x0 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR4_ARM926D [expr 0x1 << 18 ]
set AT91C_MATRIX_FIXED_DEFMSTR4_HPDC3 [expr 0x2 << 18 ]
# -------- MATRIX_TCMR : (MATRIX Offset: 0x24) TCM (Slave 0) Special Function Register --------
set AT91C_MATRIX_ITCM_SIZE [expr 0xF << 0 ]
set AT91C_MATRIX_ITCM_SIZE_0KB 0x0
set AT91C_MATRIX_ITCM_SIZE_16KB 0x5
set AT91C_MATRIX_ITCM_SIZE_32KB 0x6
set AT91C_MATRIX_ITCM_SIZE_64KB 0x7
set AT91C_MATRIX_DTCM_SIZE [expr 0xF << 4 ]
set AT91C_MATRIX_DTCM_SIZE_0KB [expr 0x0 << 4 ]
set AT91C_MATRIX_DTCM_SIZE_16KB [expr 0x5 << 4 ]
set AT91C_MATRIX_DTCM_SIZE_32KB [expr 0x6 << 4 ]
set AT91C_MATRIX_DTCM_SIZE_64KB [expr 0x7 << 4 ]
# -------- MATRIX_EBICSA : (MATRIX Offset: 0x30) EBI (Slave 3) Special Function Register --------
set AT91C_MATRIX_CS1A [expr 0x1 << 1 ]
set AT91C_MATRIX_CS1A_SMC [expr 0x0 << 1 ]
set AT91C_MATRIX_CS1A_SDRAMC [expr 0x1 << 1 ]
set AT91C_MATRIX_CS3A [expr 0x1 << 3 ]
set AT91C_MATRIX_CS3A_SMC [expr 0x0 << 3 ]
set AT91C_MATRIX_CS3A_SM [expr 0x1 << 3 ]
set AT91C_MATRIX_CS4A [expr 0x1 << 4 ]
set AT91C_MATRIX_CS4A_SMC [expr 0x0 << 4 ]
set AT91C_MATRIX_CS4A_CF [expr 0x1 << 4 ]
set AT91C_MATRIX_CS5A [expr 0x1 << 5 ]
set AT91C_MATRIX_CS5A_SMC [expr 0x0 << 5 ]
set AT91C_MATRIX_CS5A_CF [expr 0x1 << 5 ]
set AT91C_MATRIX_DBPUC [expr 0x1 << 8 ]
# -------- MATRIX_USBPCR : (MATRIX Offset: 0x34) USB Pad Control Register --------
set AT91C_MATRIX_USBPCR_PUON [expr 0x1 << 30 ]
set AT91C_MATRIX_USBPCR_PUIDLE [expr 0x1 << 31 ]
# *****************************************************************************
# SOFTWARE API DEFINITION FOR Advanced Interrupt Controller
# *****************************************************************************
# -------- AIC_SMR : (AIC Offset: 0x0) Control Register --------
set AT91C_AIC_PRIOR [expr 0x7 << 0 ]
set AT91C_AIC_PRIOR_LOWEST 0x0
set AT91C_AIC_PRIOR_HIGHEST 0x7
set AT91C_AIC_SRCTYPE [expr 0x3 << 5 ]
set AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE [expr 0x0 << 5 ]
set AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED [expr 0x1 << 5 ]
set AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL [expr 0x2 << 5 ]
set AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE [expr 0x3 << 5 ]
# -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register --------
set AT91C_AIC_NFIQ [expr 0x1 << 0 ]
set AT91C_AIC_NIRQ [expr 0x1 << 1 ]
# -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) --------
set AT91C_AIC_DCR_PROT [expr 0x1 << 0 ]
set AT91C_AIC_DCR_GMSK [expr 0x1 << 1 ]
# *****************************************************************************
# SOFTWARE API DEFINITION FOR Peripheral DMA Controller
# *****************************************************************************
# -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register --------
set AT91C_PDC_RXTEN [expr 0x1 << 0 ]
set AT91C_PDC_RXTDIS [expr 0x1 << 1 ]
set AT91C_PDC_TXTEN [expr 0x1 << 8 ]
set AT91C_PDC_TXTDIS [expr 0x1 << 9 ]
# -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register --------
set AT91C_PDC_RXTEN [expr 0x1 << 0 ]
set AT91C_PDC_TXTEN [expr 0x1 << 8 ]
# *****************************************************************************
# SOFTWARE API DEFINITION FOR Debug Unit
# *****************************************************************************
# -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register --------
set AT91C_US_RSTRX [expr 0x1 << 2 ]
set AT91C_US_RSTTX [expr 0x1 << 3 ]
set AT91C_US_RXEN [expr 0x1 << 4 ]
set AT91C_US_RXDIS [expr 0x1 << 5 ]
set AT91C_US_TXEN [expr 0x1 << 6 ]
set AT91C_US_TXDIS [expr 0x1 << 7 ]
set AT91C_US_RSTSTA [expr 0x1 << 8 ]
# -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register --------
set AT91C_US_PAR [expr 0x7 << 9 ]
set AT91C_US_PAR_EVEN [expr 0x0 << 9 ]
set AT91C_US_PAR_ODD [expr 0x1 << 9 ]
set AT91C_US_PAR_SPACE [expr 0x2 << 9 ]
set AT91C_US_PAR_MARK [expr 0x3 << 9 ]
set AT91C_US_PAR_NONE [expr 0x4 << 9 ]
set AT91C_US_PAR_MULTI_DROP [expr 0x6 << 9 ]
set AT91C_US_CHMODE [expr 0x3 << 14 ]
set AT91C_US_CHMODE_NORMAL [expr 0x0 << 14 ]
set AT91C_US_CHMODE_AUTO [expr 0x1 << 14 ]
set AT91C_US_CHMODE_LOCAL [expr 0x2 << 14 ]
set AT91C_US_CHMODE_REMOTE [expr 0x3 << 14 ]
# -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register --------
set AT91C_US_RXRDY [expr 0x1 << 0 ]
set AT91C_US_TXRDY [expr 0x1 << 1 ]
set AT91C_US_ENDRX [expr 0x1 << 3 ]
set AT91C_US_ENDTX [expr 0x1 << 4 ]
set AT91C_US_OVRE [expr 0x1 << 5 ]
set AT91C_US_FRAME [expr 0x1 << 6 ]
set AT91C_US_PARE [expr 0x1 << 7 ]
set AT91C_US_TXEMPTY [expr 0x1 << 9 ]
set AT91C_US_TXBUFE [expr 0x1 << 11 ]
set AT91C_US_RXBUFF [expr 0x1 << 12 ]
set AT91C_US_COMM_TX [expr 0x1 << 30 ]
set AT91C_US_COMM_RX [expr 0x1 << 31 ]
# -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register --------
set AT91C_US_RXRDY [expr 0x1 << 0 ]
set AT91C_US_TXRDY [expr 0x1 << 1 ]
set AT91C_US_ENDRX [expr 0x1 << 3 ]
set AT91C_US_ENDTX [expr 0x1 << 4 ]
set AT91C_US_OVRE [expr 0x1 << 5 ]
set AT91C_US_FRAME [expr 0x1 << 6 ]
set AT91C_US_PARE [expr 0x1 << 7 ]
set AT91C_US_TXEMPTY [expr 0x1 << 9 ]
set AT91C_US_TXBUFE [expr 0x1 << 11 ]
set AT91C_US_RXBUFF [expr 0x1 << 12 ]
set AT91C_US_COMM_TX [expr 0x1 << 30 ]
set AT91C_US_COMM_RX [expr 0x1 << 31 ]
# -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register --------
set AT91C_US_RXRDY [expr 0x1 << 0 ]
set AT91C_US_TXRDY [expr 0x1 << 1 ]
set AT91C_US_ENDRX [expr 0x1 << 3 ]
set AT91C_US_ENDTX [expr 0x1 << 4 ]
set AT91C_US_OVRE [expr 0x1 << 5 ]
set AT91C_US_FRAME [expr 0x1 << 6 ]
set AT91C_US_PARE [expr 0x1 << 7 ]
set AT91C_US_TXEMPTY [expr 0x1 << 9 ]
set AT91C_US_TXBUFE [expr 0x1 << 11 ]
set AT91C_US_RXBUFF [expr 0x1 << 12 ]
set AT91C_US_COMM_TX [expr 0x1 << 30 ]
set AT91C_US_COMM_RX [expr 0x1 << 31 ]
# -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register --------
set AT91C_US_RXRDY [expr 0x1 << 0 ]
set AT91C_US_TXRDY [expr 0x1 << 1 ]
set AT91C_US_ENDRX [expr 0x1 << 3 ]
set AT91C_US_ENDTX [expr 0x1 << 4 ]
set AT91C_US_OVRE [expr 0x1 << 5 ]
set AT91C_US_FRAME [expr 0x1 << 6 ]
set AT91C_US_PARE [expr 0x1 << 7 ]
set AT91C_US_TXEMPTY [expr 0x1 << 9 ]
set AT91C_US_TXBUFE [expr 0x1 << 11 ]
set AT91C_US_RXBUFF [expr 0x1 << 12 ]
set AT91C_US_COMM_TX [expr 0x1 << 30 ]
set AT91C_US_COMM_RX [expr 0x1 << 31 ]
# -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register --------
set AT91C_US_FORCE_NTRST [expr 0x1 << 0 ]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?