mirror of https://github.com/ARMmbed/mbed-os.git
Use notification API in BL modes
parent
85e33b4143
commit
fcf7dbf4c6
|
@ -397,7 +397,7 @@ def _fill_header(region_list, current_region):
|
||||||
start += Config.header_member_size(member)
|
start += Config.header_member_size(member)
|
||||||
return header
|
return header
|
||||||
|
|
||||||
def merge_region_list(region_list, destination, padding=b'\xFF'):
|
def merge_region_list(region_list, destination, notify, padding=b'\xFF'):
|
||||||
"""Merge the region_list into a single image
|
"""Merge the region_list into a single image
|
||||||
|
|
||||||
Positional Arguments:
|
Positional Arguments:
|
||||||
|
@ -408,7 +408,7 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
|
||||||
merged = IntelHex()
|
merged = IntelHex()
|
||||||
_, format = splitext(destination)
|
_, format = splitext(destination)
|
||||||
|
|
||||||
print("Merging Regions:")
|
notify.info("Merging Regions")
|
||||||
|
|
||||||
for region in region_list:
|
for region in region_list:
|
||||||
if region.active and not region.filename:
|
if region.active and not region.filename:
|
||||||
|
@ -419,7 +419,7 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
|
||||||
_fill_header(region_list, region).tofile(header_filename, format='hex')
|
_fill_header(region_list, region).tofile(header_filename, format='hex')
|
||||||
region = region._replace(filename=header_filename)
|
region = region._replace(filename=header_filename)
|
||||||
if region.filename:
|
if region.filename:
|
||||||
print(" Filling region %s with %s" % (region.name, region.filename))
|
notify.info(" Filling region %s with %s" % (region.name, region.filename))
|
||||||
part = intelhex_offset(region.filename, offset=region.start)
|
part = intelhex_offset(region.filename, offset=region.start)
|
||||||
part_size = (part.maxaddr() - part.minaddr()) + 1
|
part_size = (part.maxaddr() - part.minaddr()) + 1
|
||||||
if part_size > region.size:
|
if part_size > region.size:
|
||||||
|
@ -428,7 +428,8 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
|
||||||
merged.merge(part)
|
merged.merge(part)
|
||||||
pad_size = region.size - part_size
|
pad_size = region.size - part_size
|
||||||
if pad_size > 0 and region != region_list[-1]:
|
if pad_size > 0 and region != region_list[-1]:
|
||||||
print(" Padding region %s with 0x%x bytes" % (region.name, pad_size))
|
notify.info(" Padding region %s with 0x%x bytes" %
|
||||||
|
(region.name, pad_size))
|
||||||
if format is ".hex":
|
if format is ".hex":
|
||||||
"""The offset will be in the hex file generated when we're done,
|
"""The offset will be in the hex file generated when we're done,
|
||||||
so we can skip padding here"""
|
so we can skip padding here"""
|
||||||
|
@ -437,8 +438,8 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
|
||||||
|
|
||||||
if not exists(dirname(destination)):
|
if not exists(dirname(destination)):
|
||||||
makedirs(dirname(destination))
|
makedirs(dirname(destination))
|
||||||
print("Space used after regions merged: 0x%x" %
|
notify.info("Space used after regions merged: 0x%x" %
|
||||||
(merged.maxaddr() - merged.minaddr() + 1))
|
(merged.maxaddr() - merged.minaddr() + 1))
|
||||||
with open(destination, "wb+") as output:
|
with open(destination, "wb+") as output:
|
||||||
merged.tofile(output, format=format.strip("."))
|
merged.tofile(output, format=format.strip("."))
|
||||||
|
|
||||||
|
@ -574,7 +575,7 @@ def build_project(src_paths, build_path, target, toolchain_name,
|
||||||
for r in region_list]
|
for r in region_list]
|
||||||
res = "%s.%s" % (join(build_path, name),
|
res = "%s.%s" % (join(build_path, name),
|
||||||
getattr(toolchain.target, "OUTPUT_EXT", "bin"))
|
getattr(toolchain.target, "OUTPUT_EXT", "bin"))
|
||||||
merge_region_list(region_list, res)
|
merge_region_list(region_list, res, notify)
|
||||||
else:
|
else:
|
||||||
res, _ = toolchain.link_program(resources, build_path, name)
|
res, _ = toolchain.link_program(resources, build_path, name)
|
||||||
|
|
||||||
|
|
|
@ -1148,8 +1148,10 @@ class mbedToolchain:
|
||||||
def add_regions(self):
|
def add_regions(self):
|
||||||
"""Add regions to the build profile, if there are any.
|
"""Add regions to the build profile, if there are any.
|
||||||
"""
|
"""
|
||||||
print("Using regions in this build:")
|
regions = list(self.config.regions)
|
||||||
for region in self.config.regions:
|
self.notify.info("Using regions %s in this build."
|
||||||
|
% ", ".join(region.name for region in regions))
|
||||||
|
for region in regions:
|
||||||
for define in [(region.name.upper() + "_ADDR", region.start),
|
for define in [(region.name.upper() + "_ADDR", region.start),
|
||||||
(region.name.upper() + "_SIZE", region.size)]:
|
(region.name.upper() + "_SIZE", region.size)]:
|
||||||
define_string = "-D%s=0x%x" % define
|
define_string = "-D%s=0x%x" % define
|
||||||
|
@ -1162,8 +1164,8 @@ class mbedToolchain:
|
||||||
define_string = self.make_ld_define(*define)
|
define_string = self.make_ld_define(*define)
|
||||||
self.ld.append(define_string)
|
self.ld.append(define_string)
|
||||||
self.flags["ld"].append(define_string)
|
self.flags["ld"].append(define_string)
|
||||||
print(" Region %s size 0x%x, offset 0x%x"
|
self.notify.info(" Region %s: size 0x%x, offset 0x%x"
|
||||||
% (region.name, region.size, region.start))
|
% (region.name, region.size, region.start))
|
||||||
|
|
||||||
# Set the configuration data
|
# Set the configuration data
|
||||||
def set_config_data(self, config_data):
|
def set_config_data(self, config_data):
|
||||||
|
|
Loading…
Reference in New Issue