1. Jeśli jest poprawnie odkomentowane to pewnie nie jest włączane do kodu wynikowego. 2. GCC ma rację: STM32 nie ma zestawu instrukcji ARM tylko THUMB2 Ad.1. Już są dołączane. Ad.2. Faktycznie, zapomniałem zaptaszkować opcji Compile Thumb Code. Po tym zabiegu już się kompiluje, ale pojawiły się nowe errory: Build target 'STM32' assembling startup_stm32f10x_md.s......
Dziękuję lazureus. Myślę, że masz rację z tym Watgdog'iem okienkowym WWDG, jednak w celu poprawnego skonfigurowania WWDG wczytuję się w książkę Krzysztofa Paprockiego "Mikrokontrolery STM32 w praktyce" w której autor używając uVision opiera się o najnowszą wersję bibliotek stm32f10x Standard Peripherals Library V3.4.0 i CMSIS. Tak więc i ja korzystam...
spróbuj zegary zainicjalizować funkcją SystemInit(), musisz tylko dołączyć do projektu plik z C:.........\Keil\ARM\Startup\ST\STM32F10... + włączyć odpowiednie peryferia, jeżeli zacznie działać to znaczy że z zegarem coś jest źle ustawione
Dziękuję za szybką odpowiedź. od komentowałem I2C_InitTypeDef I2C_InitStructure; I2C_InitTypeDef I2C_InitStructure; oraz GPIO_InitTypeDef GPIO_Conf; Jednak nadal mam błąd przy próbie zbudowaniu projektu compiling misc.c... compiling stm32f10x_exti.c... compiling stm32f10x_gpio.c... compiling stm32f10x_rcc.c... compiling system_stm32f10x.c... compiling...
Spróbowałem tak jak pisałeś używając twojego przykładu (podmieniam plik main.c i następnie "make"). Zaincludowałem potrzebne nagłówki i nie wiedzieć czemu biblioteka odwołuje się do nieistniejącej funkcji. Co mogę jeszcze poprawić? ... Linking target: out/stm32_blink_led.elf arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Tstm32f103rb_rom.ld -g -Wl,-Map=out/stm32_blink_led.map,--cref,...
I jeszcze jedno uzupełnienie. 64-gdb-set confirm off (gdb) 64^done (gdb) 65-gdb-set width 0 65^done (gdb) 66-gdb-set height 0 66^done (gdb) 67-interpreter-exec console echo 67^done (gdb) 68-gdb-show prompt 68^done,value="(gdb) " (gdb) 69-gdb-set new-console on 69^error,msg="No symbol...
Nie rozumiem twojej irytacji. Ktoś chce zrobić inaczej niż ty. Po prostu chcę zrobic po swojemu żeby się nauczyć czegoś i samemu sprawdzić czy te biblioteki są takie słabe jak piszesz. To że biblioteki narzucają dużo niepotrzebnych skoków i dyrektyw nie oznacza że są słabe. Te akurat są napisane degenerycznie co daje uniwersalność. Ja potrzebuję z nich...
Rozwiązałem swój problem i kolegi afranza chyba też. Otóż zarówno ja jak i on używamy IAR. IAR dostarcza pliki startupa ale nie ma tam pełnej tabeli wektorów przerwań. Stąd włączenie przerwania powodowało błąd. I to nie był problem w znienawidzonej bibliotece ST, wystarczyło bit w rejestrze przestawić za pomocą debuggera, a już leciał wyjątek. Rozwiązanie...
Wygląda na to że trzeba zmienić w nazwie pliku startup_stm32f10x_md_vl.s na startup_stm32f10x_md_vl.S i kompilator już go widzi... Po tym mam błąd: init.c:(.text+0x3a): undefined reference to `_init' pogooglałem i trzeba przestawić: Properties->C/C++ Build/ARM Sourcery Windows GCC C Linker->General: "Do not use standard start files" was checked and...
Problem rozwiązany: Dodatkowo w drugim programie, w pliku startup_stm32f10x_hd.c, trzeba było zmienić: #define VECT_TAB_OFFSET 0x0 na: #define VECT_TAB_OFFSET 0x3000 I chyba już wszystko ładnie chodzi:)
Mam skopiowany do głównego katalogu następujące pliki: stm32_flash.ld - jest skopiowany z TrueStudio, ale probowalem rownież na jakiejś konfiguracji z neta odpalić i również nic startup_stm32f10x_md.s oraz startup_stm32f10x_md_vl.s skopiowane z biblioteki dostarczanej przez ST syscalls.c - ściągnięte z neta dla STM32F103. Sprawdziłem w stm32_flash.ld...
Witam. Używam TrueStudio freewara. Łączę się z stm32f107 (na własnej pcb wykonanej przez firmę) poprzez SWD. Problem w tym, że połączenie zawsze dojdzie "do skutku" ( STM32 Successfully completed reset operation ) ale czasem debugowanie nie działa tj. nie pojawia się "podświetlenie linijek kodu" oraz tekst "No debug context". Czasem - bo czasem po prostu...
Miałem nadzieję, że mnie to ominie ale jeszcze nie jestem w stanie napisać wszystkiego bez użycia bibliotek od STM. Po wykonaniu czynności z tutoriala, wyrzucało jeszcze błąd assemblera, zmieniłem dodatkowo w makefile '=' na '&=' w funkcjach: uint32_t __STREX*. Resztę zmian wprowadzałem zgodnie z instrukcjami, uważnie. Skrypt linkera nie zmieniany,...
Oczywiście nie mam racji;). Tablica wektorów jest zdefiniowana w pliku startup_stm32f10x_md_vl.S. Teraz wystarczy, że nawet w main.c dodam sobie void USART2_IRQHandler( void ) i powinno mi to zadziałać. Gdyby coś było nie tak, to będę kontynuował temat. Dzięki za wskazówki!
Błąd poprawiony, wyrzuciłem z pliku startup_stm32f10x_cl.s linie IMPORT SystemInit LDR R0, =SystemInit BLX R0 Program się kompiluje, diodka ładnie miga. Pojawił się inny problem: podczas debugowania w zakładce peripherals ma tylko Core peripherals. Co zrobić, żeby pojawiła się reszta opcji?
Dziękuję bardzo za pomoc :) Dziwne bo kompilator widzi jeszcze jeden błąd. **** Build of configuration Default for project freeRTOS_uIP **** cs-make all Linking target: out/FreeRTOS_uIP.elf arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Tsetup/STM32F103xB_rom.ld -g -Wl,-Map=out/FreeRTOS_uIP.map,--cref,--n... -Wl,--gc-sections -nostartfiles...
Nie dam rady niestety poradzić sobie z I2C bez użycia bibliotek CMSIS src inc STM32F10x_StdPeriph_Lib_V3.4.0 Czy mogę prosić o opisanie po krótce jakie biblioteki czy pliki, gdzie powinienem dołączyć abym mógł swobodnie pisać w oparciu o biblioteki ? Wiem już, że plik startowy startup_stm32f10x_md muszę dodać do katalogu w którym mam zapisany projekt....
Próbuję przenieść kilka projektów z różnych procesorów (STM32L152RBT, STM32F103C8) a Atollic na czyste Eclipse +CS. Robię to tak, że przenoszę wszystkie pliki, łącznie z startup i skryptem linkera z Atollic. Wszystko się kompiluje, jednak podczas kompilowania powstaje coś jest nie tak i powstaje mały plik wynikowy, bo tylko 72 bajty. W Atollic zajmuje...
Ja na razie to zmogłem "na sucho" (czyli bez sprzętu - tzn. nie mam na razie mikrokontrolera). Ale udało mi się skonfigurować eclipsa i kompiluje się wszystko bez errorów. Plik startup wziąłem z tych dostarczanych z biblioteką: np. \Libraries\CMSIS\Core\CM3\startup\gcc\st... Nie wiem czy akurat ten startup jest właściwy dla 103RB, bo...
Witam! Czy ktoś walczył w CrossWorks z opcją STARTUP_FROM_RESET? Zmieniłem w pliku STM32F10x_Startup.s fragment: #ifdef STARTUP_FROM_RESET .word reset_handler #else .word reset_wait #endif /* STARTUP_FROM_RESET */ na .word reset_handler jednak nawet wtedy procesor nie startuje po zaprogramowaniu i wciśnięciu na płytce reset. Automatycznie startuje jednak...
Wczoraj uruchomiłem RTC, działa ładnie, choć nie wiem dlaczego na koniec wpisu do rejestru RTC_CNT muszę dwa razy wyzerować bit RTC_CRL_CNF:) W następnej kolejności chcę uruchomić przerwanie od RTC, no i oczywiscie nie działa, inaczej nie pisałbym tu. Jak rozumiem z dokumntacji (tej cześci którą przeczytałem) i opisu przykladów, najpierw powinny być...
no racja ścieżki bez cudzysłowów powinny być:) Już prawie się skąpilowało:) wyskoczyło mi jeszcze takie cos: Compiling file: ./lwip-1.4.0/src/netif/slipif.c arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -O0 -ffunction-sections -fdata-sections -Wall -Wextra -std=gnu89 -g -ggdb3 -fverbose-asm -Wa,-ahlms=out/slipif.lst -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER...
Nie wiem czemu wg was te linki nie działają :) Daje bezpośredni adres: http://img36.imageshack.us/img36/6918/st... http://img27.imageshack.us/img27/196/bez... Dorzucam projekt. Mam nadzieje ze się odnajdziesz. Myślę, że za wszystko odpowiada skrypt linkera + startup. Na chwile obecna ustawione jest: lib/etc/ld/stm32f103vb.ld (zly) i lib/stm32/CMSIS/Core/CM3/startup/arm/sta...
Czyli o to chodzi w tych bibliotekach, aby z jednej strony ułatwić pisanie lecz z drugiej strony rozszerza kod, czy tak? A tak na prawdę to aby móc korzystać z takiego zapisu jak GPIOx->BSRR= warosc to jakie pliki muszą być dołączone do projektu? Czy wystarczy, startup.s,stm32f10x_it.c oraz stm32f10x.h? Nie wiem do czego jest plik core_cm3.c, bo usunąłem...
Problem wynika z tego, że w Cortexach jeden ze stosów jest inicjalizowany SPRZĘTOWO, po resecie, tak samo pobierany jest adres funkcji Reset_Handler(). Problem o którym piszesz jest znany i polega na tym, że procka resetujesz, on w tym momencie wczytuje sobie SP oraz adres funkcji Reset_Handler(), a następnie programujesz do niego coś nowego, zupełnie...
A dla czego? Pamiętam, że jak kiedyś przygotowywałem strukturę która miała różnej wielkości zmienne (1, 2 i 4 bajtowe), to przy wysyłce struktury nie były ułożone dokładnie jedne za 2 gimi tylko miały wyrównanie do 32 bitów. Ale to może kwestia kompilatora. Robiłem to w uvision. Jestem tak blisko uruchomienia, a nie mogę sobie poradzić... Usunąłem więc...
Po długiej walce jestem zmuszony kolejny raz prosić o pomoc. Próbuję z Keil'em skompilować projekt z książki "SMT32 w Sieci ETHERNET". W Keil'u tworzę nowy projekt pod STM32F107. Wg autora książki potrzebne pliki to: http://obrazki.elektroda.pl/8525296100_1... Więc dodałem ścieżki o raz pliki: http://obrazki.elektroda.pl/8489493100_1...
Zacznij od tego, że z main() wywołujesz Set_System(), które w komentarzu ma napisane coś takiego: /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f10x_xx.s) before to branch to application main. To reconfigure the default setting...
startup to startup, plik konfiguracyjny to: stm32f10x_conf.h, a w pliku stm32f10x.h masz podane nazwy rejestrow mikrokontrolera zebyś tak jak chciales nie mial tego w hexie. tam pisze ktory rejestr za co odpowiada a jak dalej nie wiesz to reference manual pomoze.
Witam. Poniewaz chce zostawic w swoim programie pierwsze sektory nieuzywane (ewentualnie bez zadnych konkretnych funkcji) moj program powinien byc wygenerowany z okreslonym offsetem. Przebrnąlem przez skrypt linkera i mam pierwsze 4 kbyte flasha przeznaczone na moja sekcje BOOT, a reszta pamieci na sekcje FLASH. Skoro tablica przerwan tez sie przesuneła...
Witam, Dotychczas używałem BleedingEdge (ver. 131005) z CoIde bez problemu, ale jako że przesiadłem się właśnie z win7 na win8.1 to postanowiłem też ściągnąć nowszy toolchain. Niestety nie mogę skompilować nawet pustego projektu. Próbowałem wersji 150324-x64, 150324 oraz 141002 i z żadną program się nie kompiluje. Podczas kompilacji okno przez chwile...
Problem jest zdaje sie bardziej skomplikowany - potestowalem calosc z parunastu konfiguracji i z sieci lokalnej i z inernetu. Wnioski: polaczenia z win xp sa obslugiwane w 100% poprawnie polaczenia z win7 powoduja wystapienie WWDG_IRQHandler - w moim przypadku wejscie do infinity loop. Aczkolwiek jeden ze znajomych polaczyl sie z internetu przy uzyciu...
Co to za środowisko? CoIDE. Mam takie ikonki. Tylko jak wyżej napisałem , w czasie kiedy wisi aktywny jest tylko stop i pause. Dodano po 48 Ale jeśli w czasie debugowania zatrzymam debugowanie "pause" to wychodzi na to że program jest w pętli w tym miejscu : Dodano po 3 Dodano po 10 Wypinając linie RX mikroprocesora z układu MAX485 program działa o...
Witam. Na studiach mam labolatoria Mikrokontrolery w Automatyce gdzie bazujemy na książcę Marka Galewskiego STM32 Aplikacje i ćwiczenia w języku C W domu posiadam płytkę STM32L-discovery z mikrokontrolerem STM32L152-RBT6 stm32f10x_conf.h stm32f10x_it.c stm32f10x.it.h mod_startup_stm32f10x_md.s Mógłby ktoś pomóż przystosować te pliki pod keila pod ten...
Witam Niedawno zacząłem "zabawę" z zestawem Kamami ZL27ARM z procesorem STM32F103VB. Mam problem z przerwaniem od timera SysTick. Jest ono generowane 4 razy za często - miało być 1 raz na sekundę, a jest 4. Kwarc 8MHz, SYSCLK = 72MHz, SysTick_CLK= 72/8=9MHz czyli załądowanie do licznika wartości 9'000'000 powinno dać zgłoszenie przerwania co 1s, więc...
Tak wyglada kompilacja w consoli: [syntax=text] 16:18:26 **** Build of configuration Debug for project stm32F103RB_template **** cs-make all Building file: ../Setup/startup.S Invoking: ARM Sourcery Windows GCC Assembler arm-none-eabi-gcc -x assembler-with-cpp -Wall -Wa,-adhlns="Setup/startup.o.lst" -c -fmessage-length=0 -MMD -MP -MF"Setup/startup.d"...
Witam! Postanowiłem zacząć korzystać ze środowiska Coocox, proste programy typu miganie diodami udało mi się skompilować i uruchomić. Jednak chciałbym napisać program do obsługi wyświetlacza i wykorzystać bibliotekę uCGUI. Dodałem plik uCGUI.lib do folderu mojego projektu i dodałem go do "Linked Libraries" w konfiguracji projektu. Podczas kompilacji,...
opartą na STM32F103RBT6 Gdzie jest ta automatyczna konfiguracja??? Jest w plikach startup_stm32f10x_hd.c i system_stm32f10x.c. To żadne bajki. Jest wielka róznica między środowiskami w których wszystko trzeba robić od zera samemu, a takimi jak Coocox, które właśnie te wspomniane rzeczy robią, co ma bardzo wielkie znaczenie dla początkujących, bo start...
Rozważmy na początek taki kod: [syntax=c] #include "stm32f10x.h" void Delay(unsigned int delay); void SetClock(); int main() { FLASH->ACR = 0x10; FLASH->ACR = 0x00; FLASH->ACR = 0x10; SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP... ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode...
Ściągnąłem z gnuarm.com instalkę. Tutaj masz coś zdecydowanie lepszego i aktualnie rozwijanego: Czy konieczne są jeszcze jakieś pliki .h z definicjami rejestrów itp. dla tego procesora? Gdzie tego szukać? Jak to gdzie, na stronie www.st.com ;) Znajdź "STM32F10x standard peripheral library", tam znajdziesz CMSIS, bardzo fajny nagłówek stm32f10x.h, startup...
Po zainstalowaniu ubuntu i skonfigurowaniu eclipse+codesourcery pod niego okazało się że mój archaiczny makefile nie "zbuilduje" mi projektu. Po zainstalowaniu plugina ARM do eclipse okazało się że wygenerowany kod nie mieści się w pamięci. Próbowałem na różne sposoby konfigurować ustawienia kompilatora i linkera ale nie dało to efektu. Poniżej wywołanie...
Witam Napisałem pierwszy prosty program w Keil: [syntax=cpp] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" GPIO_InitTypeDef GPIO_InitStruct; int main(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP... ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;...
Zamówiłem dwa Cortex'y STM32F103ZET6, czekam na przesyłkę... W między czasie, patrzę na przykłady z STM32 i nie mogę się nadziwić.... no cóż czasem człowiek potrafi skomplikować proste sprawy... Używam startup.S i vectors.c od kolegi Freddie Chopin. Niby wszystko ok, ale jak ktoś przerabia jakieś rzeczy z USB, niech zwróci uwagę na dwie rzeczy. w ST...
Hej, chciałem zaimplementować zbieranie statystyk w systemie FreeRTOS. Zrobiłem jak w opisie funkcji: 1.włączyłem flagę configGENERATE_RUN_TIME_STATS 2.portCONFIGURE_TIMER_FOR_RUN_TIME_STATS... skonfigurowałem counter. 3.portGET_RUN_TIME_COUNTER_VALUE() - obsłużyłem odczyt z countera. Przy kompilacji poszło ok. Jednak jeśli dodam funkcję vTaskGetRunTimeStats(...
Witam Mam pewien problem wyrzuca mi następujący błąd przy użyciu sprintf i ADC. Sprintf mam tak wpisany: [syntax=c]sprintf((char *)wartoscADC1VTekst, "%d,%03d V\0",( wartoscADC1V / 1000),( wartoscADC1V % 1000));[/syntax] Tak mam wpisany przetwornik AC [syntax=c]void ADC_Config(void)...
Dodałem tę deklarację ale i bez niej funkcja obsługi przerwania jest poprawnie przypisana w tabeli wektorów. ... 8000060:0800057d .word0x0800057d 8000064:0800054d .word0x0800054d 8000068:0800057d .word0x0800057d ... 0800054c <EXTI3_IRQHandler>: Oto rezultat w konsoli: 18:12:43 **** Build of configuration Default for project XBee_v1 **** make all...
Jeszcze jeden ciekawy przypadek (wg mnie). Jeżeli mógłby mi ktoś wytłumaczyć jak to działa. Przykład pochodzi z http://olimex.com/dev/soft/arm/STR/STM32... (Nie kompilowałem ale zakładam że działa) W przykładzie tym nie ma pliku startup'a. Jest skrypt linkera jeszcze krótszy! Skrypt linkera: MEMORY { ram (rwx)...
Witam, muszę przekopiować projekt pod STM32F107 (Działający już) na CrossWorksie -> Eclipse, problem leży w makefile'u, ale nie mogę podejrzeć co robi ten crossworksowy, mój wygląda następująco: [syntax=c] ########################################... # Start of default section # TRGT = arm-none-eabi-...
nie bardzo rozumiem. Otóż chciałem nawet przerobić gotowy przykłąd Blinky, który znajduje się w podfolderach Keil'a ale w nim np nie ma folderów SRC, LIB. Jest tylko StartUp, Source Files i Documentation. Przypuśćmy że chcę korzystać w tym gotowym projekcie z funkcji z pliku stm32f4xx_gpio.h, więc co muszę zrobić? próbowałem już dodawać plik .h oraz...
Zainstalowałem CoIDE oraz GCC ARM Utworzyłem prosty projekt: http://obrazki.elektroda.pl/2950715100_1... Podczas kompilacji mam takie błędy: GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.8 2013q4\bin compile: Miał ktoś podobną sytuacje? Proszę o podpowiedź odnośnie usunięcia tych błędów.
Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.9 2014q4 Debugowanie programu : http://obrazki.elektroda.pl/8776950400_1... Gdzieś w sieci wygrzebałem: In case that link ever disappears, what you have to do is ensure that your gcc command has "-Wl,-u,vfprintf -lprintf_flt -lm". This translates to: force vfprintf to...
Witam. Jestem początkujący w świecie st32 i na początek stworzyłem sobie projekt w którym mam tylko pliki : main.c , startup - który dołączył keil (usunięte 3 linie odpowiedzialne za automatyczne uruchomienie funkcji SystemInit), Oraz 3 pliki z CMSIS: stm32f10x_it.c , stm32f10x_it.h , system_stm32f10x.c . Program wygląda następująco: [syntax=c]#include...
Masz rację, że szkoda całego tygodnia na taki problem:). Oto cały kod: Main: http://obrazki.elektroda.pl/2257364500_1... podłączenie do STM'a wygląda nastepująco: RxD do PA10, TxD do PA9. Więc nadal stoję w miejscu, ale nie poddaje się;).
Korzystam z przykładowych projektów dostarczonych przez ST w programie IAR. Po lewej stronie okna programu znajduje się okienko z drzewem folderów i pośród nich znajdują się dwa pliki ze 'startup' w nazwie: startup_stm32f10x_md.o i startup_stm32f10x_md.s (zawartość plików znajduje się poniżej). To o te pliki chodziło? Zawartość dość znacznie się różni....
Przeglądałem skrypty Freddiego i w Keilu rzeczywiście jest trochę inaczej. Co do stosu to działanie nie różni się to nic od ogólnie znanych mi zasad. Startup w Keil wygląda tak ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; <h> Stack Configuration ; <o> Stack Size (in Bytes)...
Jak uruchomić STM32 z FLASH by działał później w pamięci RAM. Dedykowane dla Keil: - plik startup_stm32f10x_xx.s Ułatwię niektórym czasu i szukania w necie rozwiązań flashowania z poziomu własnego bootloadera pamięci programu. Ja przyznam szczerze nie znalazłem żadnego opisu w necie, wobec czego napisałem własne rozwiązanie. Jako że asembler ARMów to...
:arrow: http://iteadstudio.com/produce/enc28j60-... Oczywiście parę plików wymaga zmian w dołączanych plikach nagłówkowych, bo program z katalogu STM32 były przeznaczone dla rodziny F1, a tu mamy do czynienia z rodziną F0. Najważniejsze jednak zmiany muszą nastąpić w plikach STM32_Init - m.in. nowa konfiguracja układu zegarowego,...
Witam Zakupiłem książkę: "Mikrokontrolery STM32 w praktyce" w przykładach jest używana biblioteka CMSIS: STM32F10x STandard Peripherals Library V3.1.0 oraz STMicroelectronics Firmware Library W książce jest napisane, że można ją (je??) pobrać ze [url=www.st.com]strony niestety nie ma tam nawet działu download a wyszukiwarka prowadzi tylko do dokumentów...
Zaczynam przygodę z STM32 i na początku już schody z którymi nie mogę sobie poradzić. Mam zainstalowane Eclipse jak i Sourcery 4.7.3, ściągnąłem przykładowy projekt z strony Freddiego do mrugania diodą i tu kompiluje się bez problemu. Lecz nie bardzo leży mi ten przykład (bez obrazy). Lubię mieć wszystko poukładane a w tym przykładzie wszystko jakoś...
Witam, chciałbym zapytać o tworzenie projektu w Atollic. Szukałem w internecie materiałów polskich i obcojęzycznych ale nigdzie nie natknąłem się na instrukcje tworzenia projektu. Uczę się programowania na rejestrach według poradnika zamieszczanego tutaj. Widziałem instrukcje tworzenie projektu za pomocą CubeMx a następnie wyciania co nie potrzebne....
(at)Marek_Skalski Tymbardziej nie rozumiem, dlaczego po przestawieniu na HSE w CubeMX wskazuje taktowanie szyn APB na 8 MHz a ja muszę takie zmiany wprowadzać. Co do funkcji ustawiającej zegar to jeśli projekt używa SPLa to wcale nie ma pewności, że faktycznie ten zegar masz ustawiony na 8 MHz, bo równie dobrze może być jednak ustawiony na zupełnie...
Chyba tak jest, tutaj plik startup_stm32f10x_md.c [syntax=c]/** ****************************************... * (at)file startup_stm32f10x_md.c * (at)author Coocox * (at)version V1.0 * (at)date 12/23/2009 * (at)brief STM32F10x Medium Density Devices Startup code. * This module performs: * - Set the initial SP * - Set...
Jest coś nie tak z UART_BUFOR. W przedstawionym fragmencie brak definicji tego tworu więc nie wiadomo dlaczego. Poza tym typowy błąd AVRowca - nieskasowana flaga przerwania. Powtórzę to co przedmówca: poradnik szczywronka wyłuszcza to prosto i zrozumiale. Nazwy wektorów przerwań biorę z Reference Manuala albo z plików startowych np. vectors_stm32f10x.c...
Rzeczywiście wystarczyło to zaznaczyć i jest już lepiej, przynajmniej próbuje coś kompilować :) Niestety pojawił się kolejny problem, tym razem chyba trudniejszy do rozwiązania. GCC strasznie nie podoba się plik startup... [syntax=c];******************** (C) COPYRIGHT 2010 STMicroelectronics ******************** ;* File Name : startup_stm32f10x_hd.s...
Hmm, zrobiłem projekt od nowa, wg wskazówek i... dalej nic (oczywiście jeszcze musiałem dołączyć dodatkowe pliki wymagane przez stm32f10x_rcc)" Building “Led_1” in configuration “THUMB Flash Debug” — 5 errors D:/Piotr/Dokumenty/CrossWorks Projects/LED_1/stm32f10x_conf.h is newer than THUMB Flash Debug/main.o. Compiling...
Tak korzystam z Keila Dodano po 4 Problem nie jako rozwiązany. Przyczynną było inaczej nazwane wektory przerwań, które skopiowałem z pliku stm32f10x_it.h (te z stm32f10x.s okazały się poprawne) np. dla DMA kanał 1 w stm32f10x_it.h void DMA1_Channel1_IRQHandler(void); a w startupie stm32f10x.s void DMAChannel1_IRQHandler(void) dla ADC1...
Minimalizm totalny a ty się dziwisz. Weź stosuj makefile Freddiego. Przesada Co złego jest w minimalizmie? Mam wszystko co jest potrzebne. Kompilator wywoływany jest z takimi samymi parametrami i tak samo. Masz automat, z dodaniem każdego pliku chcesz makefile edytować? Tak, chce za każdym razem edytować makefile, ale o gustach się nie dyskutuje. To...
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ć...
SPL - Standard Peripherial Library od ST, producenta uC z serii STM32Fxxx to zestaw funkcji, które w założeniu miały ułatwić pisanie programów. Założenia były bardzo dobre, ale wykonanie, a chyba jeszcze bardziej sposób korzystania z funkcji dostępnych w pakiecie sprawia, że kod jest nieefektywny, nie daje pełnej kontroli nad układami i wcale nie jest...
Dodano po 31 Kiedy debuguje program, krokowo, zaraz po a = 124; z linii b = log10(a); wskakuje do nieskończonej pętli - void HardFault_Handler(void). Tak jakby sam adres procedury wywoływał błąd sprzętowy.
Bo jest napisana na magicznych hexach (po części) :) Kawałek tejże inicjalizacji: [syntax=c]void SystemInit (void) { /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ #ifndef STM32F10X_CL RCC->CFGR &=...
Wygląda na to, że się całość się jakoś skompilowała pomimo warningów i zlinkowała (bo powstały mi pilki hex i elf). ...aczkolwiek rozmiar pliku wynikowego *.hex = 34 bajty każe przypuszczać, że jeszcze sporo przede mną... Brakuje Ci tablicy wektorów i startupa. Prościej będzie Ci zacząć od kompletnego przykładu, ewentualnie od przykładu + modyfikacje...
Jak to ta sama seria to nie musisz zmieniać wektora przerwań, ale w skrypcie linkera wypadało by pozmieniać rozmiary pamięci i powinno być ok. Rozmiary zmiemione na 512k i 64k. Zadnej roznicy w dzialaniu nie ma. Pomyslalem, ze warto jeszcze wstawic co pokazuje GDB (to jest przypadek, w ktorym uruchamiam load i mikrokontroler nie może się doczekać na...
A jeśli chodzi o typ, to w tym przypadku powinienem użyć IRQ? Nie powinieneś używać żadnego. Jeśli używasz STM32F1 (technicznie rzecz ujmując - jeśli używasz rdzenia ARM Cortex-M3 w rewizji r1r1), to po prostu na początku main() (albo w startupie, albo gdzieś "bardzo wcześnie" - byle przed pierwszym przerwaniem) dodaj taką oto magiczną inwokację: SCB->CCR...
Od pewnego czasu walczę z chińską płytką (blue-pill) z STM32F103 na pokładzie Przeczytaj ten wątek i kup sobie inną płytkę. https://www.elektroda.pl/rtvforum/topic3... Jeśli koniecznie chcesz się męczyć z chińskimi podróbkami, to na mojej stronie ( http://www.freddiechopin.info/ > Download > ARM > Przykłady > stm32_blink_led) znajdziesz szablon...
Witam, Proszę o pomoc w konfiguracji CoIDE dla procesora nie wpieranego w moim przypadku jest to STM32F217VGT6. Oczywiście dla procesorów wpieranych jak STM32F103 konfiguracja jest banalna (włączenie CMSIS core i boot, RCC, Flash itp). Dodatkowo można dorzucić ręcznie biblioteki np USB i wszystko śmiga pięknie. Niestety dla nie wpieranych konfiguracja...
Witam, czy nie wpadł ktoś przypadkiem na internecie na tutorial tworzenia pliku makefile dla środowiska Keil uVision lub Eclipse (bo chyba powinny być nieco inne) stricte pod STM32? Było by mi to bardzo potrzebne. Jeśli chodzi o moje próby - dobrych kilku dni walczę z Keilem i Eclipse. Znalazłem klika przykładowych projektów (w postaci main, + biblioteki...
Chodzi mi tu głównie o ograniczanie wielkości bibliotek standardowych Nie używam. Operacje bezpośrednio na rejestrach. Startup, konfiguracja taktowania własne. Jedynie *.h z rejestrami od producenta. Jest z tym trochę roboty, ale całość działa szybko i tak jak chcę. Książki nie polecę bo żadnej (poza tymi o assemblerze c51) na oczy nie widziałem. Grzebię...
Hej, mam przykład z blink led dla stm32f103 ze stronki Freddiego i na jego podstawie portuje kod pisany pod KEIL'em do czystego eclipse'a + toolchain bleeding edge. Jestem już na etapie gdzie wszystko mi się kompiluje (aczkolwiek wciąż na bibliotekach ST dotyczących peryferiów itd). Musiałem wrzucić także syscalls itp. Niemniej - przykład ten jest dla...
Witam. Czy ktoś może rzucić okiem na mój program i stwierdzić gdzie jest błąd. Siedzę już 3 dni i nie mogę go znaleźć. Posiadam płytkę Butterfly, dolutowałem kwarc zegarkowy i dwa kondensatory o pojemności podanej na schemacie który dostałem z płytką. Po wgraniu hexa do procesora wygląda, że zatrzymuje się podczas konfiguracji RTC. Jak zaremuje część...
Strzelam - startup inicjuje pamięć ustawia wektory, itd., itp.
jest kompletnie niepotrzebn pod warunkiem że w tej rodzinie startup ustawił STKALIGN. Albo sam gdzieś napisał SCB -> CCR |= SCB_CCR_STKALIGN_Msk;
Właśnie nie chcę przechodzić na coś innego, bo dostaliśmy z uczelni paczkę z eclipsem i Yagarto i wolałbym działający startup i .ld na ten toolchain.
Ten kod jest dla Keila, musisz go przerobić albo znaleźć inny. Generalnie wystarczy poprawić komentarze, definicje i pewne elementy specjalne. Znajdź jakiś startup dla GCC i zobaczysz jak tam jest to zrobione. 4\/3!!
Wnioski z artykułu : startup wolniejszy bo kopiuje serial FLASH do SRAM Wydajność większa bo wykonywane ze SRAM Ciekawe jak działa emulowanie EEPROM w FLASH, ale skoro Na tą chwilę załadowałem bootloader stm32duino i działa ok to pewnie problemu nie ma?
Aby zobaczyć gdzie problem : 1. Uzyj debugera 2. Pokaż skrypt linkera i startup Dodano po 47 GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie
No ale jeśli nie korzystasz z przerwań, to ten rozmiar stosu może być równy zero... Jeśli skonfigurujesz (w startupie) użycie tylko jednego stosu (albo raczej - "nie skonfigurujesz użycia dwóch" - jak jest to domyślnie zrobione), to musi być jeszcze inaczej... Prawda jest taka, że informację o tych stosach można znaleźć w 100 miejscach, włącznie z opisem...
lub jak te przerobić ?? No trzeba przerobić głównie te dyrektywy typu EXPORT, AREA itd. Jeśli takiego kodu assemblerowego nie ma zbyt dużo to przeróbka nie będzie problemem. Zobacz sobie jakiś plik assemblerowy przeznaczony dla GCC to sam zobaczysz jak to powinno wyglądać (choćby ściągnij przykłady dla ARM z mojej strony i tam jest startup w assemblerze)....
No ale skąd pewność? Po pierwsze domyślnie tryb thread jest "nieuprzywilejowany", można to sobie zmienić w startupie. Po drugie gdy tylko wywołasz pierwsze przerwanie to po jego powrocie już jesteś w trybie thread, czyli domyślnie nieuprzywilejowanym. A przynajmniej tak mi się wydaje [; Ciekawą, prostą i pewną opcją może być wywołanie programowego resetu...
Zanim coś napiszesz to proszę uzupełnij wiedzę co to są funkcje veneer (https://www.keil.com/support/man/docs/a... Funkcje są przenoszone do RAMu (sprawdzone, mam ich >100). Startup nie ma tu nic do rzeczy. Lepiej powiedz przed wszelkimi radami czy pisałeś funkcje które działają pomiędzy RAM i FLASH na procku STM32F103...
Witam, Na wstępie dodam, że bardzo długo walczę z konfiguracją projektu z stm32l w Eclipse. Udało mi się stworzyć projekt z automatycznie generowanym plikiem makefile (na podstawie ustawień C/C++ Build -> Settings ), ale były problemy z FreeRTOS, więc postanowiłem przerobić przykład Freddiego dla STM32F10x (stm32_blink_led), aby mieć większy wpływ na...
Dzieje się coś dziwnego z mikrokontrolerem i już sam nie wiem co ja z tego wnioskuję, na pewno wnioskuję, że nie działa tak jak powinien, prosty program, #include "stm32f10.x" int test=0; int main(void) { while(1) { test++; } } Czyli według Ciebie kod powyżej jest kompletny i powoduje ustawienie flagi resetu od watchdoga? Nie inicjalizujesz nigdzie...
Cześć Zabrałem się za zabawę z ethernetem na zestawie butterfly (STM32F107) + ZL2ETH. Pracuję na najnowszej wersji code sourcery, makfile i startup by Freddie Chopin + stos LWIP. Po początkowych problemach udało mi się zaininicjalizować PHY i na switchu zaświeciła się diodka, i to był początek problemów. Po dokładnym sprawdzeniu wszystkiego i wyeliminowaniu...
Piotrus_999. Nie tak zrozumiałem debugowanie ;P Dopiero jak mi powiedziano że w pliku startupa są zdefiniowane przerwania to tam zajrzałem, nie wiem kiedy bym sam do tego doszedł. Nie ciśnijcie po mnie;P Jestem początkującym dopiero, nie licząc przerw z miesiąc siedzę w ARM więc niewiele wiem, dopiero wszystkiego się uczę, ale że trochę czas mnie goni...
Dodałem: [syntax=c]__enable_irq();[/syntax] Nic nie pomogło. Dodałem sekwencję: [syntax=c]__disable_irq(); __enable_irq()[/syntax] Również bez zmian. Pobrałem i zainstalowałem Atollic TrueStudio for ARM. Wygenerowałem czysty projekt, sprawdziłem wektory, startup, plik linkera - nie różnią się w istotny sposób od moich (są niemal identyczne). Debugowałem...
Moje wątpliwości budzi: Thread mode can use main stack Nie miałym dotąd potrzeby zastanawiania się nad tym, w jakim mode działam. Przerwania działaja w jednym trybie, "nie-przerwania" w drugim. Ponieważ każdy tryb używa osobnego stosu, to konieczne jest ustawienie DWÓCH stosów. Nie są zbyt zagnieżdżone przerwania, zresztą spod keila program działał....
w ISR - robię (robiłem): void DMA2_Channel3_IRQHandler(void) { DMA_ClearITPendingBit(DMA2_IT_GL3 | DMA2_IT_TC3); Switch_DAC_Tables(); } miałem złe przeczucia dot. stosu(ów) i faktycznie jeden z problemów był ze stosem. mianowicie źle został zainicjowany PSP. Ostatecznie zrezygnowałem z kombinowania z drugim stosem wrócę pewnie do tego jak więcej poczytam...
(o, widzę, że dostałem 'administratora systemowego' wraz z przyciskiem 'Moderacja'. Dziękuję - czuję się doceniony :)) ) (at)Badmaneq - wyprowadzenia wyglądają na sprawne. Nie mam drugiego LPC2138, więc przerzuciłem się na STM32f100. I tu niespodzianka: - po około 10 bezproblemowych zaprogramowaniach stopniowo zaczęły się te same numery: za każdym następnym...
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...
W poradniku Szczywronka opis konfiguracji zegara był dokładnie opisany dla STM32F103. Przepisanie kodu stamtąd powinno dać Ci poprawny wynik konfiguracji. Teraz piszę z pomocą CMSIS". Pracę z STM zaczynam zawsze od przygotowania funkcji SystemClockConfig() jak to opisano w poradniku, posiłkuję się zarazem schematem z zegarów z CubeMX . Całość odbywa...
stm32f10x coocox stm32f10x select stm32f10x device
mikrotik failover bascom zapis tablicy tablicy zmywarka pompa haier
zamek drzwi mercedes sprinter wzmacniacz 2n3055 schemat
Sznur grafitowy a uszczelnianie wału korbowego Żywotność żywicy w zmywarce Amica - jak długo działa?