Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: veľkosť kódu  (Přečteno 1648 krát)

jamesbond

  • Návštěvník
  • Příspěvků: 87
veľkosť kódu
« kdy: 07 Srpna 2011, 17:29:11 »
Ahoj, vedel by mi niekto poradiť, ako vypísať v Make veľkosť generovaného HEX file ?
Už ho mám utriedený vzostupne podľa adresy (sort -k1.8,1.9 -k1.4,1.7) takže teraz je na prvom riadku najnižšia adresa a na predposlednom riadku najvyššia. Stačilo by zistiť adresu z predposledného riadku a vypísať. V lepšom prípade by ešte mohol pripočítať dĺžku predposledného riadku. V dokonalom prípade by ešte mohol odpočítať počiatočnú adresu z prvého riadku. Výstup by mohol byť dekadicky alebo hexadecimálne, alebo oboje.

http://cs.wikipedia.org/wiki/Intel_HEX

Toto je  skrátený výpis toho hex file:
Citace
:20080000F331E0FF3E4CD3003EC332ECFF21870922EDFF3E1D30FBC3C90B7E6F079F67C9BB
:200820007E23666FC97D12C97D12137C12C97DB36F7CB267C97DAB6F7CAA67C97DA36F7C33
:20084000A267C9CD8308C82BC9CD8308C02BC9EBCD8308D82BC9CD8308C8D82BC9CD830853
.
...krátené...
.
:20127C003E01CDAC0EC1C9210C00E53E01CDAC0EC1C9210800E53E01CDAC0EC1C9210C0015
:20129C00E53E01CDAC0EC1C93B21000039E5210000D1CD250821000039CD1A08E521050043
:2012BC0039CD1A08D1CD63087CB5C2DD12C3EA1221000039E5CD1A0823D1CD25082BC3B185
:2012DC0012211000E53E01CDAC0EC1C3CC1233C93B21000039E5210000D1CD25082100001F
:2012FC0039CD1A08E521050039CD1A08D1CD63087CB5C22513C3321321000039E5CD1A080D
:18131C0023D1CD25082BC3F912211400E53E01CDAC0EC1C3141333C94B
:2013340021020039CD1A087D324013DB006FAF67C9C921040039CD1A087D325A13210200CE
:0913540039CD1A087DD300C9C986
:20135D004E43423835202020202020204C4344203230783400557074696D652000536D619A
:12137D006C6C43203830383020636F6D70696C657200D8
:1413990000005F1101007811020091110300AA11C311000010
:00000001FF

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re: veľkosť kódu
« Odpověď #1 kdy: 25 Srpna 2011, 10:07:47 »
Předposlední řádek:

Kód: [Vybrat]
cat zdroj  | sed -e :a -e '$q;N;3,$D;ba' | sed q
a pak z toho snadno vypreparuješ 4.-8. znak:

Kód: [Vybrat]
cat zdroj  | sed -e :a -e '$q;N;3,$D;ba' | sed q | sed -e 's/...\(....\).*/\1/g'
Kdybys chtěl odčítat číslo řádky z počátku souboru, tak už bych to psal v pythonu.

Viz též http://www.soluflex.co.uk/index.php?option=com_content&view=article&id=94:useful-sed-oneliners&catid=61:aix&Itemid=18
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

jamesbond

  • Návštěvník
  • Příspěvků: 87
Re: veľkosť kódu
« Odpověď #2 kdy: 08 Září 2011, 19:21:31 »
Funguje to. Potrebujem aj pripočítať dĺžku na tom predposlednom riadku a aj odpočítať adresu z prvého riadku. Tak nejako som tušil, že toto už bude asi nad možnosti sed alebo awk. Python sa mi nechce učiť, ani inštalovať (pracujem skôr na Windows pod Cygwin ale aj v Ubuntu) napíšem si to radšej v C.

Dík.

 

Provoz zaštiťuje spolek OpenAlt.