Hi, I am running Segger Embedded Studio (4.10a) to get used to the Nordic DK for the nRF52840. Now I have found, that the register display seems not to be able to show some of the SFRs. For example, if I activate the UICR group, I get the following registers: UNUSED0, UNUSED1, UNUSED2, UNUSED3, APPROTECT, NFCPINS, DEBUGCTRL and REGOUT0. But there are a lot more registers according the the manual, all missing registers are arrays: NRFFW-NRFFW, NRFHW-NRFHW, CUSTOMER-CUSTOMER and PSELRESET-PSELRESET. The same applies to other SFR groups. I have checked for the missing registers in the nrf52840.svd file which is part of the SDK 15.2.0, and found for example this entry: <register> <dim>0xF</dim> <dimIncrement>0x4</dimIncrement> <name>NRFFW[%s]</name> <description>Description collection[n]: Reserved for Nordic firmware design</description> <addressOffset>0x014</addressOffset> <access>read-write</access> <resetValue>0xFFFFFFFF</resetValue> <fields> <field> <name>NRFFW</name> <description>Reserved for Nordic firmware design</description> <lsb>0</lsb> <msb>31</msb> </field> </fields> </register>
I have stated this question already in the Segger forum, but got a redirect to ask here. I have no idea, if the SVD file is wrong or the Segger Embedded Studio has a bug.
Thank you for reporting this.
This looks like a bug in Segger Embedded studio. Maybe they can't read hex numbers in dim* tags. The dim* tags are defined as containing a scaled non negative integer, defined as:
<!-- scaledNonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimar format -->
If segger embedded studio can read svd files, it should be able to read all numerical elements as hex as well as decimal.
We will also report this to Segger.
thank you, your guess is right. I have replaced the hex values in the <dim> and <dimIncrement> elements by decimal values and now the register arrays appear.
Btw. I had tried that before without success, After modification of the svd file it seems not to be enough if you close and re-open the Segger Embedded Studio, you have also to unselect and then select again the appropriate register group in the "Group" window in order to get a correct register array display.