Witam, ktoś może mi podpowiedzieć jak podczas debugowania łatwo podejrzeć wartość rejestrów? Usiłuje zainicjować LCD na kontrolerze SSD2119 po SPI (3wire). Coś mi nie idzie i nie wiem gdzie robię błąd... pozdrawiam
Witam Koleżanki i Kolegów Mam przyjemność zaprezentować Wam testową wersję 'edytora rejestrów' dla mikrokontrolerów/procesorów współpracujących z OpenOCD. Główne zadanie tej aplikacji to dać użytkownikowi szybki/bezpośredni dostęp do rejestrów, wyświetlić ich zawartość w przejrzystej formie i umożliwić ich edytowanie. Ma to na celu ekstremalne wygięcie...
zmienilem adres w linkerze ale teraz jakis inny błąd wyskakuje: C:\>openocd -f interface/jtagkey.cfg -f target/at91sam7sx.cfg -c "jtag_khz 1000" -c "init" -c "reset halt" -c "flash probe 0" -c "reset halt" -c "flash write_im age erase C:\AT91SAM7S256_inc.hex" -c "reset run"...
Witam, Stawiam na nowej maszynie środowisko eclipsa do ARMów. JTAG od freddiego. Po uruchomieniu debugowania nie jest ustawiany rejestr MEMMAP. Open On-Chip Debugger 0.8.0 (2014-04-28-08:39) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... Info : only one transport option; autoselect...
Znalazłem patcha i obecnie działa mi swd i mam wersję Open On-Chip Debugger 0.7.0-dev-00106-gb7ea4a6-dirty. Przy czym na chwilę obecną wypluwa mi errory że dgb chce się dostać do nie istniejącego rejestru. errory code syntax LordBlick //------------------ Rozwiązanie: Po wielu kombinacjach dopiero na wersji OpenOcd 0.6.0-dev poszło bez problemów. Próbowałem...
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...
Moje obawy budzą wpisy Warning oraz ten: Spokojnie (; Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787 (<unknown>), part: 0xf0f0, ver: 0x3) <unknown> tutaj znaczy tylko tyle, że OpenOCD nie wie jak przyporządkować 0x787 do jakiegoś producenta, co znaczy ni mniej, ni więcej tyle, że komuś się (jeszcze) nie chciało...
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...
Nie bardzo chce instalowac Atolic Studio bo juz przygotowane mam wszystko pod Eclipsem (Eclips+toolchain arm-none-eabi + OpenOCD + skrypt likera/makefile/) Z tego co widze to GNU MCU Eclipse żeby zainstalować wtyczke do podglądu rejestów trzeba poinstalować wszystkie wtyczki (zależności) czyli cały toolchain z konfiguracją projektową. ------- Ostatecznie...
Dziwne że tamte programy nie działają. Ale to już nie Twój problem :) Co do weryfikacji to widziałem 'posty motywacyjne' do dodania tej opcji do 'oocd' ale nie wiem czy coś idzie w kierunku implementacji. A poza 'oocd' to trochę kłopotliwe. Można by było wykorzystać komendę z 'oocd': dump_binary <file> <address> <size> Dump target...
Witam, Chciałbym uzyskać następujący efekt: Wyświetlać na GPIO8 stan GPIO6. Porty GPIO6 i GPIO8 są ustawione. Do GPIO6 podłączone są SW a do GPIO8 diody. Obsługa GPIO6 ma odbywać się przez przerwanie typu wektoryzowane IRQ. Ja ustawiam przerwanie Vic1.9. Chciałbym w obsłudze przerwania czytać WIU->PR i według tego reagować (wywoływać dalszy kod)...
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....
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, Mam problem z debugowanie procesora LPC2478. Środowisko: postawione zgodnie z tutorialem ze strony Freddiego Chopinna czyli Eclipse (helios edition with HDT hardware debugging) + OpenOcd + Code Sourcery Lite edition Procesor: ARM NXP LPC2478 z kwarcem 12MHz Aplikacja: Na tym etapie mrugająca diodka na timeocie opartym o przerwanie timer0, PLL...
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,...
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ę...
Uważam, że nie trudno jest znaleźć ISE dla amatora ;) (szukaj w stronę Sonsivri ;) ), poza tym któregoś ISE Xilinx'a chyba można ściągnąć za free (chyba wspomniany Webpack) i obsługuje on na pewno rodzinę XC9500 (w iMPACT). -- dodano -- Właśnie sprawdziłem, za free rejestrację (akurat jestem już zarejestrowany ;) ) można otrzymać licencję do "ISE Design...
odhaczyłem reset i halt i wpisałem monitor reset halt monitor reset init Wystarczy tylko to drugie i zaznaczyłem, żeby sam ładował obraz (pewnie tutaj nie powinien tego robić) i symbole potem break point at main i zahaczyłem Resume. Jak będziesz mieć nowe Eclipse i nową wtyczkę GDB to nie ma siły aby te konfiguracje nie były widoczne - wtedy zobaczysz...
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
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!!
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...
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!!
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...
Jeśli przed zatrzymaniem procka układ coś tam jeszcze zrobił (co jest dosyć popularnym problemem), to po zaprogramowaniu faktycznie może nie działać opcja "resume" i jest to całkowicie naturalne - to tak jakbyś uruchomił program, zatrzymał go w losowym momencie, zmienił program na inny i odblokował rdzeń, który zacznie pracę od tego miejsca gdzie skończył...
hehe :) dzieki zrobilem tak: //Licznik zlicza impulsy co .... impulsów zegara T0PR = 59; //351300Hz //Gdy warunek spelniony zeruj Timer i zglaszaj przerwanie T0MCR |= T0MCR_Interrupt_on_MR0 | T0MCR_Reset_on_MR0; //Przeladowanie licznika co.. T0MR0 = 100; i działa :) mam w związku z tym parę niejasności 1. wyjaśnienie- karkołomny sposób obliczania bo...
Twój układ ma jakieś zworki do wybierania z której pamięci ma działać? Bo gdy ładujesz program do flash, to wartość PC sugeruje, że całość chce działać z RAM, więc faktycznie jest problem. Do tego program dla RAM masz skompilowany dla adresów od 0, natomiast program dla Flash od 0x100000, ale to akurat jest mało istotne jeśli poprawnie konfigurujesz...
Pobierz z mojej strony przykład dla LPC2103 i przerób go dla Twojego układu: - w skrypcie linkera ustaw prawidłowe adresy i rozmiary pamięci - w startupie nic nie musisz zmieniać - w tablicy wektorów nic nie musisz zmieniać jeśli nie korzystasz z przerwań, jeśli z nich korzystasz poprzez układ AIC, to musisz upewnić się, że offset do rejestru podającego...
Trochę odgrzebuję temat, ale chciałbym uporządkować swoją wiedzę na temat programowania ARMów. Dotychczas programowałem w WinARMie, ale całe programowanie polegało na kompilacji i wgraniu programu do Flasha procka. Natomiast czy są dostępne środowiska, umożliwiające debagowanie (pracę krokową, podgląd rejestrów itp.) oraz symulację procka? Chodzi o...
W przypadku LPC po resecie domyślnie jest włączony remap pamięci na wektory bootloadera. Po "monitor reset halt" dopisz "monitor mww adres wartosc", przy czym adres to będzie adres rejestru odpowiedzialnego za remap pamięci (MEMMAP chyba), a wartosc uzupełnij tak aby włączyć normalny "stan" pamięci - bez remapu. Możesz też poeksperymentować z innym...
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ć...
z mojej strony: warto byłoby polecić jeszcze instalację wtyczki Embsys RegView, podgląd rejestrów peryferyjnych może być przydatny
Zastosowałem się do twoich uwag, pusta funkcja main się kompiluje. Problem pojawił się, gdy chcę zaimportować definicje adresów rejestrów. Rozwiązałem go przez zakomentowanie miejsc, na które "krzywo patrzył" eclipse. Efektem jest działający kod wynikowy :) Dzięki ;) Teraz rozgryzam te przerwania. Chcę żeby SysTick zapalił mi diodę LED, a nie zapala...
Próbowałem obie opcje GDB i w obu przypadkach to samo. No to zrób tak żeby się nie wywoływał Było by to dużo łatwiejsze, jak bym wiedział jaka jest tego przyczyna. Taki sam plik binarny na CooCoxie debugował się bez problemu i nie wchodził najpierw w HardFault. Dlatego mam wrażenie, że to może być coś z OpenOCD. Tym bardziej, że już wcześniej miałem...
Jak wrócę z pracy wieczorem to dam znać dokładnie ale z tego co pamiętam: coś nt. "gdb tried to access nonexisting register" albo coś w tym stylu. Generalnie coś nt. nieistniejacych rejestrów na pewno, nie pamiętam czy nie coś jeszcze. I na pewno m0plus. Próbowałem też ostatnim buildem BET, również bez efektu, tzn. ta sama wtopa co wcześniej. Google...
Sprawdź w pliku .lss czy adres Twojej funkcji obsługi przerwania znajduje się we właściwym miejscu tablicy wektorów. Przy okazji dla STM32F1x należy funkcję obsługi przerwania deklarować w ten sposób: void EXTI3_IRQHandler(void) __attribute__ ((interrupt)); void EXTI3_IRQHandler(void) { ... Ewentualnie należy ustawić bit STKALIGN w stosownym rejestrze:...
Widzę że dosyć cich. dorzucam jeszcze skrypt linkera i startup. nawet mam brakepointa w void Reset_Handler(void) i w niego nie wchodzi. ale na brakepointa w Default_Handler reaguje. Zanaczam że jak wgram program na mikrokontlorer to działa bez zarzutu... [syntax=c]/* Procedura startowa dla STM32 connectivity line devices */ /* NastÄ™pujÄ…ce...
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...
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ś?
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"...
Dzień dobry, Kiedyś sobie dłubałem z stm32f103 (bluepill). Wtedy udało mi się (na podstawie ukradzionego skądś projektu i Makefile'a) zrobić sobie taki folder szablon i wszystko fajnie działało. Jednak teraz nie mogę w gdb wyświetlić zawartośi rejestrów peryferiów. Kiedyś wystarczyło napisać: p/x GPIOB->ODR i wyświetlał wszystko ładnie. Teraz dostaję:...
A żebym ja to wiedział :). Miałem coś takiego: monitor reset halt monitor sleep 100 load break main Może to jawne połączenie do OpenOCD coś zmienia, niewiem. W każdym bądź razie twoja inicjalizacja działa :).
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...
W takim razie oto log, bo znów nie zadziałało, ciągle timeout: Open On-Chip Debugger 0.5.0 (2011-08-09-23:21) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge... Warn : Adapter driver 'parport' did not declare which transports it allows; assuming legacy JTAG-only Info : only one transport...
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...
próbuję skonfigurować mój interfejs jtag (boff bf30 na ft2232) do mojego urządzenia at91sam9g45 . Musiałem zrobić niestandardowy kabelek, gdyż na urządzeniu 20złącze jest dla rastra 2mm. Poniżej zamieszczam output z openocd oraz mój konfig - widać, że coś jest nie tak. Myślałem, ze to wina kabla, ale przecież jtag wykrywa urządzenia (Info : JTAG tap:...
Moduły zasilaczy warsztatowych, takie jak DPS5005, dostępne są od dłuższego czasum.in. na AliExpress. Doczekały się wielu recenzji, w większości pozytywnych. Jednakże często wskazywanym problemem z tymi modułami jest kiepskiej jakości oprogramowanie – interfejs użytkownika pozostawia wiele do życzenia, jeśli chodzi o czytelność etc. Innym problemem...
DIY jest tak naprawde potrzebny jak chcesz miec 100% kontole nad toolchainem - a tego poczatkiujacy i 99.99% zaawansowanych nie potrzebują. What? Znakomita większość ludzi których znam używają Eclipse + Openocd. Nie wiem skąd te liczby wyciągnąłeś. To samo dotyczy HAL-a Cuba itp. Edukacyjnie dobrze jest pokatować rejestry. W duzym projekcie (jezeli...
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...
mam takie pytanko, ktore chyba jest bardziej życzeniem, no ale moze... otoz jak wiadomo, przez gdb mozna sobie grzecznie debuggowac rdzenie ARM w eclipse (jak i AVRy, kwestia ta sama), tyle ze w ogole nie istnieje tam cos takiego jak podglad rejestrow (taki jak w komercyjnych srodowiskach), nie mozna tez ustawic podgladu konkretnego adresu, w ktorym...
Zatwardziały windziarz (kilka latek), też przeszedł na Linux'a i to już definitywnie nie ma odwrotu, to jest jak narkotyk :D Nie ma lepszej platformy do developing'u, hardware czy software. 1. IDE Mam jedno środowisko, ale do wszystkiego. Jest to Eclipse Classic (obecnie Indigo) z masą pluginów. IDE strasznie intuicyjne i podatne na modyfikacje. Nic...
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....
Witam, mam problem z debugowaniem procka LPC1788. Otóż program sam w sobie działa poprawnie po wgraniu do flash za pomocą OpenOCD. Jednak z debugowaniem sprawa przedstawia się następująco: - jeśli dany program był wcześniej uruchomiony na procku, to po uruchomieniu debuggera ResetISR() wykonuje się prawidłowo i program działa, można sobie steppować...
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 Cortex-M3 TechnicalReference Manual. W dziale System Debug -> 11.5 DWT page 11-13 opisane są dokładnie wszystkie rejestry modułu odpowiedzialnego...
Po zmianie: Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge... 5 kHz jtag_nsrst_delay: 200 jtag_ntrst_delay: 200 RCLK - adaptive trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain Info : RCLK (adaptive...
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: - znajdziesz tam trochę rzeczy do których doszedłem jak się jeszcze tymi układami bawiłem. Jakiego kompilatora używasz? Jeśli GCC to nie wszystkie toolchainy wspierają...
Witam Zgodnie z poradami ze .text .global _start _start: (at) Label, not really required mov r0, #5 (at) Load register r0 with the value 5 mov r1, #4 (at) Load register r1 with the value 4 add r2, r1, r0 (at) Add r0 and r1 and store in r2 stop: b stop (at) Infinite loop to stop execution Nastepnie kompilujemy: $ arm-none-eabi-as -mcpu=cortex-m3...
Bardzo często na forum pojawiają się pytania o wybór darmowego środowiska do STM32. Problemem jest tu programator ST-Link dołączany do niektórych płytek prototypowych (np. moja ST32 VL Discovery), a dla którego ciężko znaleźć wsparcie. Wyjątkiem jest tu TrueStudio które w "darmowej" wersji ogranicza nam możliwość podglądu rejestrów w czasie debugowania...
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...
Witam, Korzystam z płytki NUCLEO-L053R8, od 2 dni próbuję uruchomić segmentowy wyświetlacz LCD. Zauważyłem że nie uruchamia mi się przetwornica stepup w procesorze do generowania napięcia VLCD. Dopiero gdy krok po kroku przeklikałem inicjalizację to dostałem flagę gotowości przetwornicy. Dzisiaj objawił się taki problem: Wpisywanie wartości do rejestrów...
Według mnie super pomysł, zrób na youtube z "lektorem" i będzie ekstra! Wg mnie dobrze by było przejść przez środowisko np. eclipse, na szybko wytłumaczyć co to toolchain, gdb, openocd i jak konfigurować (przesiadając się z avrow to wszystko nowe). Później tworzenie projektów wg mnie dla SPL! - startup, tablica wektorów pliki linkera i inne tajemnicze...
Witam wszystkich forumowiczów. Nie chciałem zakładać kolejnego tematu, a problem może dotyczyć wszystkich zaczynających swoją przygodę z tą płytką dlatego też napisałem tutaj. Programuje na STM32F407Vgt od tygodnia, wliczając w to budowę środowiska(Eclipse + OpenOCD 0.7.0 + GNU ARM eabi). Działa ono bez zarzutów, da się kompilować, wgrywać oraz debugować...
Cześć. Posiadam płytkę 32L152CDISCOVERY ( 853882 ). Moja prośba jest taka aby ktoś obeznany z tymi kontrolerami powiedział co jest źle. Podejrzewam że zastosowałem złą sekwencję startową (nie włączyłem jakiego zegara czy czegoś nie zresetowałem). Od razu zaznaczam że nie ma wlutowanego zewnętrznego kwarcu i nie chce konfigurować zegara głównego, tylko...
gdzie w Atollicu błędy są widoczne dopiero po kompilacji. Nieprawda. Nieprawda, że nieprawda. Tak chciałbyś, żebyśmy polemizowali? A może jakiś przykład? U mnie to widać tak: W AC6 błędna etykieta jest podświetlona, w Atollicu nie jest. który z pominięciem debuggera ładuje wsad do uK A jak niby to robi bez debugera i OpenOCD albo innego gdbservera?...
Firma Efinix zaprezentowała trzy nowe definiowane programowo układy SoC oparte na architekturze RISC-V i zoptymalizowane pod kątem układów FPGA firmy Trion od T8 do T120. SoC oparte są na rdzeniu Charlesa Papona VexRiscv. VexRiscv to 32-bitowy procesor o architekturze RISC-V, wykorzystujący RISCV32I ISA z rozszerzeniami M i C, ma pięć etapów potoku...
Po kilku miesiącach przerwy chciałem wrócić do programowania mojej płytki Discovery z układem STM32F407. Mam napisanych kilka wersji programu do zwykłego migania diodą, programy się kompilują i wgrywam jej przy pomocy AC6 System Workbench oraz STM32 ST-Link Utility. Programator mam widoczny w menadżerze urządzeń jako STMicroelectronics STLink Virtual...
plan sytuacji: bawie sie zestawem ZL9ARM + ZL10ARM z BTC - jest to procek LPC2148. do niego podpinam JTAGa na USB, ktorego dzis sam zmontowalem - bazujac na Turtelizerze 2. opis problemu: problem polega na tym, ze czasem JTAG nie potrafi zatrzymac rdzenia procesora. Dzieje sie to tylko przy uruchamianiu serwera openocd - czasem zglasza on blad: Timed...
wsparcie bedzie pelne, jak bedzie to w pelni obslugiwane przez calego darmowego toolchaina, a nie tylko kompilator, potrzeba jeszcze debuggerow, a do nich wsparcia ze strony OpenOCD i tak dalej. pozatym przez wsparcie rozumiem tez ilosc materialow dostepnych na dany temat w necie. 0x41 0x56 0x45!! OpenOCD już to obsługuje pod Eclipsem, dokumentacji...
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....
(at)mickpr Ale jakikolwiek symulator jest ;> GDB tez ma bledy, openocd nie wspiera wszystkiego itd. Pierwsze LPC tez mialy zwalona obsluge I/O ktora dzialala cholernie wolno itd. Jak juz pisalem zawsze jakis babol sie znajdzie. Sam toolchain to tez nie wszystko poklejenie czegos w sensowna calosc to tez troche pracy i nie mamy takiej wygody jak w komercyjnych...
Mam problem ze zdjęciem blokady odczytu pamięci FLASH z procesora STM32F439 zasilanego z przetwornicy. Przy czym nie wiem czy to ma znaczenie. Wcześniej w żadnym projekcie na STMie nie zasilałem procesora z przetwornicy (przynajmniej nie bezpośrednio, jak była przetwornica to na 5V a potem post regulator liniowy na 3.3V), jak i nie używałem blokady...
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...
Poza tym jeśli się wie co się pisze to debuger jest zbędny. Czasami lepiej wykorzystać UART DBGU i wysyłać sobie interesujące nas zmienne na terminal. Co to za podejscie ? Debugger to NIEZBEDNE narzedzie przy profesjonalnych produktach i nie raz uratowal mi tylek przy poprawkach bledow w nieswoim kodzie. Spotkalem sie z tym ze rozne debuggery roznie...
1. Zrobione. 2. No właśnie czytałem o tym bootloaderze i nie bardzo rozumiem. Chodzi o to że bootloader jest tam fabrycznie? Nawet w niezaprogramowanym procu? Wiem tylko tyle, że na stronie 677 User Manuala do LPC2478 pisze że jest to pin P2.10. Więc podłączę go rezystorem 10k do VCC. 3. Nie bardzo wiedziałem co wpisać bo nijak nie działało więc podałem...
Witam Próbuje uruchomić działającą wcześniej płytkę z lpc2364. Na płytce jest jedna dioda podłączona do p1.18 i próbuje ją zapalić aby sprawdzić czy program się wgrywa. Napisałem prosty program (na 5 sposobów) zapalający diodę. Do kompilowania używałem: - CodeSourcery, projekt na bazie przykładu ze strony Freddiego dla lpc2103 (zmieniłem tylko port...
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...
Jakby nie patrzeć, Atollic ze swoim TrueStudio to tylko skonfigurowany do pracy Eclipse (; Dodając śmieszne ograniczenie w wersji lite(brak możliwości prostego tworzenia projektu C++ jak w C, nie tworzy .hex, ale chociaż .elf jest, obsługa tylko jednego JTAG'a) i zostawia na widoku, po złości takie smaczki jak FSR, czyli wygodnego podglądu rejestrów...
Pierwsza kwestia. Chodzi o to, że Cortex-M3 może zostać zresetowany "programowo" - jest specjalny rejestr który na to pozwala, jednak jest to właśnie reset samego rdzenia. Możliwy jest jeszcze jakby "drugi poziom" takiego "programowego" resetu - który resetuje też peryferia. Tak czy siak - OpenOCD domyślnie korzysta z tego co może, a ponieważ żaden...
Siedzę nad tematem juz kawałek czasu i usiłuję uruchomić program na STM32F205. Program jest taki: openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c "init; reset halt; flash write_image erase test.hex; reset run; shutdown" Program się ładuje elegancko jak po sznurku a piny 6 i 7 portu B milcza jak zaklęte (choć powinny, moim zdaniem,...
SimpleMAC ma możliwośc obsługi do 10 węzłów, Ja bym nie był taki pewny :) Panowie z EP napisali coś, o czym nie mają pojęcia. Każde urządzenie (każdy MCU) ma własny, unikalny numer (wykorzystywany w przykładowej aplikacji jako long address) - 8 Bajtów. Dodatkowo (w przykładowej aplikacji solar-system.c) adres tzw. krótki programiści ustalili na UINT16....
Problem polega na tym, że po padzie zasilania procek się zablokował na jakiekolwiek próby zapisu. Próbowałem wielu rzeczy, ale nic nie pomogło. Procesora nie da się zaprogramować. Próby zmiany "Option bytes" poprzez st-link utility kończą się tak: 15:29:23 : Could not set Option bytes! Please reset the target and retry. Procesor komunikuje...
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...
(at)jaskol Dlatego warto olac gotowe IDE :) wez sobie sciagnij czyste Eclipse dla C/C++ jakis tolchain + plugin do Eclipse i tyle. Ja tak uzywam i wszystko smiga bez najmniejszych problemow. Nie wiem po co tyle kombinacji z jakimis gotowcami, do tego do F4 wybierz tolchain ktory wspiera FPU :) Jak czegos brakuje w takiej konfiguracji to dociaga sie...
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...
W dziale mikrokontrolery ARM znajdziecie bezpłatny (do osobistego użytku edukacyjnego) poradnik STM32 przygotowany przez szczywronek . Materiał dostępny jest w temacie: techekspert: Do kogo kierowany jest poradnik, jakie podstawy powinien mieć opanowane czytelnik? Czy znajomość określonej rodziny mikrokontrolerów ułatwi korzystanie z poradnika? szczywronek:...
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...
Blue Draco: 1. Debugger twierdzi, że jestem we flashu. Programu do RAM-u nie ładuję. Nie wiem dlaczego wyświetl mi w oknie OpenOCD adres z RAM-u. 2. Wpisywanie wartości domyślnych na pewno nie zaszkodzi. Widziałem już takie kwiatki, że rejestr jest po resecie inny niż deklarowany przez producenta (co prawda nieczęsto, ale nawyk mi pozostał). 3. memset...
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...
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...
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...
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ę...
Oczywiście nikomu nie polecam programowania przez RSa. Jak możecie to programujcie przez JTAGa. Co do wprowadzania procka w tryb programowania to w LPC nawet tego nie zauważysz. W AT91SAM7 jest to upierdliwa procedura. Co do utajniania programowania FLASHa w LPC to jest prawda. Nie wiedzieć czemu PHILIPS nie chce ujawnić rejestrów i sposobu bezpośredniego...
Witam. Mam do sprzedania 3 płyty ewaluacyjne dla mikrokontrolerów ARM SAM7S. Płyty są zgodne pinowo z mikromodułami MMsam7s firmy Propox wiec mozna w nich stosowac własnie te moduły. Ponadto jak ktos bedzie zainteresowany mam równiez własne moduły do tych płyt. Ułady ARM SAM7S posiadają: * 32-bitowy rdzeń ARM7TDMI * od 32 do 256kB programowanej w systemie...
Trochę to wszystko dziwne. Z tym stoperem to też nie tak, jak trzeba. Do testowania funkcjonalności najlepsze jest ręczne wklepywanie w rejestry i sprawdzanie ich. 'openocd + hyper_terminal' albo 'ocd commander'. Do sprawdzania rzeczywistych zegarów w układzie dobrze jest je wyprowadzić na zewnątrz. 'programable output clock controller'y-->PMC_PCKX...
Hej, mam problem z tytułowym mikrokontrolerem. Po wgraniu przez JTAG (CrossStudio "Build and Run") prostego programu zapalającego LEDy na płytce projektowej, wszystko działa. Jednak gdy zresetuje cały układ (poprzez przycisk reset, bądź odłączając zasilanie), przestaje działać. Debug pokazuje, że rejestr instrukcji (PC) wskazuje w inne miejsce, niż...
Witam Próbowałem załączyć pętlę PLL na ARMie. Nie chce mi się załączyć i nie przechodzi przez warunek sprawdzania w PLLSTAT (while( !( PLLSTAT & (1 << 26) ) );). Przeglądnąłem dokumentacje i przykładowe kody. Ale dalej nie działa :) Oscylator 12MHz Fcc0 288MHz Podzielniki N=1 M=12 (do rejestrów wpisuje wartości mniejsze o 1) Spodziewane CCLK...
Mam w zasadzie wie sprawy, ucząc się programować wspomniany w temacie procesor, pełen optymizmu i zapału, zabrałem się za rozgryzanie systemu przerwań. No i zaczęły się schody. Aha, przy nauce mocno wspomagam się książką p. Lucjana Bryndzy "LPC2000 - mikrokontrolery z rdzeniem ARM7". Ustawiając przerwania zacząłem od odpowiedniego przygotowania kontrolera...
No to lecimy dalej void vPortISRStartFirstTask( void ) { c34:e52db004 push{fp} ; (str fp, [sp, #-4]!) c38:e28db000 addfp, sp, #0 /* Simply start the scheduler. This is included here as it can only be called from ARM mode. */ #warning "Tu się wykłada" portRESTORE_CONTEXT(); c3c:e59f004c...
(at)skynet_2 na pewno da to radę zrobić w ten sposób. To wszystko zależy od zastosowania. Jeżeli ktoś ma wolny timer, to myślę że moja metoda jest najlepsza. Jeżeli ktoś nie ma, no to napisanie takiej funkcji to zadanie IMOH mało złożone. Do ciut większych opóźnień stosuje się np timer dedykowany systick. Troszkę czepiając się, to nie zawsze wiadomo...
Jedno mnie dziwi - nigdy nie miałem takich problemów. To, że timery czy inne peryferia sobie pracują, gdy rdzeń jest halt to nie powinno nikomu przeszkadzać, skoro stepowany rdzen w ogóle nie skacze pod wektory ISRów...? Gdy używam Ride7 to nie mam tego problemu, ale gdy przekroczyłem limit 32kB przesiadłem się na Eclipse+OpenOCD. No i niestety w trakcie...
Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ? Czasem może być jakiś problem sprzętowy/programowy/systemowy, który może spowodować wywalenie się debuggera, który będzie np. uparcie twierdził, że jesteśmy wciąż w jakiejś linii, choć mikrokontroler sobie wtedy...