Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Atmel/ATSAMD21G18A.svd: Displaying a 64 bit register #33

Open
chocotov1 opened this issue Aug 17, 2020 · 0 comments
Open

Atmel/ATSAMD21G18A.svd: Displaying a 64 bit register #33

chocotov1 opened this issue Aug 17, 2020 · 0 comments

Comments

@chocotov1
Copy link

chocotov1 commented Aug 17, 2020

I want to check out the NVM User Row register of the SAMD21 via svd. Since it's not defined in ATSAMD21G18A.svd I tried to add it myself.

The problem is, I can only see the values that are in the first word. This register is split into two words: 0x804000 and 0x804004.

From the SAMD21 datasheet:
Selection_006

Here is what I added to the svd file:

      <name>NVM</name>
      <description>NVM</description>
      <baseAddress>0x804000</baseAddress>
      <registers>
        <register>
          <name>USER_ROW</name>
          <description>user row 0x804000</description>
          <addressOffset>0x0</addressOffset>
          <size>0x40</size>
          <fields>
            <field>
              <name>BOOTPROT</name>
              <bitRange>[2:0]</bitRange>
            </field>
            <field>
              <name>EEPROM</name>
              <bitRange>[6:4]</bitRange>
            </field>
            <field>
              <name>BOD33 Level</name>
              <bitRange>[13:8]</bitRange>
            </field>
            <field>
              <name>BOD33 Enable</name>
              <bitRange>[14:14]</bitRange>
            </field>
            <field>
              <name>BOD33 Action</name>
              <bitRange>[16:15]</bitRange>
            </field>
            <field>
              <name>WDT Enable</name>
              <bitRange>[25:25]</bitRange>
            </field>
            <field>
              <name>WDT Always-On</name>
              <bitRange>[26:26]</bitRange>
            </field>
            <field>
              <name>WDT Period</name>
              <bitRange>[30:27]</bitRange>
            </field>
            <field>
              <name>WDT Window</name>
              <bitRange>[34:31]</bitRange>
            </field>
            <field>
              <name>WDT EWOFFSET</name>
              <bitRange>[38:35]</bitRange>
            </field>
            <field>
              <name>WDT WEN</name>
              <bitRange>[39:39]</bitRange>
            </field>
            <field>
              <name>BOD33 Hysteresis</name>
              <bitRange>[40:40]</bitRange>
            </field>
            <field>
              <name>LOCK</name>
              <bitRange>[63:48]</bitRange>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>

The second word seems to be missing:

(gdb) x/t 0x804000
0x804000:	11011000111000000000000000000111
(gdb) 
0x804004:	11111111111111111111110001011101
(gdb) svd/t NVM 
Registers in NVM:
	USER_ROW:  0b0000000000000000000000000000000011011000111000000000000000000111  user row 0x804000
(gdb) svd/d NVM USER_ROW
Fields in NVM USER_ROW:
	BOOTPROT:           7  
	EEPROM:             0  
	BOD33 Level:        0  
	BOD33 Enable:       0  
	BOD33 Action:       0  
	WDT Enable:         0  
	WDT Always-On:      0  
	WDT Period:        11  
	WDT Window:         1  
	WDT EWOFFSET:       0  
	WDT WEN:            0  
	BOD33 Hysteresis:   0  
	LOCK:               0  

I haven't tried the .svd file in other software.

@VincentDary VincentDary transferred this issue from cmsis-svd/cmsis-svd Oct 25, 2024
@VincentDary VincentDary changed the title Displaying a 64 bit register Atmel/ATSAMD21G18A.svd: Displaying a 64 bit register Oct 30, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant