Merge pull request #6017 from theotherjimmy/bl-nonzero-rom

Correct auto-sizing last region of bl
pull/6042/head
Cruz Monrreal 2018-02-07 15:56:43 -06:00 committed by GitHub
commit e9fddb6eee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

View File

@ -570,6 +570,7 @@ class Config(object):
def _generate_bootloader_build(self, rom_start, rom_size):
start = rom_start
rom_end = rom_start + rom_size
if self.target.bootloader_img:
if isabs(self.target.bootloader_img):
filename = self.target.bootloader_img
@ -592,10 +593,10 @@ class Config(object):
new_size = Config._align_floor(start + new_size, self.sectors) - start
yield Region("application", start, new_size, True, None)
start += new_size
yield Region("post_application", start, rom_size - start,
yield Region("post_application", start, rom_end - start,
False, None)
else:
yield Region("application", start, rom_size - start,
yield Region("application", start, rom_end - start,
True, None)
if start > rom_start + rom_size:
raise ConfigException("Not enough memory on device to fit all "

View File

@ -174,3 +174,25 @@ def test_init_override_app_config(target):
mock_json_file_to_dict.assert_any_call(app_config)
assert config.app_config_data == mock_return
@pytest.mark.parametrize("target", ["K64F", "UBLOX_EVK_ODIN_W2"])
@pytest.mark.parametrize("overrides", [
{},
{"restrict_size": "0x200"},
{"mbed_app_start": "0x200"}
])
def test_basic_regions(target, overrides):
"""
Test that the region lists are sane with various configurations
"""
set_targets_json_location()
config = Config(target)
for o, v in overrides.items():
setattr(config.target, o, v)
try:
if config.has_regions:
regions = list(config.regions)
for r in regions:
assert r.size >= 0
except ConfigException:
pass