size_report: generate multiple reports
Generate both ram/rom reports in one call. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
8d34fbad9f
commit
e230e00677
1 changed files with 45 additions and 37 deletions
|
@ -717,7 +717,7 @@ def parse_args():
|
|||
help="Output path")
|
||||
parser.add_argument("-w", "--workspace", default=None,
|
||||
help="Workspace path (Usually the same as WEST_TOPDIR)")
|
||||
parser.add_argument("target", choices=['rom', 'ram'])
|
||||
parser.add_argument("target", choices=['rom', 'ram', 'all'])
|
||||
parser.add_argument("-d", "--depth", dest="depth",
|
||||
type=int, default=None,
|
||||
help="How deep should we go into the tree",
|
||||
|
@ -738,6 +738,14 @@ def main():
|
|||
init()
|
||||
|
||||
assert os.path.exists(args.kernel), "{0} does not exist.".format(args.kernel)
|
||||
if args.target == 'ram':
|
||||
targets = ['ram']
|
||||
elif args.target == 'rom':
|
||||
targets = ['rom']
|
||||
elif args.target == 'all':
|
||||
targets = ['rom', 'ram']
|
||||
|
||||
for t in targets:
|
||||
|
||||
elf = ELFFile(open(args.kernel, "rb"))
|
||||
|
||||
|
@ -753,14 +761,15 @@ def main():
|
|||
print("WARN: Symbol '{0}' is not in RAM or ROM".format(sym['name']))
|
||||
|
||||
symbol_dict = None
|
||||
if args.target == 'rom':
|
||||
symbol_dict = symbols['rom']
|
||||
symsize = addr_ranges['rom_total_size']
|
||||
ranges = addr_ranges['rom']
|
||||
elif args.target == 'ram':
|
||||
symbol_dict = symbols['ram']
|
||||
symsize = addr_ranges['ram_total_size']
|
||||
ranges = addr_ranges['ram']
|
||||
|
||||
if args.json:
|
||||
jsonout = args.json
|
||||
else:
|
||||
jsonout = os.path.join(args.output, f'{t}.json')
|
||||
|
||||
symbol_dict = symbols[t]
|
||||
symsize = addr_ranges[f'{t}_total_size']
|
||||
ranges = addr_ranges[t]
|
||||
|
||||
if symbol_dict is not None:
|
||||
processed = {"mapped_symbols": set(),
|
||||
|
@ -782,12 +791,11 @@ def main():
|
|||
if not args.quiet:
|
||||
print_any_tree(root, symsize, args.depth)
|
||||
|
||||
if args.json:
|
||||
exporter = DictExporter()
|
||||
data = dict()
|
||||
data["symbols"] = exporter.export(root)
|
||||
data["total_size"] = symsize
|
||||
with open(args.json, "w") as fp:
|
||||
with open(jsonout, "w") as fp:
|
||||
json.dump(data, fp, indent=4)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue