Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATMEGA][C] - pseudoDebug przez RS232

hessuss 18 Lip 2012 12:08 1113 5
  • #1 18 Lip 2012 12:08
    hessuss
    Poziom 13  

    Witajcie.
    Od jakiegoś czasu bawię się Atmegami i czasem program idzie w krzaki, debug myślę by się przydał ale cena trochę straszy a te wynalazki z allegro które można kupić poniżej 100zł mają mieszane opinie. Chcę zrobić sobie pseudo debugowanie przez RS232 i podglądać co się dzieje w Procku na terminalu podłączonego Pecka.
    Wysłanie do terminala nazwy zmiennej i jej wartości w timerku to nie problem ale zastanawiam się:

    jak sprawdzić ilość wolnej pamięci w Procku??
    Ma ktoś na to jakiś pomysł? Jakaś komenda typu memfree :)


    Czasem mam po prostu wrażenie, że mi pamięci w Procku brakuje i dla tego się wiesza. Coś gdzieś źle napisze i mi pamięć wycieka.
    Pozdrawiam Tomasz.

    0 5
  • #2 18 Lip 2012 12:42
    McMonster
    Poziom 32  

    AVR Dragon jest w rozsądnej cenie, niecałe 250 zł i bardzo dużo potrafi. Na dłuższą metę chyba warto zainwestować.

    0
  • #3 18 Lip 2012 12:50
    tmf
    Moderator Mikrokontrolery Projektowanie

    Dragon to jedno, warto zainwestować. Wykrywanie przepełnienia pamięci to trudny problem. Generalnie, jeśli nie korzystasz z alokacji dynamicznej, to interesuje się wskaźnik stosu (SP). Jeśli schodzi za nisko, to świadczy to o braku pamięci.

    0
  • #4 18 Lip 2012 13:56
    LordBlick
    VIP Zasłużony dla elektroda

    McMonster napisał:
    AVR Dragon jest w rozsądnej cenie
    To niczego nie zmieni, starszy rdzeń nie zdebuguje inaczej niż przez RS.
    hessuss napisał:
    jak sprawdzić ilość wolnej pamięci w Procku??
    avr-size prawdę powie, jeśli chodzi o zajętość pamięci w kodzie, a wartość SP można sobie właśnie po RS wysyłać.

    0
  • #5 18 Lip 2012 14:52
    mirekk36
    Poziom 42  

    Generalnie debugowanie przy pomocy tak prostych rzeczy jak terminal, LCD czy nawet zwykły LED bywa bardzo proste i mało kosztowne ;)

    hessuss napisał:

    jak sprawdzić ilość wolnej pamięci w Procku??
    Ma ktoś na to jakiś pomysł? Jakaś komenda typu memfree :)


    Może nie ma ale przy starcie programu zapisujesz całą pamięć RAM od sekcji DATA (za zamiennymi globalnymi) do końca jakąś stała wartością (takim znacznikiem) .... a potem w dowolnym momencie programu sprawdzasz jedną funkcją ciągłość tego obszaru ;) ile jest jedna po drugiej tych wartości - wtedy będziesz wiedział czy np stos ci nie przejechał po zmiennych ;) Sprawdza się znakomicie, bardzo często wykorzystuję taki prosty monitorek stosu i szybko można dojść czy się gdzieś nie przesadziło w kodzie .

    Oczywiście jeśli nie korzystasz z dynamicznej alokacji pamięci.

    0
  • #6 24 Kwi 2014 21:29
    hessuss
    Poziom 13  

    Wszystko zgodnie z sugestiami kolegów, temat zamykam.

    0