]> rtime.felk.cvut.cz Git - arc.git/blob - scripts/hc1x_memory.awk
Regenerated examples for TMS570.
[arc.git] / scripts / hc1x_memory.awk
1 \r
2 # Awk program for parsing "objdump -h" output\r
3 # Copyright ArcCore AB\r
4 \r
5 BEGIN {\r
6 \r
7         # Constants\r
8         kilobyte = 1024\r
9 \r
10         # Arch constants\r
11         flash_total_size = 128 * kilobytes\r
12         ram_total_size = 8 * kilobytes\r
13 \r
14         # Setup\r
15         flash_start_hex = "0x4000"\r
16         ram_start_hex = "0x2000"\r
17         flash_start_n = strtonum(flash_start_hex)\r
18 \r
19         print ""\r
20         print "-- Setup -------------------"\r
21         printf "%-15s %10s\n", "Ram start:", ram_start_hex\r
22         printf "%-15s %10s\n", "Flash start:", flash_start_hex\r
23         print ""\r
24         print "-- Layout ------------------"\r
25 \r
26         flash_size = 0\r
27         ram_size = 0\r
28 }\r
29 \r
30 {\r
31         if ( $1 ~ /[0-9]+/ && $2 ~ /\./ ) {\r
32 \r
33                 name = $2\r
34 \r
35                 size = "0x" $3\r
36                 size_n = strtonum(size)\r
37 \r
38                 vma = "0x" $4\r
39                 vma_n = strtonum(vma)\r
40 \r
41                 lma = "0x" $5\r
42                 lma_n = strtonum(lma)\r
43 \r
44                 type = "-"\r
45 \r
46                 if (lma_n != 0) {\r
47                         if (vma_n >= flash_start_n) {\r
48                                 flash_size += size_n\r
49                                 type = "flash"\r
50                         } else {\r
51                                 ram_size += size_n\r
52                                 type = "ram"\r
53                         }\r
54 \r
55                         printf "%-10s %10s %10.1f %s %10s\n", name, size_n " B", size_n/kilobyte, "kB", "[" type "]"\r
56 \r
57                 }\r
58 \r
59         }\r
60 }\r
61 \r
62 END {\r
63         print ""\r
64         print "-- Totals ------------------"\r
65 \r
66         printf "%-10s %10s %10.1f %s\n", "Flash:", flash_size " B", flash_size/kilobyte, "kB"\r
67 \r
68         printf "%-10s %10s %10.1f %s\n", "Ram:", ram_size " B", ram_size/kilobyte, "kB"\r
69 }