logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[STM8] Jak sprawdzić wielkość kodu wynikowego dla STM8 w STVD i Cosmic Compiler?

sebus_1985 25 Lip 2012 12:36 3970 5
  • #1 11141687
    sebus_1985
    Poziom 11  
    Witam,
    Napisałem programik na ten mikrokontroler i wszystko działa ok. Obecnie używam STM8-Discovery, ale w docelowej produkcji chce użyć jakiegoś mniejszego.
    Nie wiem gdzie sprawdzić wielkość kodu wynikowego, żeby dobrać odpowiedni mikrokontroler (najmniejszy i najtańszy jaki się da). Czy wielkość pliku *.elf świadczy o wielkości i ilości zajmowanego miejsca?

    Używam: STM8-Discovery, STVD, Cosmic Compiler.
  • Pomocny post
    #2 11141759
    victoriii
    Poziom 19  
    Trzeba w ustawieniach projektu wybrać tak żeby bodajże linker generował plik *.map i tam będzie wielkość programu.
  • #3 11141792
    LordBlick
    VIP Zasłużony dla elektroda
    Niekoniecznie trzeba klikać, wystarczy poczytać o opcjach arm-size.
    Edit: W sumie to pomyliłem się z stm23... :P
    Tym niemniej mogą istnieć w tym środowisku jakieś narzędzia linii poleceń z size w nazwie, skoro elf jest generowany - format pliku wykonywalnego wywodzi się z narzędzi Unixowych.
  • #4 11142165
    sebus_1985
    Poziom 11  
    Po co od razu ten sarkazm. Nie od razu po urodzeniu zostaje się mistrzem kodzenia i wielbicielem Linux/Unix.
    Ciężko się czegoś szuka, jak nie wiadomo jak to nazwać.
  • #5 11142350
    LordBlick
    VIP Zasłużony dla elektroda
    No cóż, liczyłem tylko na poczucie humoru, no offence...
    BTW. Nie mam emocjonalnego stosunku do preferowanego OS, po prosu zwyczajnie używam.
  • #6 11142436
    sebus_1985
    Poziom 11  
    Taki dzień:P, (za dużo sarkazmu jest tutaj niestety i zamiast być mocnym odsyła się do szukajki lub google, a czasami na prawdę nie wiadomo o co pytać, zwłaszcza jak się jest niewprawiony w programowaniu)
    Btw zrobiłem jak poradził kolega victoriii. Udało się, ale połowicznie. Próbuje rozkminić, co oznaczają poszczególne wpisy, ale zapytam się dopiero jak na nie będę sobie mógł poradzić.

    Edit:
    Rozwiązałem problem:
    victoriii napisał:
    Trzeba w ustawieniach projektu wybrać tak żeby bodajże linker generował plik *.map i tam będzie wielkość programu.

    Dzięki, to pomogło mi zobaczyć zajętość kodu.
    Można to zrobić również tak:
    w ustawieniach projektu w post-build można dopisać
    find "requirement" $(OutputPath)\$(TargetSName).MAP

    Pozwoli to na wyświetlanie fragmentu pliku map z zajętością kodu w konsoli STVD.
    Poszczególne wpisy są opisane w datasheet-cie od cosmica (strona 295)
    Folder_instalacji\COSMIC\CXSTM8_32K\Docs\CXSTM8_UsersGuide.pdf

    Żeby zmniejszyć zajętość kodu (głównie okrojenie standardowych bibliotek) należy użyć parametr +split w optymalizacji. Kompilator wtedy nie dorzuca nieużywanych funkcji. Pozwala to na znaczne zmniejszenie kodu.
REKLAMA