Use notification API in BL modes

pull/6781/head
Jimmy Brisson 2018-04-26 09:54:01 -05:00
parent 85e33b4143
commit fcf7dbf4c6
2 changed files with 14 additions and 11 deletions

View File

@ -397,7 +397,7 @@ def _fill_header(region_list, current_region):
start += Config.header_member_size(member)
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
Positional Arguments:
@ -408,7 +408,7 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
merged = IntelHex()
_, format = splitext(destination)
print("Merging Regions:")
notify.info("Merging Regions")
for region in region_list:
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')
region = region._replace(filename=header_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_size = (part.maxaddr() - part.minaddr()) + 1
if part_size > region.size:
@ -428,7 +428,8 @@ def merge_region_list(region_list, destination, padding=b'\xFF'):
merged.merge(part)
pad_size = region.size - part_size
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":
"""The offset will be in the hex file generated when we're done,
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)):
makedirs(dirname(destination))
print("Space used after regions merged: 0x%x" %
(merged.maxaddr() - merged.minaddr() + 1))
notify.info("Space used after regions merged: 0x%x" %
(merged.maxaddr() - merged.minaddr() + 1))
with open(destination, "wb+") as output:
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]
res = "%s.%s" % (join(build_path, name),
getattr(toolchain.target, "OUTPUT_EXT", "bin"))
merge_region_list(region_list, res)
merge_region_list(region_list, res, notify)
else:
res, _ = toolchain.link_program(resources, build_path, name)

View File

@ -1148,8 +1148,10 @@ class mbedToolchain:
def add_regions(self):
"""Add regions to the build profile, if there are any.
"""
print("Using regions in this build:")
for region in self.config.regions:
regions = list(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),
(region.name.upper() + "_SIZE", region.size)]:
define_string = "-D%s=0x%x" % define
@ -1162,8 +1164,8 @@ class mbedToolchain:
define_string = self.make_ld_define(*define)
self.ld.append(define_string)
self.flags["ld"].append(define_string)
print(" Region %s size 0x%x, offset 0x%x"
% (region.name, region.size, region.start))
self.notify.info(" Region %s: size 0x%x, offset 0x%x"
% (region.name, region.size, region.start))
# Set the configuration data
def set_config_data(self, config_data):