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

Atmega 2561 Bascom : podgląd RAM via JTAG - potrzebne oprogramowanie

sundayman 05 Sty 2020 04:33 672 8
REKLAMA
  • #1 18381714
    sundayman
    Poziom 26  
    Mam problem z prawidłowymi deklaracjami stosów pamięci.
    Żeby obliczyć zapotrzebowanie próbowałem zastosować rozwiązanie z $HWCHECK opisane w helpie, ale niestety nie działa prawidłowa na M2561 - zmienna _hw_lowest jest stale równa zero...

    Być może pomogła by obserwacja zawartości RAM podczas pracy programu co jakiś czas. Chyba najlepiej byłoby użyć do tego JTAG.

    Jest jednak podstawowy problem - czy jest jakieś niedrogie lub darmowe oprogramowanie umożliwiające taki podgląd. Od strony sprzętowej mam interfejs USB Blaster rev. C - działało mi to z TOPJtag ( http://www.topjtag.com/ ).
    Niestety ten program umożliwia podgląd pinów - ale pamięci już nie o ile pamiętam.

    Alternatywnie mogę co jakiś czas robić programowo zrzut RAM przez RS232, ale to rozwiązanie mniej mi się podoba...

    Ktoś zna software, które może się nadać do tego celu (windows) ?
  • REKLAMA
  • #2 18381733
    ZbeeGin
    Poziom 39  
    Aby obliczyć prawidłowe wartości stosów wystarczy znać swój program, zwłaszcza to co ze stosów korzysta najwięcej.

    - Ile jest przerwań i jak mogą się wywoływać wzajemnie. Każde przerwanie może odłożyć na stos prawie 40 bajtów w prologu.
    - Ile mamy wywołań podprogramów przez GOSUB. Ile mamy wywołań wbudowanych funkcji i czy korzystają z operacji na zmiennych typu Single/Double.
    - Ile jest procedur (SUB) i funkcji (FUNCTION), jakie mają parametry i jakie zmienne lokalne, oraz również czy nie wywołują się nawzajem. Każde wywołanie to adres powrotny na stosie HW, a każdy parametr i zmienna lokalna to określona ilość pamięci zajętej na stercie (FRAME STACK).

    Szerszy artykuł po polsku: https://kaktusa.pl/obliczamy-zapotrzebowanie-sram/
  • REKLAMA
  • #3 18381747
    sundayman
    Poziom 26  
    Cytat:
    znać swój program


    Znam ten artykuł i ogólne zasady ale program obecnie ma prawie 20.000 linii kodu i tego rodzaju zabawy już dawno przestały być wykonalne.

    Niestety w grę wchodzi tylko obserwacja faktycznego użycia czy to przez podgląd pamięci czy wskaźników ale jak pisałem $hwcheck nie działa...
  • Pomocny post
    #4 18382158
    tmf
    VIP Zasłużony dla elektroda
    sundayman napisał:
    Jest jednak podstawowy problem - czy jest jakieś niedrogie lub darmowe oprogramowanie umożliwiające taki podgląd. Od strony sprzętowej mam interfejs USB Blaster rev. C - działało mi to z TOPJtag ( http://www.topjtag.com/ ).

    Możesz użyć narzędzi typu Atmel ICE lub Snap w połączeniu z Atmel Studio. Wtedy robisz attach to target i możesz sobie wygodnie podglądać to co robi procesor. Będziesz miał oczywiście, jeśli chodzi o podgląd programu tylko asembler, ale za to będziesz miał też do dyspozycji widok pamięci + rejestry, w tym stos. Chyba nic więcej nie znajdziesz. Oczywiście zawsze można to połączyć z softwarowymi rozwiązaniami, ale to trzeba jeszcze znać sposób w jaki Bascom zarządza pamięcią.
  • Pomocny post
    #5 18382182
    ZbeeGin
    Poziom 39  
    Jest dokument - opracowany jednak nie przez MCS Electronics, ale tam hostowany - jak z poziomu AVR Studio wykorzystać JTAG-a do debugowania programu stworzonego w BASCOM AVR. Nawet z widokiem źródła.
    https://www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=255&Itemid=54

    Czy to będzie dalej działać na takiej samej zasadzie w Atmel Studio to już musi się wypowiedzieć ktoś, kto go częściej używa...
  • REKLAMA
  • #6 18384153
    sundayman
    Poziom 26  
    Cytat:
    ędziesz miał też do dyspozycji widok pamięci + rejestry, w tym stos. Chyba nic więcej nie znajdziesz


    I nic więcej mi nie trzeba, bo żadnego stricte debugowania kodu nie potrzebuję.
    Chciałbym tylko móc zobaczyć co się w tej pamięci dzieje - to powinno wystarczyć.
    Nie wiedziałem właśnie czy Atmel ICE można użyć w taki sposób - bez posiadania całego projektu zrobionego w Atmel Studio. Nie mam co prawda ICE, ale to się da załatwić bo na pewno mi się przyda jeszcze.

    ZbeeGin - Nie znam tego - przyjrzę się. Na pierwszy rzut oka wygląda ciekawie.

    Ale mam pytanie do samego ICE - bo nie znam.
    Używam AVR dragon głównie oraz USBAsp. I jeszcze jakiś AVR PRO bodajże.

    Jak to jest z tymi wersjami : Atmel ICE, JTAG ICE, JTAGICE mk2 ?
    Które jest do czego ? Albo może - któryś jest lepszy, bardziej "uniwersalny" ? Co kupić ?

    Programuję głównie "duże" atmegi : 128, 2561
  • REKLAMA
  • #7 18384279
    ZbeeGin
    Poziom 39  
    Osobiście używam - jeśli już mam okazję - Atmel-ICE Basic (Wcześniej JTAGICE3), ale w połączeniu z AS7. Nie jestem w stanie powiedzieć czy avrduda już go obsługuje.
  • #8 18384446
    tmf
    VIP Zasłużony dla elektroda
    sundayman napisał:
    Używam AVR dragon głównie oraz USBAsp. I jeszcze jakiś AVR PRO bodajże.

    Jeśli masz AVR Dragon, to nic więcej nie potrzebujesz. Tak samo w AS możesz zrobić Attach to target.
    sundayman napisał:
    Jak to jest z tymi wersjami : Atmel ICE, JTAG ICE, JTAGICE mk2 ?
    Które jest do czego ? Albo może - któryś jest lepszy, bardziej "uniwersalny" ? Co kupić ?

    JTAG ICE to najstarszy programator z wymienionych - nieobsługiwany przez AS7 i sam obsługuje tylko kilka ATMeg. JTAG Mk2 to nowsza wersja, droga. Atmel ICE to miał być budżetowy programator, niestety też nie jest tani (w porównaniu do konkurencji). Zalety to obsługa wszystkich procesorów AVR, a także ARM ze stajni Microchipa. Jest jeszcze najnowszy - Snap. Tani, prosty, obsługa też PICów, ale jako, że to nowość to trochę kuleje.
  • #9 18386811
    sundayman
    Poziom 26  
    Cytat:
    w AS możesz zrobić Attach to target


    No więc oczywiście mam problem. AS (wersja 6) się z dragonem widzi.
    JTAG działa - można sobie odczytać np. fusy czy programować.
    Ale "attach to target" nie jest aktywne.

    Jakaś podpowiedź ?

    edit :

    próbowałem także z AS7 i nie udało mi się - attach to target nie działa.
    Albo ja nie wiem jak to zrobić po prostu.

    Zrobiłem więc w programie zrzut RAM na życzenie do RS232 no i jakoś z tym mi się udało rozwiązać sprawę, ale generalnie ten pogląd via JTAG dobrze by było mieć opanowany.
REKLAMA