@@ -745,6 +745,48 @@ def get_all_active_memories(self, memory_list):
745
745
746
746
try :
747
747
cmsis_part = self ._get_cmsis_part ()
748
+ present_memories = set (cmsis_part ['memories' ].keys ())
749
+ valid_memories = set (memory_list ).intersection (present_memories )
750
+
751
+ memories = self ._get_mem_specs (
752
+ ["read" , "write" if active_memory == "RAM" else "execute" ],
753
+ cmsis_part
754
+ )
755
+ for memory in valid_memories :
756
+ mem_start = memories [memory ]["start" ]
757
+ mem_size = memories [memory ]["size" ]
758
+ if memory in ['IROM1' , 'PROGRAM_FLASH' ]:
759
+ start , size = self ._get_primary_memory_override ("rom" )
760
+ if start :
761
+ mem_start = start
762
+ if size :
763
+ mem_size = size
764
+ memory = 'ROM'
765
+ elif memory in ['IRAM1' , 'SRAM_OC' , 'SRAM_UPPER' , 'SRAM' ]:
766
+ if (self .has_ram_regions ):
767
+ continue
768
+ start , size = self ._get_primary_memory_override ("ram" )
769
+ if start :
770
+ mem_start = start
771
+ if size :
772
+ mem_size = size
773
+ memory = 'RAM'
774
+ else :
775
+ active_memory_counter += 1
776
+ memory = active_memory + str (active_memory_counter )
777
+
778
+ if not isinstance (mem_start , int ):
779
+ mem_start = int (mem_start , 0 )
780
+ if not isinstance (mem_size , int ):
781
+ mem_size = int (mem_size , 0 )
782
+ available_memories [memory ] = [mem_start , mem_size ]
783
+
784
+ if not available_memories :
785
+ raise ConfigException (
786
+ "Bootloader not supported on this target. "
787
+ "No memories found."
788
+ )
789
+ return available_memories
748
790
except ConfigException :
749
791
""" If the target doesn't exits in cmsis, but present in targets.json
750
792
with ram and rom start/size defined"""
@@ -764,43 +806,6 @@ def get_all_active_memories(self, memory_list):
764
806
available_memories [active_memory ] = [start , size ]
765
807
return available_memories
766
808
767
- present_memories = set (cmsis_part ['memories' ].keys ())
768
- valid_memories = set (memory_list ).intersection (present_memories )
769
-
770
- memories = self ._get_mem_specs (
771
- ["read" , "write" if active_memory == "RAM" else "execute" ],
772
- cmsis_part
773
- )
774
- for memory in valid_memories :
775
- mem_start = memories [memory ]["start" ]
776
- mem_size = memories [memory ]["size" ]
777
- if memory in ['IROM1' , 'PROGRAM_FLASH' ]:
778
- start , size = self ._get_primary_memory_override ("rom" )
779
- if start :
780
- mem_start = start
781
- if size :
782
- mem_size = size
783
- memory = 'ROM'
784
- elif memory in ['IRAM1' , 'SRAM_OC' , 'SRAM_UPPER' , 'SRAM' ]:
785
- if (self .has_ram_regions ):
786
- continue
787
- start , size = self ._get_primary_memory_override ("ram" )
788
- if start :
789
- mem_start = start
790
- if size :
791
- mem_size = size
792
- memory = 'RAM'
793
- else :
794
- active_memory_counter += 1
795
- memory = active_memory + str (active_memory_counter )
796
-
797
- if not isinstance (mem_start , int ):
798
- mem_start = int (mem_start , 0 )
799
- if not isinstance (mem_size , int ):
800
- mem_size = int (mem_size , 0 )
801
- available_memories [memory ] = [mem_start , mem_size ]
802
-
803
- return available_memories
804
809
805
810
@property
806
811
def ram_regions (self ):
0 commit comments