diff options
Diffstat (limited to 'script')
-rwxr-xr-x | script/nfpvalues.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/script/nfpvalues.py b/script/nfpvalues.py new file mode 100755 index 0000000..b88c3df --- /dev/null +++ b/script/nfpvalues.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# +# Copyright 2021 Daniel Friesel +# +# SPDX-License-Identifier: BSD-2-Clause + +import json +import re +import subprocess +import sys + + +def main(size_executable, rom_sections, ram_sections): + rom_sections = rom_sections.split(",") + ram_sections = ram_sections.split(",") + + status = subprocess.run( + [size_executable, "-A", "build/system.elf"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + + section_size = dict() + + for line in status.stdout.split("\n"): + match = re.match("[.](\S+)\s+(\d+)", line) + if match: + section = match.group(1) + size = int(match.group(2)) + section_size[section] = size + + total = { + "ROM": sum(map(lambda section: section_size[section], rom_sections)), + "RAM": sum(map(lambda section: section_size[section], ram_sections)), + } + + output = {"OS Image": total} + + print(json.dumps(output)) + + +if __name__ == "__main__": + main(*sys.argv[1:]) |