svdtools icon indicating copy to clipboard operation
svdtools copied to clipboard

svdpatch collect array requires base address as string

Open albertmoravec opened this issue 5 years ago • 0 comments

When running svdpatch against register with modified base address written as number I get the following error:

Traceback (most recent call last):
  File "scripts/svdpatch.py", line 883, in <module>
    main()
  File "scripts/svdpatch.py", line 876, in main
    process_device(svd, root)
  File "scripts/svdpatch.py", line 855, in process_device
    update_fields)
  File "scripts/svdpatch.py", line 400, in process_peripheral
    p.collect_in_array(rspec, rmod)
  File "scripts/svdpatch.py", line 511, in collect_in_array
    int(rtag.findtext('addressOffset'), 0)])
TypeError: int() can't convert non-string with explicit base
Makefile:38: recipe for target 'svd/stm32f427.svd.patched' failed
make: *** [svd/stm32f427.svd.patched] Error 1

Input used to generate this error:

OTG_HS_GLOBAL:
  _modify:
    DIEPTXF3:
      addressOffset: 0x10C
  
  _array:
    DIEPTXF[12345]: {}

If I put the address in quotes like this: addressOffset: 0x10C everything works fine.

albertmoravec avatar Aug 04 '19 15:08 albertmoravec