@@ -593,6 +593,25 @@ def _get_mem_specs(self, memories, cmsis_part, exception_text):
593
593
continue
594
594
raise ConfigException (exception_text )
595
595
596
+ @property
597
+ def rom (self ):
598
+ """Get rom information as a pair of start_addr, size"""
599
+ # Override rom_start/rom_size
600
+ #
601
+ # This is usually done for a target which:
602
+ # 1. Doesn't support CMSIS pack, or
603
+ # 2. Supports TrustZone and user needs to change its flash partition
604
+ cmsis_part = self ._get_cmsis_part ()
605
+ rom_start , rom_size = self ._get_mem_specs (
606
+ ["IROM1" , "PROGRAM_FLASH" ],
607
+ cmsis_part ,
608
+ "Not enough information in CMSIS packs to build a bootloader "
609
+ "project"
610
+ )
611
+ rom_start = int (getattr (self .target , "mbed_rom_start" , False ) or rom_start , 0 )
612
+ rom_size = int (getattr (self .target , "mbed_rom_size" , False ) or rom_size , 0 )
613
+ return (rom_start , rom_size )
614
+
596
615
@property
597
616
def ram_regions (self ):
598
617
"""Generate a list of ram regions from the config"""
@@ -614,30 +633,16 @@ def ram_regions(self):
614
633
@property
615
634
def regions (self ):
616
635
"""Generate a list of regions from the config"""
617
- cmsis_part = self ._get_cmsis_part ()
618
636
if ((self .target .bootloader_img or self .target .restrict_size ) and
619
637
(self .target .mbed_app_start or self .target .mbed_app_size )):
620
638
raise ConfigException (
621
639
"target.bootloader_img and target.restirct_size are "
622
640
"incompatible with target.mbed_app_start and "
623
641
"target.mbed_app_size" )
624
- rom_start , rom_size = self ._get_mem_specs (
625
- ["IROM1" , "PROMGRAM_FLASH" ],
626
- cmsis_part ,
627
- "Not enough information in CMSIS packs to build a bootloader project"
628
- )
629
- # Override rom_start/rom_size
630
- #
631
- # This is usually done for a target which:
632
- # 1. Doesn't support CMSIS pack, or
633
- # 2. Supports TrustZone and user needs to change its flash partition
634
- rom_start = int (getattr (self .target , "mbed_rom_start" , False ) or rom_start , 0 )
635
- rom_size = int (getattr (self .target , "mbed_rom_size" , False ) or rom_size , 0 )
636
-
637
642
if self .target .bootloader_img or self .target .restrict_size :
638
- return self ._generate_bootloader_build (rom_start , rom_size )
643
+ return self ._generate_bootloader_build (* self . rom )
639
644
else :
640
- return self ._generate_linker_overrides (rom_start , rom_size )
645
+ return self ._generate_linker_overrides (* self . rom )
641
646
642
647
@staticmethod
643
648
def header_member_size (member ):
0 commit comments