Zakładka Memory jest trochę lewa... Najlepiej zrób to za pomocą OpenOCD i telnetu: komendy: mww address value (zapis) mdw address (odczyt) 4\/3!!
Wstęp Poradniki pomagające w tworzeniu oprogramowania na mikrokontrolery skupiają się głównie na wykorzystaniu peryferiów samego mikrokontrolera, co jest zrozumiałe, ale niestety rzadko skncentrują się na części programu, która wykonuje się przed funkcją main. Poniższy poradnik ma na celu przybliżenie tej części programu na podstawie GNU ARM toolchain...
To sprawdź, czy działa Ci z jakimś rejestrem którego na pewno nie użyłeś nigdzie w programie. Tylko że w przykładzie, którego pokazałem wyżej, jest obsługa przetwornika ADC, więc są użyte rejestry potrzebne do jego działania. Tak więc, dalej nie rozumiem dlaczego (at)Piotrus_999 podgląda sobie te rejestry ?
To i ja swoje dołoże... Zacząłem bawić się stm32 właśnie od poradnika Szczywronka. Pokazał jak to się robi na rejestrach. Biorę RM i robię co chcę. Tyle że trzeba było się przekonać do metody, bo też zaczynałem o HALa i nigdy nie wiedziałem za pomocą jakiej funkcji włączyć to czy owo. Na rejestrach mam prosto. Jest RM, są inne dokumenty. Wszystko można...
LPC spisuje się świetnie. Biblioteki do LPC niestety nie ma tak fajnej jak do STM32 i przez to troszkę bardziej trzeba się w rejestry zagłębiać. Działa normalnie z OpenOCD tylko troszkę plik konfiguracyjny od innego LPC17xx trzeba przerobić. Ja osobiście polecam LPCExpresso, ma od razu wbudowane rejestry procesora i szybko i fajnie działa. Również odpaliłem...
Dziękuję Ci za pomoc. Troche mnie to "ugotowało", bo sam chyba przez to nie przebrnę. A ten Atmel-ICE pod Atmel Studio genialnie chodzi. Ale teraz coś mnie na Linuksa tknęło. No i do tego w Code::Blocks. Tam ładnie działa mi xds100v2 na tych lpc2142, co do których mi w innym wątku pomogłeś. A że ten Code:Blocks mi sie praktycznie nie wiesza, no i ogólnie...
No coś nie działa do końca ok. podgląd rejestrów To musisz sobie dorzucić do źródeł pliki dostarczane razem z bibliotekami ST \STM32F10x_StdPeriph_Lib_V3.5.0\Project\... \STM32F10x_StdPeriph_Lib_V3.5.0\Project\... Wywołać...
GrzegorzKostka: nie używam debugera, zawsze piszę kod na żywca i wyrzucam komunikaty przez UART albo telnet. Ta funkcja po prostu nie zwraca poprawnych wartości, nie wiem, może błąd jest gdzieś wyżej. Może w tym przypadku faktycznie dobrze byłoby podejrzeć rejestry w pracy krokowej, ale JTAG + OpenOCD nigdy mi nie zadziałał tak jak trzeba w trybie debugu....
Wspomniałem jeszcze o bicie w SYSCFG - sprawdziłeś ;> ? tak sprawdziłem Co do OpenOCD - może głupie pytanie, ale uruchamiasz debugowanie (gdb)? Bo komunikat z OpenOCD jest ok - połączył się. heh aż wstyd się przyznać ale poklikałem chwilę i o dziwo zadziałał :) dam znać później co i jak bo znalazłem trop (chyba źle patrzyłem na model stm32F3 w dokumentacji)....
Cześć Wszystkim! Mam Eclipse w wersji Yagarto i AT91SAM7S256. Układ programuję przez SAM-BA. Niestety nie mogę uruchomić debugowania w Eclipse przez Wiggler'a. OpenOCD mam w wersji 2006re82, bo tylko taki znalazłem ze sterownikiem portu równoległego. Próbowałem kolejnych kroków z manuala Jima Lynch'a oraz ze strony kolegi Chopina ale bez końcowego rezultatu....
Postanowiłem bardziej dokładnie przeanalizować dokumentację rdzenia Cortex-M3 (na którym jest wykorzystywany przeze mnie uP STM32F107) – dokument „DDI0337G_cortex_m3_r2p0_trm.pdf... ze strony http://infocenter.arm.com/help/index.jsp Cortex-M3 TechnicalReference Manual. W dziale System Debug -> 11.5 DWT page 11-13 opisane są dokładnie...
Z drugiej jednak strony naprawdę nie widzę tej wielkiej komplikacji przed którą się tak bronisz. Ot wpisanie zer do dwóch czy trzech rejestrów aby zresetować ustawienia zegara, a zresetowanie wszystkich układów peryferyjnych w STM32 jest równie banalne - wpisać 0xffffffff do wszystkich rejestrów typu RCC->...RSTR, a następnie wpisać tam zero. Wiem że...
To mój pierwszy post na tym forum, więc WITAM wszystkich użytkowników. W tematyce ARM siedzę dopiero od kilku dni, więc mój problem może dla bardziej zaawansowanych wydawać się balnalny... ale do rzeczy. Zainstalowałem eclipse oraz wtyczki: -GDB Hardware Debugging -GNU ARM Eclipse Plugin -Zylin Embedded CTD -embsysregview oraz openOCD 5.0 Udało mi się...
Tym się nie przejmuj - przecież masz tam 200ms delaye [; Ale jak używasz soft_reset_halt to najpopularniejszym źródłem problemów jest to, że Twój układ sobie jednak przez chwilę chodzi i np. przestawia zegar rdzeni, tym samym np uniemożliwiając programowanie flasha... dlatego komenda soft_reset_halt to jest ostateczne zło, którego się należy wystrzegać...
to może powinieś spróbować, lukni na załącznik, większość kodu masz napisane, wszystkie rejestry zmapowane, coś Ci brakuje to sam możesz dodać, patrz ile czasu oszczędza, masz stos usb, stos tcp, do każdego procka luminary masz własnie takie API i one jest open source. Wszystkie funkcje dostępne, mnie np brakowało ustawinie przerwania od ilości bajtow...
Witam po dłuższym czasie... nie miałem za bardzo czasu, wczoraj dopiero siadłem do assemblera ARM - do tej pory nie wiedziałem nawet ile i jakie rejestry są dostępne w architekturze ARM :P :D - więc ze względu na to że w twoim projekcie pojawiają się pliki startup.s i vector.s, postanowiłem się wreszcie zapoznać z architekturą, miałem zamiar już na...
Nie wiem czy to w czymś pomoże, ale piszę sobie w Code::Block. Tam jest gotowa templatka do programowania ARM, wybieram olimex-lpc213x, potem wybieram lpc2138 (a mój mikrokontroler to lpc2142 - może to jest problem) i jest tam startup o nazwie vectors.S. oraz pliku: map.txt Oczywiście jest tam jeszcze lpc214x.h. Ten plik wziąłem ze strony Keila. Ma...
Płytka oryginalna Olimex LPC-P2378. "Przyciśnięcie" kwarcu nic nie pomogło, wylutowanie też nic nie zmieniło. Układ dzwonił :o i dodatkowo dalej się grzał (patrz p. 1 poniżej) Na chwile obecna: 1. Użyłem Flash Magica - ruszyło za pierwszym razem, procek zaprogramowany plikiem ze strony olimexu. Prawidłowo zaprogramowany układ się nie grzeje i nie dzwoni....
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
...Nie mogę znaleźć przeglądarki pdf-ów( pod win) która z lini poleceń otwiera dokument na konkretnej stronie. Może znasz coś takiego? Rozwiązałoby to całkowicie problem. Jeśli systemowa przeglądarka potrafi wyświetlić PDF-a(mój Firefox potrafi ;) ), to wystarczy wydać polecenie np. rundll32.exe url.dll,OpenURL http://www.atmel.com/dyn/resources/prod_...
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
Plik konfiguracji ustawia Ci prędkość adaptera. Przesuń "adapter_khz 1" do tego końcowego bloku -c "...". Czyli np. tak: sudo openocd -f /usr/local/share/openocd/scripts/interfa... -c "transport select swd;" -f /usr/local/share/openocd/scripts/target/... -c "reset_config srst_nogate connect_assert_srst; adapter_khz 1"...
1. Upewnij się, że OpenOCD ma skonfigurowane reset_config na "separate". 2. Upewnij się, że w komendach startowych dla GDB jest "monitor halt reset" 3. Poniżej tej komendy dodaj "monitor mww adres wartosc" (adres - adres rejestru MEMMAP, wartosc - wartość która ustawi "normalne" mapowanie pamięci). Zauważ, że po resecie włącza Ci się bootloader (pc...
Spróbuj może też debuggowania przez samo OpenOCD i telnet - sprawdź czy wszystkie typowe operacje (podgląd pamięci, instrukcji, rejestrów, step, halt, resume, reset, programowanie, ...) działają jak należy. 4\/3!!
Rejestry deklarowane przez program nie mają nić współnego z rejestrami mikrokontrolera , z resztą odczyt i zapis zawartości mikrokontrolera ich nie dotyczy , bo są fizycznie w pamięci ram której programator nie zapisuje . "Rejestr" nie oznacza tylko fizycznego rejestru rdzenia procesora czy peryferiala . Może to być jedna lub kilka komórek w pamięci...
Jesteśmy. Myślę, że mamy też leżące urządzenia zasilane „N”, więc jak tylko je podłączymy, powinniśmy być w stanie uzyskać coś podobnego. W międzyczasie planujemy użyć interfejsu API profilu BLE firmy Beken, aby uzyskać w pełni „przezroczysty UART” i dokonać inżynierii wstecznej wywołań niższego poziomu (zasadniczo ustawiając rejestry). Staramy się...
Nie widząc gdzie wpisać load posłużyłem się h-jtagiem. Właśnie-gdzie i jak wpisać ten load i czy z jakimiś parametrami? Zerknij do mojego tutoriala o ARM toolchain - na końcu jest o debuggowaniu i tam właśnie jest użyta ta komenda. Używasz jej tylko przy GDB (debugger). Można też wgrać bezpośrednio - odpalasz OpenOCD, odpalasz telnet i używasz komendy...
Odpowiedź na Twoje pytanie jest dosyć prosta - protokół SWD nie ma rozkazu zapisu do flash i tego się po prostu nie da tak zrobić jak zapisu do RAM. Oprogramowanie na PC, które się komunikuje przez SWD z układem (np. program do ST-Linka, OpenOCD) wgrywa do RAMu specjalną procedurę, która fizycznie realizuje zapis (poprzez odpowiednią sekwencje zapisów...
tak. Może w configu targeta openocd mam coś nie tak.
No a przez bootloader? Istnieje szansa, że w jakiś sposób się uszkodził rejestr podający ilość dostępnej pamięci flash - chyba wszystkie programy używają tego rejestru do poznania tego rozmiaru. W OpenOCD na pewno da się jednak wymusić rozmiar pamięci - wtedy program nie używa tego rejestru i programowanie powinno pójść. Chodzi o podanie rozmiaru pamięci...
Jak w ogóle uruchomić jakieś okno programowania? I jak to ustawić żeby programowało przez Wigglera? Jeśli chcesz spod Eclipse, to trzeba dodać odpowiednie wywołanie dla OpenOCD. Zerknij na moją stronę, w dziale download > JTAG-lock-pick jest taki plik "JTAG-lock-pick - ultra-krótka instrukcja" - w nim jest pod koniec napisane jak należy wywołać...
z mojej strony: warto byłoby polecić jeszcze instalację wtyczki Embsys RegView, podgląd rejestrów peryferyjnych może być przydatny
(at)miszcz310 A masz jakiś specjalny powód aby używać "na żywca" gdb zamiast po prostu użyć jakiegoś IDE gdzie po prostu to się wyświetli w dużo wygodniejszej formie. Szczerze to chyba nie. Poza takim, że tak sobie dawno temu ustawiłem i działało. Jakoś przywykłem do pisania w atomie lub vimie i tylko zmapowanymi klawiszami myk. Hmmm a mogę zapytać...
Muszą być oba napięcia. Pamiętaj też, że TMS470 mają rdzeń ustawiony na big-endian i nie można tego zmienić. BTW, widzę że ode mnie kupiłeś te układy. Może Ci trochę pomoże ta stronka: http://kred.wikidot.com/tms470-board - znajdziesz tam trochę rzeczy do których doszedłem jak się jeszcze tymi układami bawiłem. Jakiego kompilatora używasz? Jeśli GCC...
Kolego prawdopodobnie pomyłka jest przy przesuwaniu. Zwróciłeś uwagę na to co się najbardziej rzuca w oczy ? zm = (16>>rejestr); Obsługa przerwania jest, jakby to ująć, nie napisana. Moje pytanie dotyczy maski przerwań zewnętrznych. Rejestru WIU->MR. Pozdrawiam.
$ arm-none-eabi-objdump --demangle -S output/program.elf > output/program.lss i wrzuć ten plik tutaj. Byle to był firmware bez ŻADNYCH zmian względem tego co debuggowałeś wyżej, bo wtedy porównywanie wartości rejestrów jest bezcelowe. Dodatkowo w OpenOCD (przez `telnet localhost 4444`) wywołaj takie dwie komendy gdy jesteś w HF: mdw 0x200003fc 16 mdw...
Za dużo GDyBbania jest. Wszystko zależy od sposobu dostarczenia danych dla loadera. Są dwa sposoby jeden to ładowanie obszaru ramu danymi dla flash i uruchamianie funkcji i tak jest chyba w CW, drugi to załadowanie loadera do ramu, puszczenie go luzem i komunikacja z nim poprzez rejestry i tak może być w O²CD, ale tak jak powiedziałem na początku...
Jedynka nie jest tutaj problemem. Popatrz na to w ten sposób jak na preskaler. Jeśli wpiszesz do preskalera wartość x (np 5), to w rzeczywistości dzielisz sygnał zegarowy na x + 1 (czyli np 6). 0 -> 1, 1 -> 2, 2 -> 3, 3 -> 4, 4 -> 5, 5 -> 0 => całość trwa SZEŚĆ taktów dokładnie tak samo jest z timerem i rejestrami match / compare...
Dzięki za uwagę. Zauważyłem, że podczas debugowania niektóre rzeczy zostają (w innych odrębnych przypadkach). Jeśli używasz standardowych konfigów do OpenOCD, to dodaj do jego wywołania coś takiego: -c "reset_config trst_and_srst" Domyślnie OpenOCD zakłada, że JTAG nie ma pinów resetu i w przypadku Cortex-M3 resetuje go specjalnym rejestrem rdzenia....
nie wiem, gdyz nie uzywalem ARMow ATMELa [; niemniej jednak yagarto przy uploadzie przez OpenOCD i JTAGa na USB do prockow LPC2xxx definitywnie odczytuje plik elf. 4\/3!!
Chciałbym tu napisać kilka słów o problemach z poleceniem "halt" w OpenOCD z którymi sam walczyłem przez dni kilka. Używam procesora LH79520 (ARM720T) i za pomocą JTAG jest tam programowany zewnętrzny Flash - działa bez problemu. Natomiast próba wgrania softu i uruchomienia uparcie kończyła się komunikatem "halt time out", mimo wielu kombinacji z resetem,...
A jeżeli utworze projekt z HALem i nie usunę tej biblioteki i będę programować na rejestrach, to może mi się coś wgrać do mikrokontrolera co może mi potem przeszkadzać w czymś?
Mam problem z uruchomieniem Eclipse + usbscarab2 + stm32f103rbt6 (eval board od stm). Calosc robiona wg poradnika ze strony Freddiego. Czesc narzedziowa, tj openocd + jtag oparta na openocd w wersji 0.4.0, wywolany z argumentami: -f interface/usbscarab2.cfg -f target/stm32.cfg gdzie usbscarab2.cfg jest tresci: #interface interface ft2232 ft2232_device_desc...
Jeśli już zdecydowałeś o wyborze mikrokontrolera i jest to STR7 to nie mogę Ci pomóć( nie miałem z nimi styczności ale koledzy z działu 'mikrokontrolery' na pewno z nimi pracowali). Osobiście polecam rodzinę AT91SAM7 od ATMELa. Procesory przyjazne, odporne na pomyłki :), dużo materiałów( w tym sporo postów na 'mikrokontrolery'). W praktyce wygląda to...
Do flash nie zapisujesz przez komendy mww/mwh/mwb, tylko albo trzeba użyć funkcji np. "flash write_image ..." / "program ..." (wymaga to odpowiednio skonfigurowanego pliku opisującego Twoją płytkę dla OpenOCD), albo musisz się bawić ręcznie tak jakbyś chciał zrobić taki zapis bezpośrednio przez rejestry procesora (czyli żeby zapisać jeden bajt to musisz...
Cześć :) Mam takie pytanie, bo cokolwiek trudno znaleźć do uC STM32f373. Jestem na etapie ze udało mi się z sukcesem zintegrować eclipse+openOCD+toolchine. Programy debagują mi się odpowiednio, tak jak trzeba, tylko wiem ze istniej możliwość dodanie takiego plaginu który umożliwia monitorowanie rejestrów peryferyjnych. Ale niestety po instalacji nie...
Dzięki, dobrze wiedzieć, jak coś to zgłoszę się do Ciebie po najnowsze OpenOCD. Na razie spróbuje na tym starociu co mam - 0.6.1. Przeglądnąłem sekcję RCC. Znalazłem tam jakieś różnice w rejestrach do włączania zegarów dla poszczególnych peryferiów i ich resetowania. Co do samego ustawiania SYS_CLK nie znalazłem różnic, czyli wszystkie funkcje w projekcie...
U mnie jak dam -gddb3 to zaczyna niepokojąco wariować (np step in do funkcji foo1() powoduje chwilowe wejście do foo2(), by po jednym stepie przeskoczyć na odpowiednie miejsce). Miał ktoś podobnie ? Przy włączonej optymalizacji to zasadniczo (niestety) "normalne", ale przy -O0 nie powinno się tak dziać. (at)Freddie Chopin Czy jest jakaś ewolucja aby...
żeby była jasność bo może nie sprecyzowałem: nie szukam wynalazków typu visual studio... itp... bo to wszystko sprowadza się generalnie do straty czasu podczas konfiguracji oraz późniejszej pracy ... (chociaż coś czuje że bez tego sie chyba nie obejdzie) Dziwie sie w ogóle - że cały ten dramat pod postacią "mozliwości" instalacji OPENOCD, C/C++ SDK...
Dobra, to jeszcze jedno pytanie - w jaki sposób uruchamiasz program w RAM? Moje testy na szybko pokazują, że przez GDB nie da się tego zrobić "standardowo" (; Czy np. przestawiasz zworkę na układzie tak żeby bootował się z RAMu czy może używasz jakichś specjalnych komend podczas inicjalizacji debuggera żeby wymusić pracę z RAM? Gdy uruchomię debuggowanie...
rejestry atmega8 atmega128 rejestry mcp23017 rejestry
fabia diody schemat zacisk hamulcowy cyfrowy skaner
problemy diagbox bateria niteo
Amortyzator 80N 132255333 w pralce Electrolux - smarowanie Odpowietrzanie układu chłodzenia Opel Corsa D 2012 LPG