@@ -689,26 +689,35 @@ def _get_mem_specs(self, permissions, cmsis_part):
689
689
)
690
690
)
691
691
692
- def _get_primary_rom_override (self ):
692
+ def _get_primary_memory_override (self , memory_type ):
693
693
mem_start = None
694
694
mem_size = None
695
- if hasattr (self .target , "mbed_rom_start" ):
696
- mem_start = getattr (self .target , "mbed_rom_start" )
697
- if hasattr (self .target , "mbed_rom_size" ):
698
- mem_size = getattr (self .target , "mbed_rom_size" )
695
+ if hasattr (self .target , "mbed_{}_start" .format (memory_type )):
696
+ mem_start = getattr (
697
+ self .target ,
698
+ "mbed_{}_start" .format (memory_type )
699
+ )
700
+ if hasattr (self .target , "mbed_{}_size" .format (memory_type )):
701
+ mem_size = getattr (self .target , "mbed_{}_size" .format (memory_type ))
699
702
if (
700
703
self .target .is_PSA_non_secure_target or
701
704
self .target .is_PSA_secure_target
702
705
):
703
706
config , _ = self .get_config_data ()
704
707
if self .target .is_PSA_secure_target :
705
- mem_start = config .get ("target.secure-rom-start" , mem_start ).value
706
- mem_size = config .get ("target.secure-rom-size" , mem_size ).value
708
+ mem_start = config .get (
709
+ "target.secure-{}-start" .format (memory_type ), mem_start
710
+ ).value
711
+ mem_size = config .get (
712
+ "target.secure-{}-size" .format (memory_type ), mem_size
713
+ ).value
707
714
elif self .target .is_PSA_non_secure_target :
708
715
mem_start = config .get (
709
- "target.non-secure-rom-start" , mem_start
716
+ "target.non-secure-{}-start" .format (memory_type ), mem_start
717
+ ).value
718
+ mem_size = config .get (
719
+ "target.non-secure-{}-size" .format (memory_type ), mem_size
710
720
).value
711
- mem_size = config .get ("target.non-secure-rom-size" , mem_size ).value
712
721
if mem_start and not isinstance (mem_start , int ):
713
722
mem_start = int (mem_start , 0 )
714
723
if mem_size and not isinstance (mem_size , int ):
@@ -739,33 +748,21 @@ def get_all_active_memories(self, memory_list):
739
748
except ConfigException :
740
749
""" If the target doesn't exits in cmsis, but present in targets.json
741
750
with ram and rom start/size defined"""
742
- if (
743
- getattr (self .target , "mbed_ram_start" )
744
- and active_memory == 'RAM'
745
- ):
746
- mem_start = int (getattr (self .target , "mbed_ram_start" ), 0 )
747
- mem_size = int (getattr (self .target , "mbed_ram_size" ), 0 )
748
- available_memories [active_memory ] = [mem_start , mem_size ]
749
- return available_memories
750
- elif active_memory == 'ROM' :
751
- start , size = self ._get_primary_rom_override ()
752
- if not start :
753
- raise ConfigException (
754
- "Bootloader not supported on this target. rom "
755
- "start not found in targets.json."
756
- )
757
- if not size :
758
- raise ConfigException (
759
- "Bootloader not supported on this target. rom "
760
- "size not found in targets.json."
761
- )
762
- available_memories [active_memory ] = [start , size ]
763
- return available_memories
764
- else :
751
+ start , size = self ._get_primary_memory_override (
752
+ active_memory .lower ()
753
+ )
754
+ if not start :
755
+ raise ConfigException (
756
+ "Bootloader not supported on this target. {} "
757
+ "start not found in targets.json." .format (active_memory )
758
+ )
759
+ if not size :
765
760
raise ConfigException (
766
- "Bootloader not supported on this target. ram/rom "
767
- "start/ size not found in targets.json."
761
+ "Bootloader not supported on this target. {} "
762
+ "size not found in targets.json." . format ( active_memory )
768
763
)
764
+ available_memories [active_memory ] = [start , size ]
765
+ return available_memories
769
766
770
767
present_memories = set (cmsis_part ['memories' ].keys ())
771
768
valid_memories = set (memory_list ).intersection (present_memories )
@@ -778,7 +775,7 @@ def get_all_active_memories(self, memory_list):
778
775
mem_start = memories [memory ]["start" ]
779
776
mem_size = memories [memory ]["size" ]
780
777
if memory in ['IROM1' , 'PROGRAM_FLASH' ]:
781
- start , size = self ._get_primary_rom_override ( )
778
+ start , size = self ._get_primary_memory_override ( "rom" )
782
779
if start :
783
780
mem_start = start
784
781
if size :
@@ -787,10 +784,11 @@ def get_all_active_memories(self, memory_list):
787
784
elif memory in ['IRAM1' , 'SRAM_OC' , 'SRAM_UPPER' , 'SRAM' ]:
788
785
if (self .has_ram_regions ):
789
786
continue
790
- if getattr (self .target , "mbed_ram_start" , False ):
791
- mem_start = getattr (self .target , "mbed_ram_start" )
792
- if getattr (self .target , "mbed_ram_start" , False ):
793
- mem_size = getattr (self .target , "mbed_ram_size" )
787
+ start , size = self ._get_primary_memory_override ("ram" )
788
+ if start :
789
+ mem_start = start
790
+ if size :
791
+ mem_size = size
794
792
memory = 'RAM'
795
793
else :
796
794
active_memory_counter += 1
0 commit comments