- register element attributes added/changed:

* name -> mnemonic
* altmnemonic
* accessmode
* accessattr
- register dict updated
- Register class redesigned

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@114 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
schlaepfer
2006-03-16 07:47:05 +00:00
parent 751814e2f2
commit 8708aa2e0e
9 changed files with 2052 additions and 477 deletions

View File

@@ -5,14 +5,17 @@
to the specific register used in this registerDict. to the specific register used in this registerDict.
--> -->
<!ELEMENT registerDefinitions ((registerGroup*, register*) | (register*, registerGroup*))> <!ELEMENT registerDefinitions ((registerGroup* | register*)*)>
<!ELEMENT registerGroup (register+)> <!ELEMENT registerGroup (register+)>
<!ATTLIST registerGroup <!ATTLIST registerGroup
baseAddress CDATA #REQUIRED> baseAddress CDATA #REQUIRED>
<!ELEMENT register (description?)> <!ELEMENT register (description?)>
<!ATTLIST register <!ATTLIST register
name CDATA #REQUIRED mnemonic CDATA #REQUIRED
altmnemonic CDATA #IMPLIED
type (type1|type2|type3) #REQUIRED type (type1|type2|type3) #REQUIRED
value CDATA #REQUIRED value CDATA #REQUIRED
size (1|2|4) #REQUIRED> size (1|2|4) #REQUIRED
accessmode (supervisor|user|test) #IMPLIED
accessattr (readonly|writeonly) #IMPLIED>
<!ELEMENT description (#PCDATA)> <!ELEMENT description (#PCDATA)>

View File

@@ -4,14 +4,17 @@
Only the type values are MC68332 specific. Only the type values are MC68332 specific.
--> -->
<!ELEMENT registerDefinitions ((registerGroup*, register*) | (register*, registerGroup*))> <!ELEMENT registerDefinitions ((registerGroup* | register*)*)>
<!ELEMENT registerGroup (register+)> <!ELEMENT registerGroup (register+)>
<!ATTLIST registerGroup <!ATTLIST registerGroup
baseAddress CDATA #REQUIRED> baseAddress CDATA #REQUIRED>
<!ELEMENT register (description?)> <!ELEMENT register (description?)>
<!ATTLIST register <!ATTLIST register
name CDATA #REQUIRED mnemonic CDATA #REQUIRED
altmnemonic CDATA #IMPLIED
type (CtrlReg|UserReg|SysReg) #REQUIRED type (CtrlReg|UserReg|SysReg) #REQUIRED
value CDATA #REQUIRED value CDATA #REQUIRED
size (1|2|4) #REQUIRED> size (1|2|4) #REQUIRED
accessmode (supervisor|user|test) #IMPLIED
accessattr (readonly|writeonly) #IMPLIED>
<!ELEMENT description (#PCDATA)> <!ELEMENT description (#PCDATA)>

View File

@@ -5,221 +5,221 @@
<registerDefinitions> <registerDefinitions>
<!-- data registers --> <!-- data registers -->
<register name="D0" type="UserReg" value="0x0" size="4"> <register mnemonic="D0" type="UserReg" value="0x0" size="4">
<description>data register 0</description> <description>data register 0</description>
</register> </register>
<register name="D1" type="UserReg" value="0x1" size="4"> <register mnemonic="D1" type="UserReg" value="0x1" size="4">
<description>data register 1</description> <description>data register 1</description>
</register> </register>
<register name="D2" type="UserReg" value="0x2" size="4"> <register mnemonic="D2" type="UserReg" value="0x2" size="4">
<description>data register 2</description> <description>data register 2</description>
</register> </register>
<register name="D3" type="UserReg" value="3" size="4"> <register mnemonic="D3" type="UserReg" value="3" size="4">
<description>data register 3</description> <description>data register 3</description>
</register> </register>
<register name="D4" type="UserReg" value="4" size="4"> <register mnemonic="D4" type="UserReg" value="4" size="4">
<description>data register 43</description> <description>data register 43</description>
</register> </register>
<register name="D5" type="UserReg" value="5" size="4"> <register mnemonic="D5" type="UserReg" value="5" size="4">
<description>data register 5</description> <description>data register 5</description>
</register> </register>
<register name="D6" type="UserReg" value="6" size="4"> <register mnemonic="D6" type="UserReg" value="6" size="4">
<description>data register 6</description> <description>data register 6</description>
</register> </register>
<register name="D7" type="UserReg" value="7" size="4"> <register mnemonic="D7" type="UserReg" value="7" size="4">
<description>data register 7</description> <description>data register 7</description>
</register> </register>
<!-- address registers --> <!-- address registers -->
<register name="A0" type="UserReg" value="0x8" size="4"> <register mnemonic="A0" type="UserReg" value="0x8" size="4">
<description>address register 0</description> <description>address register 0</description>
</register> </register>
<register name="A1" type="UserReg" value="0x9" size="4"> <register mnemonic="A1" type="UserReg" value="0x9" size="4">
<description>address register 1</description> <description>address register 1</description>
</register> </register>
<register name="A2" type="UserReg" value="0xA" size="4"> <register mnemonic="A2" type="UserReg" value="0xA" size="4">
<description>address register 2</description> <description>address register 2</description>
</register> </register>
<register name="A3" type="UserReg" value="0xB" size="4"> <register mnemonic="A3" type="UserReg" value="0xB" size="4">
<description>address register 3</description> <description>address register 3</description>
</register> </register>
<register name="A4" type="UserReg" value="0xC" size="4"> <register mnemonic="A4" type="UserReg" value="0xC" size="4">
<description>address register 4</description> <description>address register 4</description>
</register> </register>
<register name="A5" type="UserReg" value="0xD" size="4"> <register mnemonic="A5" type="UserReg" value="0xD" size="4">
<description>address register 5</description> <description>address register 5</description>
</register> </register>
<register name="A6" type="UserReg" value="0xE" size="4"> <register mnemonic="A6" type="UserReg" value="0xE" size="4">
<description>address register 06</description> <description>address register 06</description>
</register> </register>
<register name="A7" type="UserReg" value="0xF" size="4"> <register mnemonic="A7" type="UserReg" value="0xF" size="4">
<description>address register 7</description> <description>address register 7</description>
</register> </register>
<!-- system registers --> <!-- system registers -->
<register name="RPC" type="SysReg" value="0x0" size="4"> <register mnemonic="RPC" type="SysReg" value="0x0" size="4">
<description>return program counter</description> <description>return program counter</description>
</register> </register>
<register name="PCC" type="SysReg" value="0x1" size="4"> <register mnemonic="PCC" type="SysReg" value="0x1" size="4">
<description>current instruction program counter</description> <description>current instruction program counter</description>
</register> </register>
<register name="SR" type="SysReg" value="0xB" size="2"> <register mnemonic="SR" type="SysReg" value="0xB" size="2">
<description>status register</description> <description>status register</description>
</register> </register>
<register name="USP" type="SysReg" value="0xC" size="4"> <register mnemonic="USP" type="SysReg" value="0xC" size="4">
<description>user stack pointer (A7)</description> <description>user stack pointer (A7)</description>
</register> </register>
<register name="SSP" type="SysReg" value="0xD" size="4"> <register mnemonic="SSP" type="SysReg" value="0xD" size="4">
<description>supervisor stack pointer</description> <description>supervisor stack pointer</description>
</register> </register>
<register name="SFC" type="SysReg" value="0xE" size="4"> <register mnemonic="SFC" type="SysReg" value="0xE" size="4">
<description>source function code register</description> <description>source function code register</description>
</register> </register>
<register name="DFC" type="SysReg" value="0xF" size="4"> <register mnemonic="DFC" type="SysReg" value="0xF" size="4">
<description>destination function code register</description> <description>destination function code register</description>
</register> </register>
<register name="ATEMP" type="SysReg" value="0x8" size="4"> <register mnemonic="ATEMP" type="SysReg" value="0x8" size="4">
<description>temporary register A</description> <description>temporary register A</description>
</register> </register>
<register name="FAR" type="SysReg" value="0x9" size="4"> <register mnemonic="FAR" type="SysReg" value="0x9" size="4">
<description>fault address register</description> <description>fault address register</description>
</register> </register>
<register name="VBR" type="SysReg" value="0xA" size="4"> <register mnemonic="VBR" type="SysReg" value="0xA" size="4">
<description>vector base register</description> <description>vector base register</description>
</register> </register>
<registerGroup baseAddress="0xFFFFF000"> <registerGroup baseAddress="0xFFFFF000">
<!-- control registers --> <!-- control registers -->
<register name="SIMCR" type="CtrlReg" value="0x0A00" <register mnemonic="SIMCR" type="CtrlReg" value="0x0A00"
size="2"> size="2">
<description>sim module configuration register</description> <description>sim module configuration register</description>
</register> </register>
<register name="SYNCR" type="CtrlReg" value="0x0A04" <register mnemonic="SYNCR" type="CtrlReg" value="0x0A04"
size="2"> size="2">
<description>clock synthesizer control</description> <description>clock synthesizer control</description>
</register> </register>
<register name="SYPCR" type="CtrlReg" value="0x0A20" <register mnemonic="SYPCR" type="CtrlReg" value="0x0A20"
size="2"> size="2">
<description>system protection control</description> <description>system protection control</description>
</register> </register>
<register name="CSPAR0" type="CtrlReg" value="0x0A44" <register mnemonic="CSPAR0" type="CtrlReg" value="0x0A44"
size="2"> size="2">
<description> <description>
chip select pin assignment register 0 chip select pin assignment register 0
</description> </description>
</register> </register>
<register name="CSPAR1" type="CtrlReg" value="0x0A46" <register mnemonic="CSPAR1" type="CtrlReg" value="0x0A46"
size="2"> size="2">
<description> <description>
chip select pin assignment register 1 chip select pin assignment register 1
</description> </description>
</register> </register>
<register name="CSBARBT" type="CtrlReg" value="0x0A48" <register mnemonic="CSBARBT" type="CtrlReg" value="0x0A48"
size="2"> size="2">
<description>CSBOOT base address register</description> <description>CSBOOT base address register</description>
</register> </register>
<register name="CSORBT" type="CtrlReg" value="0x0A4A" <register mnemonic="CSORBT" type="CtrlReg" value="0x0A4A"
size="2"> size="2">
<description>CSBOOT option register</description> <description>CSBOOT option register</description>
</register> </register>
<register name="CSBAR0" type="CtrlReg" value="0x0A4C" <register mnemonic="CSBAR0" type="CtrlReg" value="0x0A4C"
size="2"> size="2">
<description> <description>
chip select 0 base address register chip select 0 base address register
</description> </description>
</register> </register>
<register name="CSOR0" type="CtrlReg" value="0x0A4E" <register mnemonic="CSOR0" type="CtrlReg" value="0x0A4E"
size="2"> size="2">
<description>chip select 0 option register</description> <description>chip select 0 option register</description>
</register> </register>
<register name="CSBAR1" type="CtrlReg" value="0x0A50" <register mnemonic="CSBAR1" type="CtrlReg" value="0x0A50"
size="2"> size="2">
<description> <description>
chip select 1 base address register chip select 1 base address register
</description> </description>
</register> </register>
<register name="CSOR1" type="CtrlReg" value="0x0A52" <register mnemonic="CSOR1" type="CtrlReg" value="0x0A52"
size="2"> size="2">
<description>chip select 1 option register</description> <description>chip select 1 option register</description>
</register> </register>
<register name="CSBAR2" type="CtrlReg" value="0x0A54" <register mnemonic="CSBAR2" type="CtrlReg" value="0x0A54"
size="2"> size="2">
<description> <description>
chip select 2 base address register chip select 2 base address register
</description> </description>
</register> </register>
<register name="CSOR2" type="CtrlReg" value="0x0A56" <register mnemonic="CSOR2" type="CtrlReg" value="0x0A56"
size="2"> size="2">
<description>chip select 2 option register</description> <description>chip select 2 option register</description>
</register> </register>
<register name="CSBAR3" type="CtrlReg" value="0x0A58" <register mnemonic="CSBAR3" type="CtrlReg" value="0x0A58"
size="2"> size="2">
<description> <description>
chip select 3 base address register chip select 3 base address register
</description> </description>
</register> </register>
<register name="CSOR3" type="CtrlReg" value="0x0A5A" <register mnemonic="CSOR3" type="CtrlReg" value="0x0A5A"
size="2"> size="2">
<description>chip select 3 option register</description> <description>chip select 3 option register</description>
</register> </register>
<register name="CSBAR4" type="CtrlReg" value="0x0A5C" <register mnemonic="CSBAR4" type="CtrlReg" value="0x0A5C"
size="2"> size="2">
<description> <description>
chip select 4 base address register chip select 4 base address register
</description> </description>
</register> </register>
<register name="CSOR4" type="CtrlReg" value="0x0A5E" <register mnemonic="CSOR4" type="CtrlReg" value="0x0A5E"
size="2"> size="2">
<description>chip select 4 option register</description> <description>chip select 4 option register</description>
</register> </register>
<register name="CSBAR5" type="CtrlReg" value="0x0A60" <register mnemonic="CSBAR5" type="CtrlReg" value="0x0A60"
size="2"> size="2">
<description> <description>
chip select 5 base address register chip select 5 base address register
</description> </description>
</register> </register>
<register name="CSOR5" type="CtrlReg" value="0x0A62" <register mnemonic="CSOR5" type="CtrlReg" value="0x0A62"
size="2"> size="2">
<description>chip select 5 option register</description> <description>chip select 5 option register</description>
</register> </register>
<register name="CSBAR6" type="CtrlReg" value="0x0A64" <register mnemonic="CSBAR6" type="CtrlReg" value="0x0A64"
size="2"> size="2">
<description> <description>
chip select 6 base address register chip select 6 base address register
</description> </description>
</register> </register>
<register name="CSOR6" type="CtrlReg" value="0x0A66" <register mnemonic="CSOR6" type="CtrlReg" value="0x0A66"
size="2"> size="2">
<description>chip select 6 option register</description> <description>chip select 6 option register</description>
</register> </register>
<register name="CSBAR7" type="CtrlReg" value="0x0A68" <register mnemonic="CSBAR7" type="CtrlReg" value="0x0A68"
size="2"> size="2">
<description> <description>
chip select 7 base address register chip select 7 base address register
</description> </description>
</register> </register>
<register name="CSOR7" type="CtrlReg" value="0x0A6A" <register mnemonic="CSOR7" type="CtrlReg" value="0x0A6A"
size="2"> size="2">
<description>chip select 7 option register</description> <description>chip select 7 option register</description>
</register> </register>
<register name="CSBAR8" type="CtrlReg" value="0x0A6C" <register mnemonic="CSBAR8" type="CtrlReg" value="0x0A6C"
size="2"> size="2">
<description> <description>
chip select 8 base address register chip select 8 base address register
</description> </description>
</register> </register>
<register name="CSOR8" type="CtrlReg" value="0x0A6E" <register mnemonic="CSOR8" type="CtrlReg" value="0x0A6E"
size="2"> size="2">
<description>chip select 8 option register</description> <description>chip select 8 option register</description>
</register> </register>
<register name="CSBAR9" type="CtrlReg" value="0x0A70" <register mnemonic="CSBAR9" type="CtrlReg" value="0x0A70"
size="2"> size="2">
<description> <description>
chip select 9 base address register chip select 9 base address register
</description> </description>
</register> </register>
<register name="CSOR9" type="CtrlReg" value="0x0A72" <register mnemonic="CSOR9" type="CtrlReg" value="0x0A72"
size="2"> size="2">
<description>chip select 9 option register</description> <description>chip select 9 option register</description>
</register> </register>
@@ -227,258 +227,297 @@
<!-- TPU registers --> <!-- TPU registers -->
<!-- adjust the setting of tpumcr to reflect modmap bit --> <!-- adjust the setting of tpumcr to reflect modmap bit -->
<register name="TRAMMCR" type="CtrlReg" value="0x0B00" <register mnemonic="TRAMMCR" type="CtrlReg" value="0x0B00"
size="2"> size="2">
<description> <description>
TPURAM module configuration register TPURAM module configuration register
</description> </description>
</register> </register>
<register name="TRAMBAR" type="CtrlReg" value="0x0B04" <register mnemonic="TRAMBAR" type="CtrlReg" value="0x0B04"
size="2"> size="2">
<description> <description>
TPURAM base address and status register TPURAM base address and status register
</description> </description>
</register> </register>
<register name="TPUMCR" type="CtrlReg" value="0x0E00" <register mnemonic="TPUMCR" type="CtrlReg" value="0x0E00"
size="2"> size="2">
<description>TPU module control register</description> <description>TPU module control register</description>
</register> </register>
<register name="TPUCFG" type="CtrlReg" value="0x0E02" <register mnemonic="TPUCFG" type="CtrlReg" value="0x0E02"
size="2"> size="2">
<description>TPU configuration register</description> <description>TPU configuration register</description>
</register> </register>
<register name="DSCR" type="CtrlReg" value="0x0E04" size="2"> <register mnemonic="DSCR" type="CtrlReg" value="0x0E04"
size="2">
<description> <description>
development support control register development support control register
</description> </description>
</register> </register>
<register name="DSSR" type="CtrlReg" value="0x0E06" size="2"> <register mnemonic="DSSR" type="CtrlReg" value="0x0E06"
size="2">
<description> <description>
development support status register development support status register
</description> </description>
</register> </register>
<register name="TPUICR" type="CtrlReg" value="0x0E08" <register mnemonic="TPUICR" type="CtrlReg" value="0x0E08"
size="2"> size="2">
<description> <description>
TPU interrupt configuration register TPU interrupt configuration register
</description> </description>
</register> </register>
<register name="TPUIER" type="CtrlReg" value="0x0E0A" <register mnemonic="TPUIER" type="CtrlReg" value="0x0E0A"
size="2"> size="2">
<description>TPU interrupt enable register</description> <description>TPU interrupt enable register</description>
</register> </register>
<register name="CFSR0" type="CtrlReg" value="0x0E0C" <register mnemonic="CFSR0" type="CtrlReg" value="0x0E0C"
size="2"> size="2">
<description> <description>
channel function select register 0 channel function select register 0
</description> </description>
</register> </register>
<register name="CFSR1" type="CtrlReg" value="0x0E0E" <register mnemonic="CFSR1" type="CtrlReg" value="0x0E0E"
size="2"> size="2">
<description> <description>
channel function select register 1 channel function select register 1
</description> </description>
</register> </register>
<register name="CFSR2" type="CtrlReg" value="0x0E10" <register mnemonic="CFSR2" type="CtrlReg" value="0x0E10"
size="2"> size="2">
<description> <description>
channel function select register 2 channel function select register 2
</description> </description>
</register> </register>
<register name="CFSR3" type="CtrlReg" value="0x0E12" <register mnemonic="CFSR3" type="CtrlReg" value="0x0E12"
size="2"> size="2">
<description> <description>
channel function select register 3 channel function select register 3
</description> </description>
</register> </register>
<register name="HSR0" type="CtrlReg" value="0x0E14" size="2"> <register mnemonic="HSR0" type="CtrlReg" value="0x0E14"
size="2">
<description>host sequence register 0</description> <description>host sequence register 0</description>
</register> </register>
<register name="HSR1" type="CtrlReg" value="0x0E16" size="2"> <register mnemonic="HSR1" type="CtrlReg" value="0x0E16"
size="2">
<description>host sequence register 1</description> <description>host sequence register 1</description>
</register> </register>
<register name="HSRR0" type="CtrlReg" value="0x0E18" <register mnemonic="HSRR0" type="CtrlReg" value="0x0E18"
size="2"> size="2">
<description>host service request register 0</description> <description>host service request register 0</description>
</register> </register>
<register name="HSRR1" type="CtrlReg" value="0x0E1A" <register mnemonic="HSRR1" type="CtrlReg" value="0x0E1A"
size="2"> size="2">
<description>host service request register 1</description> <description>host service request register 1</description>
</register> </register>
<register name="CPR0" type="CtrlReg" value="0x0E1C" size="2"> <register mnemonic="CPR0" type="CtrlReg" value="0x0E1C"
size="2">
<description>channel priority register 0</description> <description>channel priority register 0</description>
</register> </register>
<register name="CPR1" type="CtrlReg" value="0x0E1E" size="2"> <register mnemonic="CPR1" type="CtrlReg" value="0x0E1E"
size="2">
<description>channel priority register 1</description> <description>channel priority register 1</description>
</register> </register>
<register name="TPUISR" type="CtrlReg" value="0x0E20" <register mnemonic="TPUISR" type="CtrlReg" value="0x0E20"
size="2"> size="2">
<description>TPU interrupt status register</description> <description>TPU interrupt status register</description>
</register> </register>
<register name="LINK" type="CtrlReg" value="0x0E22" size="2"> <register mnemonic="LINK" type="CtrlReg" value="0x0E22"
size="2">
<description>???</description> <description>???</description>
</register> </register>
<register name="SGLR" type="CtrlReg" value="0x0E24" size="2"> <register mnemonic="SGLR" type="CtrlReg" value="0x0E24"
size="2">
<description>service grant latch register</description> <description>service grant latch register</description>
</register> </register>
<register name="DCNR" type="CtrlReg" value="0x0E26" size="2"> <register mnemonic="DCNR" type="CtrlReg" value="0x0E26"
size="2">
<description>decoded channel number register</description> <description>decoded channel number register</description>
</register> </register>
<!-- Port E Registers --> <!-- Port E Registers -->
<register name="PORTE0" type="CtrlReg" value="0x0A11" <register mnemonic="PORTE0" type="CtrlReg" value="0x0A11"
size="1"> size="1">
<description>Port E data register 0</description> <description>Port E data register 0</description>
</register> </register>
<register name="PORTE1" type="CtrlReg" value="0x0A13" <register mnemonic="PORTE1" type="CtrlReg" value="0x0A13"
size="1"> size="1">
<description>Port E data register 1</description> <description>Port E data register 1</description>
</register> </register>
<register name="DDRE" type="CtrlReg" value="0x0A15" size="1"> <register mnemonic="DDRE" type="CtrlReg" value="0x0A15"
size="1">
<description>Port E data direction register</description> <description>Port E data direction register</description>
</register> </register>
<register name="PEPAR" type="CtrlReg" value="0x0A17" <register mnemonic="PEPAR" type="CtrlReg" value="0x0A17"
size="1"> size="1">
<description>Port E pin assignment register</description> <description>Port E pin assignment register</description>
</register> </register>
<!-- Port F Registers --> <!-- Port F Registers -->
<register name="PORTF0" type="CtrlReg" value="0x0A19" <register mnemonic="PORTF0" type="CtrlReg" value="0x0A19"
size="1"> size="1">
<description>Port F data register 0</description> <description>Port F data register 0</description>
</register> </register>
<register name="PORTF1" type="CtrlReg" value="0x0A1B" <register mnemonic="PORTF1" type="CtrlReg" value="0x0A1B"
size="1"> size="1">
<description>Port F data register 1</description> <description>Port F data register 1</description>
</register> </register>
<register name="DDRF" type="CtrlReg" value="0x0A1D" size="1"> <register mnemonic="DDRF" type="CtrlReg" value="0x0A1D"
size="1">
<description>Port F data direction register</description> <description>Port F data direction register</description>
</register> </register>
<register name="PFPAR" type="CtrlReg" value="0x0A1F" <register mnemonic="PFPAR" type="CtrlReg" value="0x0A1F"
size="1"> size="1">
<description>Port F pin assignment register</description> <description>Port F pin assignment register</description>
</register> </register>
<!-- TPU parameter ram start addresses --> <!-- TPU parameter ram start addresses -->
<register name="CH0" type="CtrlReg" value="0x0F00" size="2"> <register mnemonic="CH0" type="CtrlReg" value="0x0F00"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH1" type="CtrlReg" value="0x0F10" size="2"> <register mnemonic="CH1" type="CtrlReg" value="0x0F10"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH2" type="CtrlReg" value="0x0F20" size="2"> <register mnemonic="CH2" type="CtrlReg" value="0x0F20"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH3" type="CtrlReg" value="0x0F30" size="2"> <register mnemonic="CH3" type="CtrlReg" value="0x0F30"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH4" type="CtrlReg" value="0x0F40" size="2"> <register mnemonic="CH4" type="CtrlReg" value="0x0F40"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH5" type="CtrlReg" value="0x0F50" size="2"> <register mnemonic="CH5" type="CtrlReg" value="0x0F50"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH6" type="CtrlReg" value="0x0F60" size="2"> <register mnemonic="CH6" type="CtrlReg" value="0x0F60"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH7" type="CtrlReg" value="0x0F70" size="2"> <register mnemonic="CH7" type="CtrlReg" value="0x0F70"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH8" type="CtrlReg" value="0x0F80" size="2"> <register mnemonic="CH8" type="CtrlReg" value="0x0F80"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH9" type="CtrlReg" value="0x0F90" size="2"> <register mnemonic="CH9" type="CtrlReg" value="0x0F90"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH10" type="CtrlReg" value="0x0FA0" size="2"> <register mnemonic="CH10" type="CtrlReg" value="0x0FA0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH11" type="CtrlReg" value="0x0FB0" size="2"> <register mnemonic="CH11" type="CtrlReg" value="0x0FB0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH12" type="CtrlReg" value="0x0FC0" size="2"> <register mnemonic="CH12" type="CtrlReg" value="0x0FC0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH13" type="CtrlReg" value="0x0FD0" size="2"> <register mnemonic="CH13" type="CtrlReg" value="0x0FD0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH14" type="CtrlReg" value="0x0FE0" size="2"> <register mnemonic="CH14" type="CtrlReg" value="0x0FE0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<register name="CH15" type="CtrlReg" value="0x0FF0" size="2"> <register mnemonic="CH15" type="CtrlReg" value="0x0FF0"
size="2">
<description>TPU parameter ram start address</description> <description>TPU parameter ram start address</description>
</register> </register>
<!-- queued serial module --> <!-- queued serial module -->
<register name="QMCR" type="CtrlReg" value="0x0C00" size="2"> <register mnemonic="QMCR" type="CtrlReg" value="0x0C00"
size="2">
<description>QSM configuration register</description> <description>QSM configuration register</description>
</register> </register>
<register name="QTEST" type="CtrlReg" value="0x0C02" <register mnemonic="QTEST" type="CtrlReg" value="0x0C02"
size="2"> size="2">
<description>QSM test register</description> <description>QSM test register</description>
</register> </register>
<register name="QILR" type="CtrlReg" value="0x0C04" size="1"> <register mnemonic="QILR" type="CtrlReg" value="0x0C04"
size="1">
<description>QSM interrupt level register</description> <description>QSM interrupt level register</description>
</register> </register>
<register name="QIVR" type="CtrlReg" value="0x0C05" size="1"> <register mnemonic="QIVR" type="CtrlReg" value="0x0C05"
size="1">
<description>QSM interrupt vector register</description> <description>QSM interrupt vector register</description>
</register> </register>
<register name="SCCR0" type="CtrlReg" value="0x0C08" <register mnemonic="SCCR0" type="CtrlReg" value="0x0C08"
size="2"> size="2">
<description>SCI control register 0</description> <description>SCI control register 0</description>
</register> </register>
<register name="SCCR1" type="CtrlReg" value="0x0C0A" <register mnemonic="SCCR1" type="CtrlReg" value="0x0C0A"
size="2"> size="2">
<description>SCI control register 1</description> <description>SCI control register 1</description>
</register> </register>
<register name="SCSR" type="CtrlReg" value="0x0C0C" size="2"> <register mnemonic="SCSR" type="CtrlReg" value="0x0C0C"
size="2">
<description>SCI status register</description> <description>SCI status register</description>
</register> </register>
<register name="SCDR" type="CtrlReg" value="0x0C0E" size="2"> <register mnemonic="SCDR" type="CtrlReg" value="0x0C0E"
size="2">
<description>SCI data register</description> <description>SCI data register</description>
</register> </register>
<register name="QPDR" type="CtrlReg" value="0x0C15" size="2"> <register mnemonic="QPDR" type="CtrlReg" value="0x0C15"
size="2">
<description>QSM port data register</description> <description>QSM port data register</description>
</register> </register>
<register name="QPAR" type="CtrlReg" value="0x0C16" size="2"> <register mnemonic="QPAR" type="CtrlReg" value="0x0C16"
size="2">
<description>QSM pin assignment register</description> <description>QSM pin assignment register</description>
</register> </register>
<register name="QDDR" type="CtrlReg" value="0x0C17" size="2"> <register mnemonic="QDDR" type="CtrlReg" value="0x0C17"
size="2">
<description>QSM data direction register</description> <description>QSM data direction register</description>
</register> </register>
<register name="SPCR0" type="CtrlReg" value="0x0C18" <register mnemonic="SPCR0" type="CtrlReg" value="0x0C18"
size="2"> size="2">
<description>QSPI control register 0</description> <description>QSPI control register 0</description>
</register> </register>
<register name="SPCR1" type="CtrlReg" value="0x0C1A" <register mnemonic="SPCR1" type="CtrlReg" value="0x0C1A"
size="2"> size="2">
<description>QSPI control register 1</description> <description>QSPI control register 1</description>
</register> </register>
<register name="SPCR2" type="CtrlReg" value="0x0C1C" <register mnemonic="SPCR2" type="CtrlReg" value="0x0C1C"
size="2"> size="2">
<description>QSPI control register 2</description> <description>QSPI control register 2</description>
</register> </register>
<register name="SPCR3" type="CtrlReg" value="0x0C1E" <register mnemonic="SPCR3" type="CtrlReg" value="0x0C1E"
size="1"> size="1">
<description>QSPI control register 3</description> <description>QSPI control register 3</description>
</register> </register>
<register name="SPSR" type="CtrlReg" value="0x0C1F" size="1"> <register mnemonic="SPSR" type="CtrlReg" value="0x0C1F"
size="1">
<description>QSPI status register</description> <description>QSPI status register</description>
</register> </register>
<register name="QRXD" type="CtrlReg" value="0x0D00" size="2"> <register mnemonic="QRXD" type="CtrlReg" value="0x0D00"
size="2">
<description>QSPI receive data</description> <description>QSPI receive data</description>
</register> </register>
<register name="QTXD" type="CtrlReg" value="0x0D20" size="2"> <register mnemonic="QTXD" type="CtrlReg" value="0x0D20"
size="2">
<description>QSPI transmit data</description> <description>QSPI transmit data</description>
</register> </register>
<register name="QCMD" type="CtrlReg" value="0x0D40" size="2"> <register mnemonic="QCMD" type="CtrlReg" value="0x0D40"
size="2">
<description>QSPI command control</description> <description>QSPI command control</description>
</register> </register>
</registerGroup> </registerGroup>

View File

@@ -4,14 +4,17 @@
Only the type values are MPC555 specific. Only the type values are MPC555 specific.
--> -->
<!ELEMENT registerDefinitions ((registerGroup*, register*) | (register*, registerGroup*))> <!ELEMENT registerDefinitions ((registerGroup* | register*)*)>
<!ELEMENT registerGroup (register+)> <!ELEMENT registerGroup (register+)>
<!ATTLIST registerGroup <!ATTLIST registerGroup
baseAddress CDATA #REQUIRED> baseAddress CDATA #REQUIRED>
<!ELEMENT register (description?)> <!ELEMENT register (description?)>
<!ATTLIST register <!ATTLIST register
name CDATA #REQUIRED mnemonic CDATA #REQUIRED
altmnemonic CDATA #IMPLIED
type (CtrlReg|GPR|FPR|SPR|MSR|CR|FPSCR) #REQUIRED type (CtrlReg|GPR|FPR|SPR|MSR|CR|FPSCR) #REQUIRED
value CDATA #REQUIRED value CDATA #REQUIRED
size (1|2|4) #REQUIRED> size (1|2|4) #REQUIRED
accessmode (supervisor|user|test) #IMPLIED
accessattr (readonly|writeonly) #IMPLIED>
<!ELEMENT description (#PCDATA)> <!ELEMENT description (#PCDATA)>

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,8 @@ package ch.ntb.mcdp.dict;
*/ */
public abstract class Register { public abstract class Register {
private static final String INIT_STRING = "***";
/** /**
* Register specific type values. <br> * Register specific type values. <br>
* The index of each type in the types array represents its numeric value. * The index of each type in the types array represents its numeric value.
@@ -19,59 +21,154 @@ public abstract class Register {
protected static String[] types = null; protected static String[] types = null;
/** /**
* Name of the register. Registers are identified by this value. * Menemoic of the register. Registers are identified by this value.
*/ */
public String name = "NOT INITIALISED"; private String mnemonic = INIT_STRING;
/**
* Alternative mnemonic of the register
*/
private String altmnemonic = INIT_STRING;
/** /**
* Register specific type * Register specific type
*/ */
public int type; private int type;
/** /**
* Address or a register specific value (e.g. BDI-identifier) * Address or a register specific value (e.g. BDI-identifier)
*/ */
public int value; private int value;
/** /**
* Size in bytes (width) * Size in bytes (width)
*/ */
public int size; private int size;
/** /**
* A string description of the register * A string description of the register
*/ */
public String description; private String description;
/** /**
* @param name * @return the mnemonic of this register
* name of the register. Registers are identified by this value.
* @param type
* register specific type
* @param value
* address or a register specific value (e.g. BDI-identifier)
* @param size
* size in bytes
* @param description
* a string description of the register
*/ */
public void init(String name, int type, int value, int size, public String getMnemonic() {
String description) { return mnemonic;
this.name = name; }
this.type = type;
this.value = value; /**
this.size = size; * Set the mnemonic of this register
*
* @param name
*/
public void setMnemonic(String name) {
this.mnemonic = name;
}
/**
* @return alternative mnemonic of the register
*/
public String getAltmnemonic() {
return altmnemonic;
}
/**
* Set the alternative name of the register.
*
* @param altname
*/
public void setAltmnemonic(String altname) {
this.altmnemonic = altname;
}
/**
* @return the register description
*/
public String getDescription() {
return description;
}
/**
* Set the register description.
*
* @param description
*/
public void setDescription(String description) {
this.description = description; this.description = description;
} }
/**
* @return the size in bytes (width)
*/
public int getSize() {
return size;
}
/**
* Set the size in bytes (width)
*
* @param size
*/
public void setSize(int size) {
this.size = size;
}
/**
* @return the type of the register. This is the index of the static
* <code>types</code> String array.
*/
public int getType() {
return type;
}
/**
* Set the type of the register. This is the index of the static
* <code>types</code> String array.
*
* @param type
*/
public void setType(int type) {
this.type = type;
}
/**
* @return the address or a register specific value (e.g. BDI-identifier)
*/
public int getValue() {
return value;
}
/**
* Set the address or a register specific value (e.g. BDI-identifier).
*
* @param value
*/
public void setValue(int value) {
this.value = value;
}
/**
* @return true if a mnemonic was set and the size is valid (size > 0), else
* false
*/
public boolean isValid() {
if ((mnemonic == INIT_STRING) || (size <= 0))
return false;
return true;
}
@Override @Override
public String toString() { public String toString() {
return new String(name + "\t" + types[type] + "\t0x" return new String(mnemonic + "\t" + altmnemonic + "\t" + types[type]
+ Integer.toHexString(value) + "\t" + size + "\t" + description); + "\t0x" + Integer.toHexString(value) + "\t" + size + "\t"
+ description);
} }
/** /**
* Get the register specific type strings. * Get the register specific type strings. This value has to be initialised
* in the <code>static</code> section of the derived Register class as
* this is Register specific.
* *
* @return types strings * @return types strings
*/ */

View File

@@ -52,7 +52,7 @@ public abstract class RegisterDict {
private static final String DESCRIPTION = "description"; private static final String DESCRIPTION = "description";
private static final String REG_ATTR_NAME = "name"; private static final String REG_ATTR_MNEMONIC = "mnemonic";
private static final String REG_ATTR_TYPE = "type"; private static final String REG_ATTR_TYPE = "type";
@@ -104,16 +104,22 @@ public abstract class RegisterDict {
String description) { String description) {
// remove before add for updates // remove before add for updates
for (Iterator i = registers.iterator(); i.hasNext();) { for (Iterator i = registers.iterator(); i.hasNext();) {
if (((Register) i.next()).name.equals(name)) { Register r = (Register) i.next();
if (r.getMnemonic().equals(name) || r.getAltmnemonic().equals(name)) {
i.remove(); i.remove();
} }
} }
Register reg = null; Register reg = null;
try { try {
reg = (Register) regClass.newInstance(); reg = (Register) regClass.newInstance();
reg.init(name, type, value, size, description); reg.setMnemonic(name);
reg.setType(type);
reg.setValue(value);
reg.setSize(size);
reg.setDescription(description);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
// TODO exception handling
System.exit(1); System.exit(1);
} }
registers.add(reg); registers.add(reg);
@@ -149,7 +155,7 @@ public abstract class RegisterDict {
public Register getRegister(String name) { public Register getRegister(String name) {
for (Iterator i = registers.iterator(); i.hasNext();) { for (Iterator i = registers.iterator(); i.hasNext();) {
Register r = (Register) i.next(); Register r = (Register) i.next();
if (r.name.equals(name)) { if (r.getMnemonic().equals(name) || r.getAltmnemonic().equals(name)) {
return r; return r;
} }
} }
@@ -162,7 +168,8 @@ public abstract class RegisterDict {
public void printRegisters() { public void printRegisters() {
System.out System.out
.println("******************** register dictionary *********************"); .println("******************** register dictionary *********************");
System.out.println("Name\tType\tAddress\tSize\tDescription"); System.out
.println("Mnemonic\tAltmnemonic\tType\tAddress\tSize\tDescription");
System.out System.out
.println("**************************************************************"); .println("**************************************************************");
for (Iterator i = registers.iterator(); i.hasNext();) { for (Iterator i = registers.iterator(); i.hasNext();) {
@@ -235,7 +242,7 @@ public abstract class RegisterDict {
} else if (list.item(j).getNodeName().equals(REGISTER)) { } else if (list.item(j).getNodeName().equals(REGISTER)) {
NamedNodeMap attributes = list.item(j).getAttributes(); NamedNodeMap attributes = list.item(j).getAttributes();
// attributes: name, type, offset, size // attributes: name, type, offset, size
Node n = attributes.getNamedItem(REG_ATTR_NAME); Node n = attributes.getNamedItem(REG_ATTR_MNEMONIC);
String name = n.getNodeValue(); String name = n.getNodeValue();
n = attributes.getNamedItem(REG_ATTR_TYPE); n = attributes.getNamedItem(REG_ATTR_TYPE);
String typeStr = n.getNodeValue(); String typeStr = n.getNodeValue();
@@ -266,7 +273,7 @@ public abstract class RegisterDict {
if (list.item(i).getNodeName().equals(REGISTER)) { if (list.item(i).getNodeName().equals(REGISTER)) {
NamedNodeMap attributes = list.item(i).getAttributes(); NamedNodeMap attributes = list.item(i).getAttributes();
// attributes: name, type, offset, size // attributes: name, type, offset, size
Node n = attributes.getNamedItem(REG_ATTR_NAME); Node n = attributes.getNamedItem(REG_ATTR_MNEMONIC);
String name = n.getNodeValue(); String name = n.getNodeValue();
n = attributes.getNamedItem(REG_ATTR_TYPE); n = attributes.getNamedItem(REG_ATTR_TYPE);
String typeStr = n.getNodeValue(); String typeStr = n.getNodeValue();

View File

@@ -3,11 +3,15 @@ package ch.ntb.mcdp.mc68332;
import ch.ntb.mcdp.dict.Register; import ch.ntb.mcdp.dict.Register;
/** /**
* Representation of a MC68332 Register
*
* For system and user registers the <code>value</code> value is used as BDI * For system and user registers the <code>value</code> value is used as BDI
* specific identifier (code specific to each register from the Technical * specific identifier (code specific to each register from the Technical
* Reference Manual). * Reference Manual).
*
* @author schlaepfer
*
*/ */
public class MC68332Register extends Register { public class MC68332Register extends Register {
// Register Types // Register Types

View File

@@ -2,6 +2,12 @@ package ch.ntb.mcdp.mpc555;
import ch.ntb.mcdp.dict.Register; import ch.ntb.mcdp.dict.Register;
/**
* Representation of a MPC555 Register
*
* @author schlaepfer
*
*/
public class MPC555Register extends Register { public class MPC555Register extends Register {
// Register Types // Register Types