]> ruderich.org/simon Gitweb - svdpoke/svdpoke.git/commitdiff
Sort register fields after descending bit offset master
authorSimon Ruderich <simon@ruderich.org>
Fri, 10 Oct 2025 06:57:00 +0000 (08:57 +0200)
committerSimon Ruderich <simon@ruderich.org>
Fri, 10 Oct 2025 06:57:00 +0000 (08:57 +0200)
The order is not consistent in the SVD files. Some registers use an
ascending order, others descending. Make this consistent.

svdpoke.py

index a0042e7fd3e6f927b8a64b950b0c773d9bf1982a..5e24bd676312246d4d083ad0dc2d1d71733fe668 100755 (executable)
@@ -56,8 +56,11 @@ def print_register(register, register_value):
         value = f' = 0x{register_value:X}'
     print(f'{parent.name}_{register.name} @ 0x{addr:08X} (0x{base:08X} + 0x{offset:X}){value}:')
 
         value = f' = 0x{register_value:X}'
     print(f'{parent.name}_{register.name} @ 0x{addr:08X} (0x{base:08X} + 0x{offset:X}){value}:')
 
+    fields = sorted(register.get_fields(),
+                    key=lambda x: x.bit_offset,
+                    reverse=True)
     data = []
     data = []
-    for f in register.get_fields():
+    for f in fields:
         if f.bit_width == 1:
             bits = f'{f.bit_offset}'
             name = f'{f.name}'
         if f.bit_width == 1:
             bits = f'{f.bit_offset}'
             name = f'{f.name}'