Dziękuje Kolegom za podpowiedzi jednak pliki *.lss i *.map są po prostu nie czytelne.
Grzebanie i wyszukiwanie w nich zwięzłej informacji jest czasochłonne.
Do tej pory posługiwałem się prostszą "łopatologiczną" metodą - wycinania funkcji i sprawdzania o ile zmniejszy się zajętość flash i ram.
Chciałem się dowiedzieć czy jest jakaś lepsza metoda, może trochę nie precyzyjnie zadałem pytanie, ale nie bardzo wiedziałem jak szukać tej informacji.
W komercyjnym kompilatorze dostaje coś takiego:
LINK MAP OF MODULE: flash (TEST)
TYPE BASE LENGTH RELOCATION SEGMENT NAME
-----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
DATA 0008H 0003H UNIT ?DT?_PRINT_CIMG?TEST
DATA 000BH 0002H UNIT ?DT?DELAY0?TEST
DATA 000DH 0002H UNIT ?DT?CLS?TEST
DATA 000FH 0002H UNIT ?DT?DELAY1?TEST
DATA 0011H 0002H UNIT ?DT?DELAY2?TEST
DATA 0013H 0002H UNIT ?DT?DELAY3?TEST
DATA 0015H 0001H UNIT ?DT?_WRITE_BIT?TEST
DATA 0016H 0001H UNIT ?DT?MAIN?TEST
0017H 0009H *** GAP ***
DATA 0020H 000CH BIT_ADDR ?BA?TEST
IDATA 002CH 0001H UNIT ?STACK
* * * * * * * C O D E M E M O R Y * * * * * * *
CODE 0000H 0003H ABSOLUTE
CODE 0003H 0304H INBLOCK ?PR?PRINT_IMG?TEST
CODE 0307H 008CH UNIT ?C_C51STARTUP
CODE 0393H 0078H UNIT ?CO?TEST
CODE 040BH 0034H INBLOCK ?PR?MAIN?TEST
CODE 043FH 0029H INBLOCK ?PR?_PRINT_CIMG?TEST
CODE 0468H 0026H INBLOCK ?PR?CLS?TEST
CODE 048EH 001EH INBLOCK ?PR?DELAY0?TEST
CODE 04ACH 001EH INBLOCK ?PR?DELAY1?TEST
CODE 04CAH 001EH INBLOCK ?PR?DELAY2?TEST
CODE 04E8H 001EH INBLOCK ?PR?DELAY3?TEST
CODE 0506H 0018H INBLOCK ?PR?_WRITE_BIT?TEST
CODE 051EH 000FH UNIT ?C_INITSEG
CODE 052DH 000EH INBLOCK ?PR?STROB_LE?TEST
CODE 053BH 0009H INBLOCK ?PR?INIT?TEST
Dodatkowo do każdego modułu mam:
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
blink. . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
anim . . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
anim_brak. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
anim_lad . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_pnt_anim. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
n. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
_pnt_bat . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
f. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
t. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
_pnt_tab . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
a. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
b. . . . . . . . . . . . . . . . . . AUTO DATA INT 0000H 2
s. . . . . . . . . . . . . . . . . . AUTO DATA PTR 0002H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
c. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
zeg_anim . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
anim_stop. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
bat_tab. . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 16
anim_roz . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
pam_obr. . . . . . . . . . . . . . . . EXTERN IDATA ARRAY ----- 32
z0_ss. . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
xy . . . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 176 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
Dzięki takim statystykom szybko odczytuje to co potrzeba.
Oczywiście ktoś mógłby powiedzieć że jak mi się coś nie podoba to powinienem kupić sobie inny kompilator, ale przecież nie o to tu chodzi.
Chciałbym się zapytać kolegów czy istnieje jakiś sposób wygenerowania podobnych raportów w WinAvr może po prostu są już jakieś narzędzia wyciągające z piku *.elf
klarowne statystyki?