From: Dan White Date: Thu, 10 May 2012 02:06:27 +0000 (-0500) Subject: Unixify memmap, add sfrw() to mmap2h.sh X-Git-Tag: calibrations~80 X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=08ea1ec658f9b0125165f9085dfad1b5658c94fe;p=430.git Unixify memmap, add sfrw() to mmap2h.sh --- diff --git a/mmap2h.sh b/mmap2h.sh index c58d47e..97109ae 100755 --- a/mmap2h.sh +++ b/mmap2h.sh @@ -6,5 +6,5 @@ egrep -o '#.*' $1 \ | cut -c 2- \ | tr -d =h \ - | awk '{print "#define " $1 " 0x" $2}' + | awk '{printf "#define %s_ 0x%s\nsfrw(%s,%s_);\n", $1, $2, $1, $1;}' diff --git a/ns430-atoi.mmap b/ns430-atoi.mmap index c542064..ecf5f0d 100644 --- a/ns430-atoi.mmap +++ b/ns430-atoi.mmap @@ -1,305 +1,305 @@ -;------------------------------------------------------------------------- -; NS430 constants for AtoI processor version. -; -; This files contains the SFR definitions for the -; MSP430 variant used in the AtoI processor -; The hardware multiplier is the only perpherial compatabile -; with the standard MSP 430. -; -; The bitfields are derived directly from the VHDL description. -;------------------------------------------------------------------------- - -#PC_AFTER_RESET = 3000h - -memory map inferred from VHDL: -0000 0000 000x xxxx xxxx *HWMult registers - -** CRC module -0000 0000 000x xxx0 000x CRCDI -0000 0000 0000 0000 0000 #CRCDI = 0000h -0000 0000 0000 0000 0000 #CRCDI_L = 0000h -0000 0000 0000 0000 0001 #CRCDI_H = 0001h -0000 0000 000x xxx0 001x CRCDIRB -0000 0000 0000 0000 0010 #CRCDIRB = 0002h -0000 0000 0000 0000 0010 #CRCDIRB_L = 0002h -0000 0000 0000 0000 0011 #CRCDIRB_H = 0002h -0000 0000 000x xxx0 010x CRCINIRES -0000 0000 0000 0000 0100 #CRCINIRES = 0004h -0000 0000 0000 0000 0100 #CRCINIRES_L = 0004h -0000 0000 0000 0000 0101 #CRCINIRES_L = 0005h -0000 0000 000x xxx0 011x CRCRESR -0000 0000 0000 0000 0110 #CRCRESR = 0006h -0000 0000 0000 0000 0110 #CRCRESR_L = 0006h -0000 0000 0000 0000 0111 #CRCRESR_L = 0007h - -** Mult module -0000 0000 000x xxx1 000x MPY -0000 0000 0001 0011 0000 #MPY = 0130h -0000 0000 000x xxx1 001x MPS -0000 0000 0001 0011 0010 #MPYS = 0132h -0000 0000 000x xxx1 010x MAC -0000 0000 0001 0011 0100 #MAC = 0134h -0000 0000 000x xxx1 011x MACS -0000 0000 0001 0011 0110 #MACS = 0136h -0000 0000 000x xxx1 100x OP2 -0000 0000 0001 0011 1000 #OP2 = 0138h -0000 0000 000x xxx1 101x RESLo -0000 0000 0001 0011 1010 #RESLO = 013ah -0000 0000 000x xxx1 110x RESHi -0000 0000 0001 0011 1100 #RESHI = 013ch -0000 0000 000x xxx1 111x SUMExt -0000 0000 0001 0011 1110 #SUMEXT = 013eh - -0000 0000 001x xxxx xxxx na - -** AES module -0000 0000 010x xxxx xxxx AES registers -0000 0000 0100 0000 0000 AES_CR -0000 0000 0100 0000 0000 #AES_CR = 0400h -0000 0000 0100 0000 0010 AES_SR -0000 0000 0100 0000 0010 #AES_SR = 0402h -0000 0000 0100 0001 xxxx AES_STATE -0000 0000 0100 0001 0000 #AES_STATE = 0410h - #AES_STATE_SIZE = 0010h -0000 0000 0111 000x xxxx AES_KEY -0000 0000 0111 0000 0000 #AES_KEY = 0700h - #AES_KEY_SIZE = 0020h -0000 0000 0111 001x xxxx AES_EXPKEY (start) -0000 0000 0111 0010 0000 #AES_EXPKEY = 0720h - #AES_EXPKEY_SIZE = 00e0h -0000 0000 011x xxxx xxxx AES_EXPKEY (range) - -** PIO module -0000 0001 000x xxxx xxxx block start -0000 0001 101x xxXX XXXx PIO -0000 0001 101x xx00 000x PDSR_A -0000 0001 1010 0000 0000 #PADSR = 1a00h -0000 0001 101x xx00 001x PDSR_B -0000 0001 1010 0000 0010 #PBDSR = 1a02h -0000 0001 101x xx00 010x OEN_A -0000 0001 1010 0000 0100 #PAOEN = 1a04h -0000 0001 101x xx00 011x OEN_B -0000 0001 1010 0000 0110 #PBOEN = 1a06h -0000 0001 101x xx00 100x ODR_A -0000 0001 1010 0000 1000 #PAOUT = 1a08h -0000 0001 101x xx00 101x ODR_B -0000 0001 1010 0000 1000 #PBOUT = 1a0ah -0000 0001 101x xx00 110x PER_A -0000 0001 1010 0000 1100 #PAPER = 1a0ch -0000 0001 101x xx00 111x PER_B -0000 0001 1010 0000 1110 #PBPER = 1a0eh -0000 0001 101x xx01 000x IER_A -0000 0001 1010 0001 0000 #PAIER = 1a10h -0000 0001 101x xx01 001x IER_B -0000 0001 1010 0001 0010 #PBIER = 1a12h -0000 0001 101x xx01 010x IMR_A -0000 0001 1010 0001 0100 #PAIMR = 1a14h -0000 0001 101x xx01 011x IMR_B -0000 0001 1010 0001 0110 #PBIMR = 1a16h -0000 0001 101x xx01 100x PPER_A -0000 0001 1010 0001 1000 #PAPUE = 1a18h -0000 0001 101x xx01 101x PPER_B -0000 0001 1010 0001 1010 #PBPUE = 1a1ah -0000 0001 101x xx01 110x TestDrv_B -0000 0001 1010 0001 1100 #PBTSD = 1a1ch -0000 0001 101x xx01 111x PBPSR -0000 0001 1010 0001 1110 #PBPSR = 1a1eh -0000 0001 101x xx10 000x PAOCEN -0000 0001 1010 0010 0000 #PAOCEN = 1a20h -0000 0001 101x xx10 001x PBOCEN -0000 0001 1010 0010 0010 #PAOCEN = 1a22h - -** Timer module -*** Timer0 -0000 0001 110x xxx0 XXXx *TIMER0 -0000 0001 110x xxx0 000x TMR0_CR -0000 0001 1100 0000 0000 #TMR0_CR = 1c00h -0000 0001 110x xxx0 001x TMR0_SR -0000 0001 1100 0000 0010 #TMR0_SR = 1c02h -0000 0001 110x xxx0 010x TMR0_CNT -0000 0001 1100 0000 0100 #TMR0_CNT = 1c04h -0000 0001 110x xxx0 011x TMR0_RA -0000 0001 1100 0000 0110 #TMR0_RA = 1c06h -0000 0001 110x xxx0 100x TMR0_RB -0000 0001 1100 0000 1000 #TMR0_RB = 1c08h -0000 0001 110x xxx0 101x TMR0_RC -0000 0001 1100 0000 1010 #TMR0_RC = 1c0ah -0000 0001 110x xxx0 110x TMR0_C1 -0000 0001 1100 0000 1100 #TMR0_CAP0 = 1c0ch -0000 0001 110x xxx0 111x TMR0_C2 -0000 0001 1100 0000 1110 #TMR0_CAP1 = 1c0eh - -*** Timer1 -0000 0001 110x xxx1 XXXx *TIMER1 -0000 0001 110x xxx1 000x TMR1_CR -0000 0001 1100 0001 0000 #TMR1_CR = 1c10h -0000 0001 110x xxx1 001x TMR1_SR -0000 0001 1100 0001 0010 #TMR1_SR = 1c12h -0000 0001 110x xxx1 010x TMR1_CNT -0000 0001 1100 0001 0100 #TMR1_CNT = 1c14h -0000 0001 110x xxx1 011x TMR1_RA -0000 0001 1100 0001 0110 #TMR1_RA = 1c16h -0000 0001 110x xxx1 100x TMR1_RB -0000 0001 1100 0001 1000 #TMR1_RB = 1c18h -0000 0001 110x xxx1 101x TMR1_RC -0000 0001 1100 0001 1010 #TMR1_RC = 1c1ah -0000 0001 110x xxx1 110x TMR1_C1 -0000 0001 1100 0001 1100 #TMR1_CAP0 = 1c1ch -0000 0001 110x xxx1 111x TMR1_C2 -0000 0001 1100 0001 1110 #TMR1_CAP1 = 1c1eh - -*** Timer2 -0000 0001 111x xxx0 XXXx *TIMER2 -0000 0001 111x xxx0 000x TMR2_CR -0000 0001 1110 0000 0000 #TMR2_CR = 1e00h -0000 0001 111x xxx0 001x TMR2_SR -0000 0001 1110 0000 0010 #TMR2_SR = 1e02h -0000 0001 111x xxx0 010x TMR2_CNT -0000 0001 1110 0000 0100 #TMR2_CNT = 1e04h -0000 0001 111x xxx0 011x TMR2_RA -0000 0001 1110 0000 0110 #TMR2_RA = 1e06h -0000 0001 111x xxx0 100x TMR2_RB -0000 0001 1110 0000 1000 #TMR2_RB = 1e08h -0000 0001 111x xxx0 101x TMR2_RC -0000 0001 1110 0000 1010 #TMR2_RC = 1e0ah -0000 0001 111x xxx0 110x TMR2_C1 -0000 0001 1110 0000 1100 #TMR2_CAP0 = 1e0ch -0000 0001 111x xxx0 111x TMR2_C2 -0000 0001 1110 0000 1110 #TMR2_CAP1 = 1e0eh - -*** Timer3 -0000 0001 111x xxx1 XXXx *TIMER3 -0000 0001 111x xxx1 000x TMR3_CR -0000 0001 1110 0001 0000 #TMR3_CR = 1e10h -0000 0001 111x xxx1 001x TMR3_SR -0000 0001 1110 0001 0010 #TMR3_SR = 1e12h -0000 0001 111x xxx1 010x TMR3_CNT -0000 0001 1110 0001 0100 #TMR3_CNT = 1e14h -0000 0001 111x xxx1 011x TMR3_RA -0000 0001 1110 0001 0110 #TMR3_RA = 1e16h -0000 0001 111x xxx1 100x TMR3_RB -0000 0001 1110 0001 1000 #TMR3_RB = 1e18h -0000 0001 111x xxx1 101x TMR3_RC -0000 0001 1110 0001 1010 #TMR3_RC = 1e1ah -0000 0001 111x xxx1 110x TMR3_C1 -0000 0001 1110 0001 1100 #TMR3_CAP0 = 1e1ch -0000 0001 111x xxx1 111x TMR3_C2 -0000 0001 1110 0001 1110 #TMR3_CAP1 = 1e1eh - -** SPI module -*** SPI0 -0000 0010 000x xxxx XXXx *SPI -0000 0010 000x xxxx 000x SPI0_CR -0000 0010 0000 0000 0000 #SPI0_CR = 2000h -0000 0010 000x xxxx 001x SPI0_RDR -0000 0010 0000 0000 0010 #SPI0_RDR = 2002h -0000 0010 000x xxxx 010x SPI0_TDR -0000 0010 0000 0000 0100 #SPI0_TDR = 2004h -0000 0010 000x xxxx 011x SPI0_SR -0000 0010 0000 0000 0110 #SPI0_SR = 2006h - -*** SPI1 -0000 0010 000x xxxx 100x SPI1_CR -0000 0010 0000 0000 1000 #SPI1_CR = 2008h -0000 0010 000x xxxx 101x SPI1_RDR -0000 0010 0000 0000 1010 #SPI1_RDR = 200ah -0000 0010 000x xxxx 110x SPI1_TDR -0000 0010 0000 0000 1100 #SPI1_TDR = 200ch -0000 0010 000x xxxx 111x SPI1_SR -0000 0010 0000 0000 1110 #SPI1_SR = 200eh - -** UART module -*** UART0 -0000 0010 001x xxx0 XXXx *UART0 -0000 0010 001x xxx0 000x UART0_CR -0000 0010 0010 0000 0000 #UART0_CR = 2200h -0000 0010 001x xxx0 001x UART0_BCR -0000 0010 0010 0000 0010 #UART0_BCR = 2202h -0000 0010 001x xxx0 010x UART0_SR -0000 0010 0010 0000 0100 #UART0_SR = 2204h -0000 0010 001x xxx0 011x UART0_RDR -0000 0010 0010 0000 0110 #UART0_RDR = 2206h -0000 0010 001x xxx0 100x UART0_TDR -0000 0010 0010 0000 1000 #UART0_TDR = 2208h - -*** UART1 -0000 0010 001x xxx1 XXXx *UART1 -0000 0010 001x xxx1 000x UART1_CR -0000 0010 0010 0001 0000 #UART1_CR = 2210h -0000 0010 001x xxx1 001x UART1_BCR -0000 0010 0010 0001 0010 #UART1_BCR = 2212h -0000 0010 001x xxx1 010x UART1_SR -0000 0010 0010 0001 0100 #UART1_SR = 2214h -0000 0010 001x xxx1 011x UART1_RDR -0000 0010 0010 0001 0110 #UART1_RDR = 2216h -0000 0010 001x xxx1 100x UART1_TDR -0000 0010 0010 0001 1000 #UART1_TDR = 2218h - -** Interface module -0000 0010 010x xxxx XXXx *Interf -0000 0010 010x xxxx 000x ADC_CR -0000 0010 0100 0000 0000 #ADC_CR = 2400h -0000 0010 010x xxxx 001x GPIN0 -0000 0010 0100 0000 0010 #GPIN0 = 2402h -0000 0010 010x xxxx 010x GPIN1 -0000 0010 0100 0000 0100 #GPIN1 = 2404h -0000 0010 010x xxxx 011x GPOUT0 -0000 0010 0100 0000 0110 #GPOUT0 = 2406h -0000 0010 010x xxxx 100x GPOUT1 -0000 0010 0100 0000 1000 #GPOUT1 = 2408h -0000 0010 010x xxxx 101x GPOUT2 -0000 0010 0100 0000 1010 #GPOUT2 = 240ah -0000 0010 010x xxxx 110x GPOUT3 -0000 0010 0100 0000 1100 #GPOUT3 = 240ch - -0000 0010 011x xxxx xxxx na -0000 0010 100x xxxx xxxx na - -** I2C module -*** I2C master -0000 0010 101x xxxX XXXx I2C -0000 0010 101x xxx0 000x I2CM_CR -0000 0010 1010 0000 0000 #I2CM_CR = 2a00h -0000 0010 101x xxx0 001x I2CM_TCFG -0000 0010 1010 0000 0010 #I2CM_TCFG = 2a02h -0000 0010 101x xxx0 010x I2CM_SR -0000 0010 1010 0000 0100 #I2CM_SR = 2a04h -0000 0010 101x xxx0 011x I2CM_WCR -0000 0010 1010 0000 0110 #I2CM_WCR = 2a06h -0000 0010 101x xxx0 100x I2CM_TDR_ST -0000 0010 1010 0000 1000 #I2CM_TDR_ST = 2a08h -0000 0010 101x xxx0 101x I2CM_TDR -0000 0010 1010 0000 1010 #I2CM_TDR = 2a0ah -0000 0010 101x xxx0 110x I2CM_TDR_SP -0000 0010 1010 0000 1100 #I2CM_TDR_SP = 2a0ch -0000 0010 101x xxx0 111x I2CM_RDR -0000 0010 1010 0000 1110 #I2CM_RDR = 2a0eh - -*** I2C slave -0000 0010 101x xxx1 000x I2CS_CR -0000 0010 1010 0001 0000 #I2CS_CR = 2a10h -0000 0010 101x xxx1 001x I2CS_SR -0000 0010 1010 0001 0010 #I2CS_SR = 2a12h -0000 0010 101x xxx1 010x I2CS_TDR -0000 0010 1010 0001 0100 #I2CS_TDR = 2a14h -0000 0010 101x xxx1 011x I2CS_RDR -0000 0010 1010 0001 0110 #I2CS_RDR = 2a16h - -0000 0010 110x xxxx xxxx na -0000 0010 111x xxxx xxxx na - -** ROM -0000 0011 xxxx xxxx xxxx ROM -0000 0011 0000 0000 0000 #ROMStart = 3000h - #ROMSize = 0800h - -** SRAM (3x 8ki-words = 24ki-words = 48 kiB -0000 01xx xxxx xxxx xxxx SRAM0 -0000 0100 0000 0000 0000 #RAMStart = 4000h - #RAMSize = c000h -0000 10xx xxxx xxxx xxxx SRAM1 -0000 11xx xxxx xxxx xxxx SRAM2 -0001 00xx xxxx xxxx xxxx SRAM3 ;not fabbed, but used in addr decoder -0001 01xx xxxx xxxx xxxx SRAM4 ;not fabbed, but used in addr decoder -0001 10xx xxxx xxxx xxxx SRAM5 ;not fabbed, but used in addr decoder - +;------------------------------------------------------------------------- +; NS430 constants for AtoI processor version. +; +; This files contains the SFR definitions for the +; MSP430 variant used in the AtoI processor +; The hardware multiplier is the only perpherial compatabile +; with the standard MSP 430. +; +; The bitfields are derived directly from the VHDL description. +;------------------------------------------------------------------------- + +#PC_AFTER_RESET = 3000h + +memory map inferred from VHDL: +0000 0000 000x xxxx xxxx *HWMult registers + +** CRC module +0000 0000 000x xxx0 000x CRCDI +0000 0000 0000 0000 0000 #CRCDI = 0000h +0000 0000 0000 0000 0000 #CRCDI_L = 0000h +0000 0000 0000 0000 0001 #CRCDI_H = 0001h +0000 0000 000x xxx0 001x CRCDIRB +0000 0000 0000 0000 0010 #CRCDIRB = 0002h +0000 0000 0000 0000 0010 #CRCDIRB_L = 0002h +0000 0000 0000 0000 0011 #CRCDIRB_H = 0002h +0000 0000 000x xxx0 010x CRCINIRES +0000 0000 0000 0000 0100 #CRCINIRES = 0004h +0000 0000 0000 0000 0100 #CRCINIRES_L = 0004h +0000 0000 0000 0000 0101 #CRCINIRES_L = 0005h +0000 0000 000x xxx0 011x CRCRESR +0000 0000 0000 0000 0110 #CRCRESR = 0006h +0000 0000 0000 0000 0110 #CRCRESR_L = 0006h +0000 0000 0000 0000 0111 #CRCRESR_L = 0007h + +** Mult module +0000 0000 000x xxx1 000x MPY +0000 0000 0001 0011 0000 #MPY = 0130h +0000 0000 000x xxx1 001x MPS +0000 0000 0001 0011 0010 #MPYS = 0132h +0000 0000 000x xxx1 010x MAC +0000 0000 0001 0011 0100 #MAC = 0134h +0000 0000 000x xxx1 011x MACS +0000 0000 0001 0011 0110 #MACS = 0136h +0000 0000 000x xxx1 100x OP2 +0000 0000 0001 0011 1000 #OP2 = 0138h +0000 0000 000x xxx1 101x RESLo +0000 0000 0001 0011 1010 #RESLO = 013ah +0000 0000 000x xxx1 110x RESHi +0000 0000 0001 0011 1100 #RESHI = 013ch +0000 0000 000x xxx1 111x SUMExt +0000 0000 0001 0011 1110 #SUMEXT = 013eh + +0000 0000 001x xxxx xxxx na + +** AES module +0000 0000 010x xxxx xxxx AES registers +0000 0000 0100 0000 0000 AES_CR +0000 0000 0100 0000 0000 #AES_CR = 0400h +0000 0000 0100 0000 0010 AES_SR +0000 0000 0100 0000 0010 #AES_SR = 0402h +0000 0000 0100 0001 xxxx AES_STATE +0000 0000 0100 0001 0000 #AES_STATE = 0410h + #AES_STATE_SIZE = 0010h +0000 0000 0111 000x xxxx AES_KEY +0000 0000 0111 0000 0000 #AES_KEY = 0700h + #AES_KEY_SIZE = 0020h +0000 0000 0111 001x xxxx AES_EXPKEY (start) +0000 0000 0111 0010 0000 #AES_EXPKEY = 0720h + #AES_EXPKEY_SIZE = 00e0h +0000 0000 011x xxxx xxxx AES_EXPKEY (range) + +** PIO module +0000 0001 000x xxxx xxxx block start +0000 0001 101x xxXX XXXx PIO +0000 0001 101x xx00 000x PDSR_A +0000 0001 1010 0000 0000 #PADSR = 1a00h +0000 0001 101x xx00 001x PDSR_B +0000 0001 1010 0000 0010 #PBDSR = 1a02h +0000 0001 101x xx00 010x OEN_A +0000 0001 1010 0000 0100 #PAOEN = 1a04h +0000 0001 101x xx00 011x OEN_B +0000 0001 1010 0000 0110 #PBOEN = 1a06h +0000 0001 101x xx00 100x ODR_A +0000 0001 1010 0000 1000 #PAOUT = 1a08h +0000 0001 101x xx00 101x ODR_B +0000 0001 1010 0000 1000 #PBOUT = 1a0ah +0000 0001 101x xx00 110x PER_A +0000 0001 1010 0000 1100 #PAPER = 1a0ch +0000 0001 101x xx00 111x PER_B +0000 0001 1010 0000 1110 #PBPER = 1a0eh +0000 0001 101x xx01 000x IER_A +0000 0001 1010 0001 0000 #PAIER = 1a10h +0000 0001 101x xx01 001x IER_B +0000 0001 1010 0001 0010 #PBIER = 1a12h +0000 0001 101x xx01 010x IMR_A +0000 0001 1010 0001 0100 #PAIMR = 1a14h +0000 0001 101x xx01 011x IMR_B +0000 0001 1010 0001 0110 #PBIMR = 1a16h +0000 0001 101x xx01 100x PPER_A +0000 0001 1010 0001 1000 #PAPUE = 1a18h +0000 0001 101x xx01 101x PPER_B +0000 0001 1010 0001 1010 #PBPUE = 1a1ah +0000 0001 101x xx01 110x TestDrv_B +0000 0001 1010 0001 1100 #PBTSD = 1a1ch +0000 0001 101x xx01 111x PBPSR +0000 0001 1010 0001 1110 #PBPSR = 1a1eh +0000 0001 101x xx10 000x PAOCEN +0000 0001 1010 0010 0000 #PAOCEN = 1a20h +0000 0001 101x xx10 001x PBOCEN +0000 0001 1010 0010 0010 #PAOCEN = 1a22h + +** Timer module +*** Timer0 +0000 0001 110x xxx0 XXXx *TIMER0 +0000 0001 110x xxx0 000x TMR0_CR +0000 0001 1100 0000 0000 #TMR0_CR = 1c00h +0000 0001 110x xxx0 001x TMR0_SR +0000 0001 1100 0000 0010 #TMR0_SR = 1c02h +0000 0001 110x xxx0 010x TMR0_CNT +0000 0001 1100 0000 0100 #TMR0_CNT = 1c04h +0000 0001 110x xxx0 011x TMR0_RA +0000 0001 1100 0000 0110 #TMR0_RA = 1c06h +0000 0001 110x xxx0 100x TMR0_RB +0000 0001 1100 0000 1000 #TMR0_RB = 1c08h +0000 0001 110x xxx0 101x TMR0_RC +0000 0001 1100 0000 1010 #TMR0_RC = 1c0ah +0000 0001 110x xxx0 110x TMR0_C1 +0000 0001 1100 0000 1100 #TMR0_CAP0 = 1c0ch +0000 0001 110x xxx0 111x TMR0_C2 +0000 0001 1100 0000 1110 #TMR0_CAP1 = 1c0eh + +*** Timer1 +0000 0001 110x xxx1 XXXx *TIMER1 +0000 0001 110x xxx1 000x TMR1_CR +0000 0001 1100 0001 0000 #TMR1_CR = 1c10h +0000 0001 110x xxx1 001x TMR1_SR +0000 0001 1100 0001 0010 #TMR1_SR = 1c12h +0000 0001 110x xxx1 010x TMR1_CNT +0000 0001 1100 0001 0100 #TMR1_CNT = 1c14h +0000 0001 110x xxx1 011x TMR1_RA +0000 0001 1100 0001 0110 #TMR1_RA = 1c16h +0000 0001 110x xxx1 100x TMR1_RB +0000 0001 1100 0001 1000 #TMR1_RB = 1c18h +0000 0001 110x xxx1 101x TMR1_RC +0000 0001 1100 0001 1010 #TMR1_RC = 1c1ah +0000 0001 110x xxx1 110x TMR1_C1 +0000 0001 1100 0001 1100 #TMR1_CAP0 = 1c1ch +0000 0001 110x xxx1 111x TMR1_C2 +0000 0001 1100 0001 1110 #TMR1_CAP1 = 1c1eh + +*** Timer2 +0000 0001 111x xxx0 XXXx *TIMER2 +0000 0001 111x xxx0 000x TMR2_CR +0000 0001 1110 0000 0000 #TMR2_CR = 1e00h +0000 0001 111x xxx0 001x TMR2_SR +0000 0001 1110 0000 0010 #TMR2_SR = 1e02h +0000 0001 111x xxx0 010x TMR2_CNT +0000 0001 1110 0000 0100 #TMR2_CNT = 1e04h +0000 0001 111x xxx0 011x TMR2_RA +0000 0001 1110 0000 0110 #TMR2_RA = 1e06h +0000 0001 111x xxx0 100x TMR2_RB +0000 0001 1110 0000 1000 #TMR2_RB = 1e08h +0000 0001 111x xxx0 101x TMR2_RC +0000 0001 1110 0000 1010 #TMR2_RC = 1e0ah +0000 0001 111x xxx0 110x TMR2_C1 +0000 0001 1110 0000 1100 #TMR2_CAP0 = 1e0ch +0000 0001 111x xxx0 111x TMR2_C2 +0000 0001 1110 0000 1110 #TMR2_CAP1 = 1e0eh + +*** Timer3 +0000 0001 111x xxx1 XXXx *TIMER3 +0000 0001 111x xxx1 000x TMR3_CR +0000 0001 1110 0001 0000 #TMR3_CR = 1e10h +0000 0001 111x xxx1 001x TMR3_SR +0000 0001 1110 0001 0010 #TMR3_SR = 1e12h +0000 0001 111x xxx1 010x TMR3_CNT +0000 0001 1110 0001 0100 #TMR3_CNT = 1e14h +0000 0001 111x xxx1 011x TMR3_RA +0000 0001 1110 0001 0110 #TMR3_RA = 1e16h +0000 0001 111x xxx1 100x TMR3_RB +0000 0001 1110 0001 1000 #TMR3_RB = 1e18h +0000 0001 111x xxx1 101x TMR3_RC +0000 0001 1110 0001 1010 #TMR3_RC = 1e1ah +0000 0001 111x xxx1 110x TMR3_C1 +0000 0001 1110 0001 1100 #TMR3_CAP0 = 1e1ch +0000 0001 111x xxx1 111x TMR3_C2 +0000 0001 1110 0001 1110 #TMR3_CAP1 = 1e1eh + +** SPI module +*** SPI0 +0000 0010 000x xxxx XXXx *SPI +0000 0010 000x xxxx 000x SPI0_CR +0000 0010 0000 0000 0000 #SPI0_CR = 2000h +0000 0010 000x xxxx 001x SPI0_RDR +0000 0010 0000 0000 0010 #SPI0_RDR = 2002h +0000 0010 000x xxxx 010x SPI0_TDR +0000 0010 0000 0000 0100 #SPI0_TDR = 2004h +0000 0010 000x xxxx 011x SPI0_SR +0000 0010 0000 0000 0110 #SPI0_SR = 2006h + +*** SPI1 +0000 0010 000x xxxx 100x SPI1_CR +0000 0010 0000 0000 1000 #SPI1_CR = 2008h +0000 0010 000x xxxx 101x SPI1_RDR +0000 0010 0000 0000 1010 #SPI1_RDR = 200ah +0000 0010 000x xxxx 110x SPI1_TDR +0000 0010 0000 0000 1100 #SPI1_TDR = 200ch +0000 0010 000x xxxx 111x SPI1_SR +0000 0010 0000 0000 1110 #SPI1_SR = 200eh + +** UART module +*** UART0 +0000 0010 001x xxx0 XXXx *UART0 +0000 0010 001x xxx0 000x UART0_CR +0000 0010 0010 0000 0000 #UART0_CR = 2200h +0000 0010 001x xxx0 001x UART0_BCR +0000 0010 0010 0000 0010 #UART0_BCR = 2202h +0000 0010 001x xxx0 010x UART0_SR +0000 0010 0010 0000 0100 #UART0_SR = 2204h +0000 0010 001x xxx0 011x UART0_RDR +0000 0010 0010 0000 0110 #UART0_RDR = 2206h +0000 0010 001x xxx0 100x UART0_TDR +0000 0010 0010 0000 1000 #UART0_TDR = 2208h + +*** UART1 +0000 0010 001x xxx1 XXXx *UART1 +0000 0010 001x xxx1 000x UART1_CR +0000 0010 0010 0001 0000 #UART1_CR = 2210h +0000 0010 001x xxx1 001x UART1_BCR +0000 0010 0010 0001 0010 #UART1_BCR = 2212h +0000 0010 001x xxx1 010x UART1_SR +0000 0010 0010 0001 0100 #UART1_SR = 2214h +0000 0010 001x xxx1 011x UART1_RDR +0000 0010 0010 0001 0110 #UART1_RDR = 2216h +0000 0010 001x xxx1 100x UART1_TDR +0000 0010 0010 0001 1000 #UART1_TDR = 2218h + +** Interface module +0000 0010 010x xxxx XXXx *Interf +0000 0010 010x xxxx 000x ADC_CR +0000 0010 0100 0000 0000 #ADC_CR = 2400h +0000 0010 010x xxxx 001x GPIN0 +0000 0010 0100 0000 0010 #GPIN0 = 2402h +0000 0010 010x xxxx 010x GPIN1 +0000 0010 0100 0000 0100 #GPIN1 = 2404h +0000 0010 010x xxxx 011x GPOUT0 +0000 0010 0100 0000 0110 #GPOUT0 = 2406h +0000 0010 010x xxxx 100x GPOUT1 +0000 0010 0100 0000 1000 #GPOUT1 = 2408h +0000 0010 010x xxxx 101x GPOUT2 +0000 0010 0100 0000 1010 #GPOUT2 = 240ah +0000 0010 010x xxxx 110x GPOUT3 +0000 0010 0100 0000 1100 #GPOUT3 = 240ch + +0000 0010 011x xxxx xxxx na +0000 0010 100x xxxx xxxx na + +** I2C module +*** I2C master +0000 0010 101x xxxX XXXx I2C +0000 0010 101x xxx0 000x I2CM_CR +0000 0010 1010 0000 0000 #I2CM_CR = 2a00h +0000 0010 101x xxx0 001x I2CM_TCFG +0000 0010 1010 0000 0010 #I2CM_TCFG = 2a02h +0000 0010 101x xxx0 010x I2CM_SR +0000 0010 1010 0000 0100 #I2CM_SR = 2a04h +0000 0010 101x xxx0 011x I2CM_WCR +0000 0010 1010 0000 0110 #I2CM_WCR = 2a06h +0000 0010 101x xxx0 100x I2CM_TDR_ST +0000 0010 1010 0000 1000 #I2CM_TDR_ST = 2a08h +0000 0010 101x xxx0 101x I2CM_TDR +0000 0010 1010 0000 1010 #I2CM_TDR = 2a0ah +0000 0010 101x xxx0 110x I2CM_TDR_SP +0000 0010 1010 0000 1100 #I2CM_TDR_SP = 2a0ch +0000 0010 101x xxx0 111x I2CM_RDR +0000 0010 1010 0000 1110 #I2CM_RDR = 2a0eh + +*** I2C slave +0000 0010 101x xxx1 000x I2CS_CR +0000 0010 1010 0001 0000 #I2CS_CR = 2a10h +0000 0010 101x xxx1 001x I2CS_SR +0000 0010 1010 0001 0010 #I2CS_SR = 2a12h +0000 0010 101x xxx1 010x I2CS_TDR +0000 0010 1010 0001 0100 #I2CS_TDR = 2a14h +0000 0010 101x xxx1 011x I2CS_RDR +0000 0010 1010 0001 0110 #I2CS_RDR = 2a16h + +0000 0010 110x xxxx xxxx na +0000 0010 111x xxxx xxxx na + +** ROM +0000 0011 xxxx xxxx xxxx ROM +0000 0011 0000 0000 0000 #ROMStart = 3000h + #ROMSize = 0800h + +** SRAM (3x 8ki-words = 24ki-words = 48 kiB +0000 01xx xxxx xxxx xxxx SRAM0 +0000 0100 0000 0000 0000 #RAMStart = 4000h + #RAMSize = c000h +0000 10xx xxxx xxxx xxxx SRAM1 +0000 11xx xxxx xxxx xxxx SRAM2 +0001 00xx xxxx xxxx xxxx SRAM3 ;not fabbed, but used in addr decoder +0001 01xx xxxx xxxx xxxx SRAM4 ;not fabbed, but used in addr decoder +0001 10xx xxxx xxxx xxxx SRAM5 ;not fabbed, but used in addr decoder +