|
23 | 23 | import argparse, sys, subprocess, re |
24 | 24 | import os.path |
25 | 25 | import pprint |
| 26 | +import operator |
26 | 27 |
|
27 | 28 | DEFAULT_TOOLCHAIN_PREFIX = "xtensa-esp32-elf-" |
28 | 29 |
|
@@ -204,27 +205,30 @@ def print_detailed_sizes(sections, key, header): |
204 | 205 | "& rodata", |
205 | 206 | "Total") |
206 | 207 | print("%24s %10s %6s %6s %10s %8s %7s" % headings) |
207 | | - for k in sorted(sizes.keys()): |
| 208 | + result = {} |
| 209 | + for k in (sizes.keys()): |
208 | 210 | v = sizes[k] |
| 211 | + result[k] = {} |
| 212 | + result[k]["data"] = v.get(".dram0.data", 0) |
| 213 | + result[k]["bss"] = v.get(".dram0.bss", 0) |
| 214 | + result[k]["iram"] = sum(t for (s,t) in v.items() if s.startswith(".iram0")) |
| 215 | + result[k]["flash_text"] = v.get(".flash.text", 0) |
| 216 | + result[k]["flash_rodata"] = v.get(".flash.rodata", 0) |
| 217 | + result[k]["total"] = sum(result[k].values()) |
| 218 | + |
| 219 | + def return_total_size(elem): |
| 220 | + val = elem[1] |
| 221 | + return val["total"] |
| 222 | + for k,v in sorted(result.items(), key=return_total_size, reverse=True): |
209 | 223 | if ":" in k: # print subheadings for key of format archive:file |
210 | 224 | sh,k = k.split(":") |
211 | | - if sh != sub_heading: |
212 | | - print(sh) |
213 | | - sub_heading = sh |
214 | | - |
215 | | - data = v.get(".dram0.data", 0) |
216 | | - bss = v.get(".dram0.bss", 0) |
217 | | - iram = sum(t for (s,t) in v.items() if s.startswith(".iram0")) |
218 | | - flash_text = v.get(".flash.text", 0) |
219 | | - flash_rodata = v.get(".flash.rodata", 0) |
220 | | - total = data + bss + iram + flash_text + flash_rodata |
221 | 225 | print("%24s %10d %6d %6d %10d %8d %7d" % (k[:24], |
222 | | - data, |
223 | | - bss, |
224 | | - iram, |
225 | | - flash_text, |
226 | | - flash_rodata, |
227 | | - total)) |
| 226 | + v["data"], |
| 227 | + v["bss"], |
| 228 | + v["iram"], |
| 229 | + v["flash_text"], |
| 230 | + v["flash_rodata"], |
| 231 | + v["total"])) |
228 | 232 |
|
229 | 233 | if __name__ == "__main__": |
230 | 234 | main() |
|
0 commit comments