tag:blogger.com,1999:blog-6085382734211687437.post5384138899056088755..comments2024-03-21T08:13:48.283+01:00Comments on Mikrokontrolery Jak zacząć - zbiór najczęściej udzielanych porad: JTAG, co to takiego i dlaczego warto używać?Unknownnoreply@blogger.comBlogger17125tag:blogger.com,1999:blog-6085382734211687437.post-16619768825603401242021-03-01T23:21:47.992+01:002021-03-01T23:21:47.992+01:00Wszedłem w tryb debugowania w atmel studio i ni ja...Wszedłem w tryb debugowania w atmel studio i ni jak nie wiem jak z niego wyjść koszmar. Procesor się nie programuje, bo ciągle jest w debug. Start without debugging też nie pomagaMarkohttps://www.blogger.com/profile/05844285239832450086noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-2027699876792041242016-05-28T20:15:11.604+02:002016-05-28T20:15:11.604+02:00Dziękuję za odpowiedź, zaraz spróbuję założyć tema...Dziękuję za odpowiedź, zaraz spróbuję założyć temat na elektrodzie. Breakpointy stawiam po rozpoczęciu sesji debugera. Próbowałem je postawić przed rozpoczęciem, ale wówczas po rozpoczęciu sesji również na breakpointach pojawia się ten komunikat. Próbowałem stawiać breakpointy na innych (mniej istotnych dla mnie liniach), za każdym razem to samo. Wcześniej napisałem, że nie ma problemu z postawieniem breakpointów w asemblerze. Zastanawiam się tylko jak to było rozwiązane w AVR Studio i we wcześniejszych wersjach Atmel Studio. Tam jeśli w jakiejś linii nie można było postawić breakpointa wystarczyło wyłączyć optymalizacje (-O0) i problem znikał.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-65016558016458908382016-05-28T14:16:56.956+02:002016-05-28T14:16:56.956+02:00Najlepiej załóż temat na elektrodzie, bo coś czuję...Najlepiej załóż temat na elektrodzie, bo coś czuję, że dojście do rozwiązania będzie wymagało większej ilości informacji. Breakpointy stawiasz przed rozpoczęciem sesji debugera? Może to być kwestia konfiguracji gcc, pamiętaj też, że nie w każdym miejscu kodu c da się breakpointa wstawić, ze względu na tłumaczenie kodu na asembler.tmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-3335871955581686322016-05-27T22:09:02.475+02:002016-05-27T22:09:02.475+02:00Cześć. Używam AS6.2.1563 SP2 i AS7.0.943, posiadam...Cześć. Używam AS6.2.1563 SP2 i AS7.0.943, posiadam również programator JTAGICE3 i płytę uruchomieniową ZL9AVR+ZL7AVR (ATmega128A) . Mam problem z ustawieniem breakpoint'ów w kodzie źródłowym w różnych projektach. Po włączeniu debugowania w symulatorze jak i z użyciem JTAGICE3 próba ustawienia breakpointa zawsze kończy się ! i komunikatem: "The breakpoint will not currently be hit. Unable to set requestet breakpoint on target. Note: The current selected device is unable to set breakpoint during runtime." Zmiana w symulatorze typu mikrokontrolera nic nie dała. Próbowałem zmieniać poziom optymalizacji na -O0 i poziom debugowania na -g3 - bez skutku. Próbowałem również ustawić poziom optymalizacji na -Og - również nic to nie dało. Zauważyłem, że mogę bez problemu ustawić breakpoint'y w kodzie asemblerowym. Poprzednio używałem AVR Studio 4.18 i nie miałem żadnych problemów z ustawianiem breakpoint'ów w kodzie źródłowym. Bardzo proszę o pomoc w rozwiązaniu tego problemu. Może jest jakieś nieznane mi rozwiązanie. Z góry dziękuję za pomoc.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-3869364522704805912015-06-30T20:18:59.853+02:002015-06-30T20:18:59.853+02:00Oczywiście miałem na myśli niczym nieobciążone wyj...Oczywiście miałem na myśli niczym nieobciążone wyjścia ;)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-61608747375523873012015-06-30T20:17:41.748+02:002015-06-30T20:17:41.748+02:00Bardzo dziękuję za odpowiedź. Faktycznie całe zami...Bardzo dziękuję za odpowiedź. Faktycznie całe zamieszanie było spowodowane tym, że wejścia sobie "wisiały". Zupełnie się nie spodziewałem, że niczym nienieobiążone mogą aż tak siać. Ale ze mnie osiołek :/ Pozdrawiam!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-62148968075465714802015-06-30T17:03:37.346+02:002015-06-30T17:03:37.346+02:00Jeśli zostawiasz niepodłączone piny wejściowe to z...Jeśli zostawiasz niepodłączone piny wejściowe to zbierają one śmieci. Wymuś na nich określony stan logiczny z problem zniknie. Druga sprawa to synchronizator na wejściu portu - żeby zobaczyć stan pinu sygnał musi przejść przez synchronizator, co zajmuje ok. 1,5 taktu zegara.tmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-30663959764392153472015-06-30T10:52:39.694+02:002015-06-30T10:52:39.694+02:00Cześć. Mam pytanie odnośnie odczytywania stanów I/...Cześć. Mam pytanie odnośnie odczytywania stanów I/O w trybie debugowania.<br />Korzystam z Atmel ICE i Atmel Studio v. 6.2, na płytce stykowej mam Atmegę32A z minimalnym podłączeniem pinów - nic więcej. Kiedy wchodzę w tryb debugowania i w oknie I/O view ręcznie ustawiam bit DDRA.0 a następnie PORTA.0, w rejestrze PINA pojawia mi się wartość 0x03. Czasem zdarzało mi się, że dostawałem wartość 0x07, jakby było zwarcie między pinami portu A. Oczywiście sprawdziłem to i nie ma to miejsca. Z resztą sytuacja ma się podobnie gdy zrobię taki eksperyment na porcie B. Próbowałem odświeżać widok przez "Refresh values" ale nie pomogło. Wystarczy, że wykonam 2-3 "nop'y" i w I/O view widzę faktyczny stan wyprowadzeń. Nie jestem w stanie sam znaleźć przyczyny a nie chce mi się wierzyć, że po prostu tak kulawo to działa... szczególnie, że wujek google na ten temat milczy.<br />Jest ktoś w stanie mi pomóc? Z góry dziękuję za podpowiedzi.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-52321106719680327742015-05-02T11:53:58.133+02:002015-05-02T11:53:58.133+02:00Niestety na razie nie ma takiego artykułu.Niestety na razie nie ma takiego artykułu.Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-66601184854221819272015-05-01T14:32:27.224+02:002015-05-01T14:32:27.224+02:00Czy jest gdzieś cykl o debugowaniu? Przeszukałem a...Czy jest gdzieś cykl o debugowaniu? Przeszukałem ale coś nie potrafię znaleźć.Wojteknoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-61767529275271478652015-03-13T17:14:45.221+01:002015-03-13T17:14:45.221+01:00Na około chyba zostało to wspomniane - przy okazji...Na około chyba zostało to wspomniane - przy okazji testowania połączeń elektrycznych. Tu też artykuł z EP: http://ep.com.pl/files/2277.pdftmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-87781904051206479392015-03-13T10:13:24.466+01:002015-03-13T10:13:24.466+01:00Brakuje mi tu wzmianki o boundary scanie :)Brakuje mi tu wzmianki o boundary scanie :)Gaskoinnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-87857557015496375642014-02-12T06:45:09.504+01:002014-02-12T06:45:09.504+01:00Dziękuję - poprawione :-)Dziękuję - poprawione :-)Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-17465392035365260422014-02-07T13:30:01.399+01:002014-02-07T13:30:01.399+01:00Literówka się wkradła
"Dzięki temu piszemy s...Literówka się wkradła <br />"Dzięki temu piszemy sobie wygodnie program, a „dużym” mikrokontrolerze,"Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-51593073519782507212014-01-21T19:09:15.921+01:002014-01-21T19:09:15.921+01:00Odpowiem od razu na dwa powyższe komentarze, bo są...Odpowiem od razu na dwa powyższe komentarze, bo są zbieżne. Oczywiście JTAG nie dotyczy tylko mikrokontrolerów Atmela, ani w ogóle mikrokontrolerów. Niemniej jesteśmy na blogu poświęconemu AVRom, stąd też w tym kontekście JTAG nas interesuje. Jeśli kolega chce się podzielić innymi zastosowaniami, czy wnikać w działanie JTAGa to Dondu zapewne chętnie opublikuje stosowny artykuł. <br />Jakkolwiek sam intefejs JTAG jest standardem, to niestety nie oznacza to, że programatory/debuggery Atmela z JTAG możemy wykorzystać z innymi układami, lub też inne interfejsy JTAG z mikrokontrolerami Atmela. W pierwszym przypadku przeszkodą jest fakt, że interfejsy te mają swoje mikrokontrolery i oprogramowanie realizujące z jednej strony połączenie z debuggowanym mikrokontrolerem, a z drugiej udostępniające zastrzeżone API dla programów typu Atmel Studio. Tak więc nie będą one "rozumiały" innych układów niż wspierane układy Atmela i nie będą się dały prosto połączyć z "obcym" frontendem na PC. Z drugiej strony inne JTAGi z mikrokontrolerami Atmela też nie do końca będą działać, bo co prawda sam JTAG jest standardowy, lecz każdy producent ma możliwość wprowadzania dodatkowych poleceń i zwykle z niej korzysta. W efekcie korzystając z "obcych" JTAGów nie uzyskamy pełnej funkcjonalności jaką mają oryginalne JTAGi Atmela. Zresztą dla innych producentów sytuacja jest podobna. No i też pojawia się problem frontendu, który musi znać układ z którym się łączymy, żeby zinterpretować uzyskane dane. W przeciwnym przypadku uzyskamy tylko nic nie mówiące ciągi bajtów.tmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-48891665684661880982014-01-20T23:05:40.697+01:002014-01-20T23:05:40.697+01:00Opis dość fajny, jednak na wstępie ująłbym ogólny ...Opis dość fajny, jednak na wstępie ująłbym ogólny opis JTAGa, a nie czym jest dla rodziny procesorów AVR. Dlaczego?<br /><br />1. JTAG to NIE jest standard Atmelowski, ale globalny standard używany w wielu innych rodzinach procesorów, układach FPGA i innych, niekoniecznie programowalnych układach. Daje to nam niesamowite możliwości debugowania całego wielkiego urządzenia zawierającego kilka(naście) układów za pomocą jednego interfejsu. <br />2. Opisałbym jak działa sam JTAG, jak wpływa on na piny mikrokontrolera, jego pamięć, dlaczego pozwala debugować, dlaczego JTAG może się nawet pojawić w układach nieprogramowalnych i do czego by wtedy służył i dlaczego łączenie kilku urządzeń w daisy chain JTAGiem jest i wadą i zaletą (prędkość magistrali jest ograniczona, im więcej mamy na niej urządzeń tym wolniej możemy odpytywać jedno konkretne, bo wszystko przechodzi przez wszystkie urządzenia). <br />3. Również przydałoby się nadmienić, że nie musimy wcale używać interfejsów JTAG (programator to chyba trochę zła nazwa, debugger też... to jest bardziej połączenie jednego i drugiego + dopchanie kilku rzeczy) firmy Atmel, możemy użyć również innych, bo każdy JTAG wygląda tak samo. Również te od Atmela możemy użyć z innymi układami.<br /><br />To są rzeczy, które dużo bardziej zachęcają do używania JTAGa.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-87977078789346507512014-01-20T22:59:26.011+01:002014-01-20T22:59:26.011+01:00Opis koncentruje się głównie na JTAG dla AVRów, co...Opis koncentruje się głównie na JTAG dla AVRów, co nie pokazuje wszystkich zalet interfejsu.Anonymousnoreply@blogger.com