daj "monitor reset halt" zamiast osobnych komend. Ale nie mam pojęcia czy to pomoże...
Aż niemożliwe, że tak ciężko jest zacząć z stm32 na rejestrach... To dość złożona architektura i potrzeba sporo rzeczy aby stworzyć działąjący program. Dziś mam dziń dobroci i zrobiłem Ci projekt. Dalej to już tylko problem Twoich programów. Nie można zwalać na środowisko.
Ostatnio przechodziłem "tą ciernistą drogę" kompilacja i poprawne wgranie pierwszego programu zajęło mi chyba 3 dni. Ale dałem radę sam (choć już miałem pytać na forum). Generalnie to dzięki szczywronek za poradnik! jesteś miszcz! A co do środowiska. Zaczynałem z pluginem i tam całe środowisko chodziło z tym że zaciągane są biblioteki a nie o to mi...
Ja mam tylko target remote localhost:3333 monitor reset halt lub target remote localhost:3333 monitor reset halt #load monitor flash write_image erase main.bin 0x08000000 bin load działa ale mam przypadek gdzie muszę użyć tego drugiego
Po pierwsze w Makefile musisz włączyć wsparcie dla C++ (chyba się to nazywało __USES_CXX albo jakoś tak - będzie komentarz). Po drugie dodaj sobie do projektu plik z funkcją _sbrk_r() - np. ściągając "syscalls" stąd - http://www.freddiechopin.info/pl/downloa...
do "cudownego" ide eclipse dla stm32. To nie wina IDE, ale osoby importującej (czyli Ciebie). Podam Ci najprostszą metodę: Zrób nowy projekt dla swojego procesora. Wywal wszystko oprócz pliku linkera. W eksploratorze windows Copy cały wszystko co jest w projekcie (najperw usuń pliki konfiguracyjne cocoxa czy czegos tam innego). Prawy klawisz myszki...
Albo w drugą stronę, jakieś pre-parsowanie Makefile, żeby wyciągnąć sobie z niego listę katalogów dla include ;) Dobra, chyba za dużo bym chciał :D Zobacz tutaj -> http://distortos.org/documentation/creat... > Project configuration > Indexer configuration Jedyne co faktycznie trzeba do Eclipse'a wpisać to niektóre flagi...
Użyj OpenOCD skompilowanego przeze mnie i wyłącz ten debug level 3, bo ja w sumie nie widzę co się dzieje... Tak w ogóle to nie wiem czy wiesz, ale OpenOCD wymaga innych sterowników do RLinka niż Ride - sterowniki te dołączone są do paczki z OpenOCD z mojej strony. 4\/3!!
Na mojej stronce jest też przykładowy projekt-szablon, właśnie dla STM32F4 (dla płytki discovery - tej pierwszej). Zawsze to jakiś punkt odniesienia. 4\/3!!
Witam RUN->Run/Debug Configurations->AC6 STM32 ... dla stworzonej konfiguracji zakładka Debugger Show generator options Reset mode: Software system reset https://obrazki.elektroda.pl/7593618200_... Pozdrawiam
Tymczasem ja mam najnowsze i działa jak trzeba [; Możesz też spróbować linaro - jest to chyba obecnie lepsza opcja niż CodeSourcery - www.linaro.org - downloads - na samym dole. 4\/3!!
opamp ale miałeś już napisane, że TrueStudio ruszy tylko z ST-Linkiem. Do wigglera to eclipse + openOCD
(at)gmp Wybierz wstępnie układ, który zrealizuje zadanie, a następnie zobacz erratę i oceń, czy to co tam jest nie zabija Twojego projektu. W przypadku STM32, errata zazwyczaj(!) nie zawiera nic groźnego. W przypadku SAM, errata to zazwyczaj długi zbiór niedziałających peryferiów lub funkcji. W przypadku PIC, errata to zazwyczaj drugi, właściwy datasheet,...
...zainstaluj gotowe środowsko np openstm (SW5, AC6 to po prostu inne nazwy). Nie, to nie są inne nazwy. AC6 - to jest firma, która tworzy to oprogramowanie na zlecenie ST Microelectronics. SW5 - a co to? SW4STM32 - to jest skrót od Software Workbench For STM32 i jest to nazwa środowiska (IDE) na bazie Eclipse, które jest dedykowane do mikrokontrolerów...
Cześć Widzie na forum że dużo osób korzysta z TrueStudio Lite. Więc sam jako początkujący w STM32 spróbuję. Na razie mam "Mikrokontrolery STM32 w praktyce" + ZL27arm + ZL14PROG + Atollic TrueSTUDIO. Pytanie do kolegów jak połączyć na początek? Spróbuj na początek tego: [url=http://www.coocox.org/]CooCox, będzie działać z Wigglerem (powinno). Osobiście...
Ale jeśli się zdecydujesz ja mogę Ci pomóc przy obróbce audio-wideo.
Koledzy, czy Wy naprawdę nie widzicie bezsensu tej sytuacji? Dokładnie! Zamiast się tak męczyć, autor tematu mógł sobie po prostu kupić gotowe urządzenie w najbliższej klimatyzowanej galerii handlowej, zamiast się tak męczyć próbując zrobić coś samemu... Bez obrazy, ale Twoje nachalne wciskanie w co drugim temacie Keila jest już męczące. Jak widać...
Powodem może być niepoprawna konfiguracja rejestrów sterownika. poza tym nie pokazałeś jak wygląda funkcja zapisu do ramu i ustawienia kursora. Ja używam takich funkcji: [syntax=c] typedef struct { vu16 REG; vu16 RAM; }LCD_TypeDef; #define LCD_BASE (0x6c000000) #define LCD (( LCD_TypeDef *) LCD_BASE) void LCD_WrReg(u8 reg, u16 data) { LCD->REG =...
Co dokładnie źle działa w Eclipse na Linuxie? Jeśli mowa o różnych aspektach wizualnych, to częściowo można sobie pomóc uruchamiając Eclipse z konsoli tak: $ SWT_GTK3=0 eclipse Tym sposobem wymuszasz użycie starszej (i mniej zabugowanej) implementacji SWT - wygląd programu staje się nieco toporny, ale trzeba przyznać, że sporo (większość) dziwnych problemów...
Ok, samo _sbrk() nie alokuje pamięci. Nie mniej jednak _sbrk() może mieć mechanizm sprawdzający ilość pamięci dostępnej dla sterty. W związku z tym dlaczego ten rozmiar musi być w moim przypadku (a może nie tylko w moim) większy od 0x20+0x9E4 i gdzie jest to napisane, że rozmiar pamięci dostępnej dla utworzenia sterty musi być większy od jakiejś wartości?
Część, używam Eclipse + ARM GNU toolchain, mam problem z biblioteką StemWin. Gdy dodaje odpowiednie opcje w ustawieniach tj. Preferences->C/C++ General-> Pahs and Symbols http://obrazki.elektroda.pl/4797044000_1... http://obrazki.elektroda.pl/7180796800_1... Przy takich ustawieniach próbuje zbudować projekt, lecz linker...
Ale zapewne chodziło ci o discovery... tu fakt widzę ze masz je wyłączone a włączyłeś "Biuld output parser" w zakładce preprocesor include paths. output parser to tylko połowa sukcesu, poniżej zresztą piszesz o drugiej połowie czyli compiler built-in settings. Więc indexer ma pozostać włączony? Przecież nie pisałem nigdzie żeby go wyłączać (; Są zależne...
Ustawiłeś odpowiednio piny BOOT0 i BOOT1? Po tym: target halted due to breakpoint, current mode: Handler HardFault xPSR: 0x20000003 pc: 0x20000004 msp: 0x20004fe0 wydaje mi się, że Twój układ próbuje wykonywać kod z RAMu. 4\/3!!
To może zacznijmy od początku. Od samych mikrokontrolerów. Nieco wybiórczo i subiektywnie. 1. MCS-51 - Wielu z nas rozpoczynało od tego w latach '80 ubiegłego wieku. Prosta konstrukcja, niewiele peryferii: GPIO, liczniki, UART. Programowanie praktycznie tylko w kodzie maszynowym, potem ewentualnie w języku C dzięki raczkującemu jeszcze SDCC. Firma Atmel...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
O popularności mikrokontrolerów STM32 wśród hobbystów i pasjonatów nikogo nie trzeba przekonywać. Firma ST taranem wbiła się w społeczność mikrokontrolerową rozdając płytki Discovery i Nucleo. Wraz z rosnącym zainteresowaniem STMami pojawiło się kilka (polskojęzycznych) książek oraz kursów/poradników na ich temat. Po co więc kolejny? Istniejące poradniki...
Moc obliczeniowa nadal bardzo mała, a przy falownikach, sterowaniu silników czy SMPS jest bardzo potrzebna. Ja od siebie dodam, że spotkałem sterowniki falowników w ciut nowocześniejszych trolejbusach (na silnikach asynchronicznych) działające w oparciu o klona C251. Czyli też nie jakiś demon prędkości (ale za to 16bit native) Jeśli nie bawimy się...
prawoklik na katalogu webserver -> properties => C/C++ Build -> odhacz exclude from build
Definicja tcp_timer_needed() jest w pliku tcp_impl.h, żródła w timers.c. Plik tcp_impl.h zaincludowany w tcp.c z resztą tu nic nie zmieniałem. Po dopisaniu #include "lwip/timers.c" program się kompiluje owszem i wszystko działa ale mam potem problem z kompilacją gdy chce dodać liczniki softowe pod freertos a to za sprawą includeowania pliku timers.h....
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
A z jakimś innym programem działa? Być może Eclipse źle się zainstalował. Też miałem z nim problem (jakkolwiek pod innym systemem), więc obchodzę się bez niego.
(at)Karaczan - to nie kwestia tworzenia średnio optymalnego kodu - bierzesz mbed, spl, hal do ARM i głupie miganie diodą jest w stanie zeżreć 1k RAM i FLASH ;) A jedziesz bezpośrednio na dokładnie tych i tylko tych rejestrach peryferiów, których w projekcie używasz i masz 10x mniej kodu. To kwestia inicjalizacji/konfiguracji wielu rzeczy, które Arduino...
W STM32 domyślnie podczas zatrzymania rdzenia timery pracują, więc podczas twojej pracy krokowej zgłaszane są setki kolejnych przerwań. Aby to zwalczyć należy w rejestrze DBGMCU->CR (w manualu DBGMCU_CR) zapalić stosowny bit dotyczący stosownego timera. Niestety nie zawsze jest to możliwe (bo aplikacja może wymagać aby timer naprawdę stale pracował...
PS. Jak załadować program za pomocą BootLoadera po RS232? Szukam i szukam w necie i nie widzę. Dokładnie to chodzi mi o to jakim programem. Program nazywa się Flash Magic http://www.flashmagictool.com/ Jak by jakiś pin był podłączony do GND a ja na nim bym wymuszał stan niski (a raczej próbował wymusić) i procesor by się palił to bym zrozumiał. Akurat...
Zapewne jest to nieco głupie pytanie, ale jak w Eclipsie dodać watchpoint na jakąś zmienną? Korzystam ze standardowego przykładu freddiego. Opcja Run->Toggle Watchpoint jest "wyszarzona".
Spróbuj programować płytkę trzymając przycisk reset.
Jeśli tak to robisz - to to samo. Po odpaleniu przykładu custom_hid wyciągałem przewód podciągania D+ i wsadzałem go ponownie i znowu działało. To nie wiem co u Ciebie może być nie tak. Przykłady na 100% są dobre! Może coś pominąłeś przy dostosowywaniu kodu do swojej płytki. [Edit] Na szybko to sprawdz - (spi, pin cs karty, może nie włączyłeś właściwego...
Ok, dzięki za pomoc.
Ponawiam prośbę/zlecenie.
Moim zdaniem konfiguracja DMA jest trochę niepełna, a ponadto brakuje obsługi przerwania od DMA. Przynajmniej w jednym miejscu wpisz jawnie wartość do rejestru sterującego (CR = ...). Na razie wszędzie masz |= lub &=. Zakładając, że pierwszy transfer poleci i przerzucisz 19200 słów, to później DMA się zatrzyma i nic więcej nie prześle. I jak to ma coś...
http://obrazki.elektroda.pl/7258579400_1... Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60. Całość...
chyba udało się naprawić problem, ale nie do końca. Większość funkcji mi już wykrywa ale nie wszystkie. Pojawia się błąd: make: *** Dodano po 2 Problem wynika z tego, że Eclipse nie rozpoznaje Makr, rejestrów i struktur typowych dla stm32f3. Czy problem leży zatem po stronie CubeMX?
Być może, że twoje opóźnienie wcale nie jest takie jak myślisz (skoro 3ms to typowy czas to 5ms spokojnie powinno wystarczyć). Zauważ, że jeśli zapisujesz pierwszą stronę to kolejną możesz zapisać jeśli wysłanie control byte zwróci ACK jeśli nie to pamięć jest zajęta i należy ponownie wysłać start i control byte. Co jeśli najpierw zapiszesz druga stronę...
Freddie co innego myślałem co innego napisałem. Chodziło mi o układ plików w projekcie. Wiem że w drugim projekcie w main jest ustawienie PLL oraz GPIO czego w pierwszym nie ma, lecz ogólnie na początku im mniej tym lepiej :) Porównajcie układ plików obu projektów. http://obrazki.elektroda.pl/9557265100_1... Co do kompilacji jeden jak...
Utwórz nowy plik z rozszerzeniem cpp. Makefile (lub wbudowany generator eclipse) skompiluje go programem g++. Potem zlinkuje z resztą kodu w C.
Wywala błąd gdyż kompilator nie rozumie polecenia "nop();". Zastąp powyższe przez "asm volatile("nop")" albo dodaj include do pliku system.h w pliku delaya. W pliku system.h masz właśnie definicje nop() jako to co wyżej podałem, zajżyj do tego pliku.
W "Elektronice Praktycznej CD+FTP" 12/2009 na CD sa pelniejsze programy zrodlowe z ksiazki Krzysztofa Paprockiego "Mikrokontrolery STM32 w praktyce".
https://obrazki.elektroda.pl/5694434400_... 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...
Problem to jest taki, że keil nie spełnia standardów języka C dotyczących kilku całkiem istotnych spraw. Jeśli kod o którym mówisz jest tym samym o którym myślę (nie chce mi się ściągać 14MB, bo pewnie wrzuciłeś tam pliki bin, elf i nie wiadomo jakie jeszcze zupełnie nie potrzebne do niczego) to w kodzie Keila jest mnóstwo operacji typu: Według mnie...
Jeśli ma być tak jak ty to opisujesz to wywołanie powinno tak wyglądać static void VtaskINT1( void *pvParameters ) { xSemaphoreTake(xBinarySemaphore,0... while(1) { xSemaphoreTake(xBinarySemaphore,port... // Tutaj twój kod do wykonania } } lub static void VtaskINT1( void *pvParameters )...
eclipse stm32 stm32 eclipse toolchain stm32 eclipse debug
zmywarka zamek bosch husqvarna odpalać ssać czujnik wału polonez
mycie wirnika silnika zapalnik elektryczny
Seat Cordoba błąd P0571 – hamulec i światła działają, czujnik pedału hamulca, tempomat, ABS Przycisk spłuczki Geberit, Grohe, Cersanit nie spłukuje – diagnostyka i naprawa