@@ -689,26 +689,35 @@ def _get_mem_specs(self, permissions, cmsis_part):
689689 )
690690 )
691691
692- def _get_primary_rom_override (self ):
692+ def _get_primary_memory_override (self , memory_type ):
693693 mem_start = None
694694 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 ))
699702 if (
700703 self .target .is_PSA_non_secure_target or
701704 self .target .is_PSA_secure_target
702705 ):
703706 config , _ = self .get_config_data ()
704707 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
707714 elif self .target .is_PSA_non_secure_target :
708715 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
710720 ).value
711- mem_size = config .get ("target.non-secure-rom-size" , mem_size ).value
712721 if mem_start and not isinstance (mem_start , int ):
713722 mem_start = int (mem_start , 0 )
714723 if mem_size and not isinstance (mem_size , int ):
@@ -739,33 +748,21 @@ def get_all_active_memories(self, memory_list):
739748 except ConfigException :
740749 """ If the target doesn't exits in cmsis, but present in targets.json
741750 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 :
765760 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 )
768763 )
764+ available_memories [active_memory ] = [start , size ]
765+ return available_memories
769766
770767 present_memories = set (cmsis_part ['memories' ].keys ())
771768 valid_memories = set (memory_list ).intersection (present_memories )
@@ -778,7 +775,7 @@ def get_all_active_memories(self, memory_list):
778775 mem_start = memories [memory ]["start" ]
779776 mem_size = memories [memory ]["size" ]
780777 if memory in ['IROM1' , 'PROGRAM_FLASH' ]:
781- start , size = self ._get_primary_rom_override ( )
778+ start , size = self ._get_primary_memory_override ( "rom" )
782779 if start :
783780 mem_start = start
784781 if size :
@@ -787,10 +784,11 @@ def get_all_active_memories(self, memory_list):
787784 elif memory in ['IRAM1' , 'SRAM_OC' , 'SRAM_UPPER' , 'SRAM' ]:
788785 if (self .has_ram_regions ):
789786 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
794792 memory = 'RAM'
795793 else :
796794 active_memory_counter += 1
0 commit comments