From 573fd4f7394b98562dabf13c0f6e81824f078526 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson Date: Fri, 29 Jun 2018 12:09:53 -0500 Subject: [PATCH] Summarize memory map when --stats-depth is 0 --- tools/memap.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tools/memap.py b/tools/memap.py index 3e419e8eb7..eb7d2792f9 100644 --- a/tools/memap.py +++ b/tools/memap.py @@ -12,6 +12,7 @@ import csv import json from argparse import ArgumentParser from copy import deepcopy +from collections import defaultdict from prettytable import PrettyTable from .utils import (argparse_filestring_type, argparse_lowercase_hyphen_type, @@ -54,7 +55,8 @@ class _Parser(object): contents[section] += size return - new_module = {section: size} + new_module = defaultdict(int) + new_module[section] = size self.modules[object_name] = new_module def module_replace(self, old_object, new_object): @@ -519,7 +521,8 @@ class MemapParser(object): Returns: generated string for the 'table' format, otherwise None """ - self.reduce_depth(depth) + if depth is None or depth > 0: + self.reduce_depth(depth) self.compute_report() try: if file_output: @@ -625,10 +628,9 @@ class MemapParser(object): for k in self.sections: self.subtotal[k] = 0 - for i in self.short_modules: + for mod in self.modules.values(): for k in self.sections: - self.short_modules[i].setdefault(k, 0) - self.subtotal[k] += self.short_modules[i][k] + self.subtotal[k] += mod[k] self.mem_summary = { 'static_ram': (self.subtotal['.data'] + self.subtotal['.bss']), @@ -636,13 +638,14 @@ class MemapParser(object): } self.mem_report = [] - for i in sorted(self.short_modules): - self.mem_report.append({ - "module":i, - "size":{ - k: self.short_modules[i][k] for k in self.print_sections - } - }) + if self.short_modules: + for name, sizes in sorted(self.short_modules.items()): + self.mem_report.append({ + "module": name, + "size":{ + k: sizes.get(k, 0) for k in self.print_sections + } + }) self.mem_report.append({ 'summary': self.mem_summary