[syntax=c]RCC->CFGR &= (uint32_t)0x88FFC00C; RCC->CR &= (uint32_t)0xEEFEFFFE; RCC->CR &= (uint32_t)0xFFFBFFFF; RCC->CFGR &= (uint32_t)0xFF02FFFF;[/syntax] Brawo i kto będzie to czytał? Ale mało ambitnie podszedłeś do tematu bo kopiuj wklej z HAL-a. Napisz sam, bo na razie to taki Twój "własny" szablon, jak cesarza Japonii. Gdzie jest reset handler?
(at)_lazor_ Reset Handler Raczej ciężko nazwać to przerwaniem.
Ten fragment skryptu linkera jest "ciekawy": DISCARD : { libc.a(*) libm.a(*) libgcc.a(*) } Flagi na które zwrócił Ci uwagę (at)GrzegorzKostka nie są żadnym problemem, wiec możesz je zostawić. Dodaj do skryptu linkera (gdzieś na początku) coś takiego: OUTPUT_FORMAT("elf32-littlearm&... "elf32-bigarm",...
No więc przeczytałem to co w tych linkach było do przeczytania i nie znalazłem odpowiedzi. Wpisałem coś takiego w wierszu poleceń: openocd -f interface/parport.cfg -f target/stm32.cfg -c init -c reset i dostałem coś takiego: Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licenced under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Tak rzeczywiście zauważyłem właśnie, że main_stack_size był wyzerowany, więc przerwania nie miały prawa działać poprawnie. Jednak spróbowałem wpisywać jedną z kilku różnych wartości i w to miejsce i nie pomogło. Jak patrzę na tą tablicę wektorów w pliku vectors.c, to pierwszym elementem jest adres końca stosu, a potem jest reset handler itd. A jak patrzę...
Witam, a więc działam sobie na płytce ZL31 z kamami, w wersji z odłączonym st-linkiem, za programator i debugger służy mi jtag-arm z andtechu, jest to urządzenie na bazie ft2232. Soft to toolchain skonfigurowany podług tutka freddiego chopina. Wszystko ładnie działało jak trzeba do dzisiaj, gdy w którymś momencie zauważyłem, że skompilowany program...
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...
Ekhem, mój błąd ;] Przysięgam, że widziałem HardFault_Handler zamiast Reset_Handler... Co nie zmienia faktu, że spacerek do reset handlera nie powinien występować na dowolny zonk z serii hardfault, a jeszcze tym bardziej, przy wyłączonym watchdogu. Najwidoczniej, występujący tutaj fault jest jeszcze bardziej 'hard' niż standardowy hardfault. Chyba że...
No właśnie. Main de facto jest wywoływany ze startupu. Dokładniej z Reset Handlera. Żeby go mieć musisz mieć tablicę wektorów... błędne koło :) Wbrew pozorom main nigdy nie jest punktem startowym całego programu.
Witam. Ogólny opis problemu: procesor ma 2 Flashe po 512kb, oczywiście w pierwszym BOOTLOADER napisany przeze mnie, a w drugim flashu aplikacja docelowa. Aplikacja docelowa zapisuje się do Flasha prawidłowo i problem pojawia się kiedy BOOTLOADER ma wykonać skoku do adresu właściwej aplikacji. Robię to w C przez wskaźnik do funkcji. HardFault Handler...
Ok, wydaje mi się że przewalczyłem ten problem. Tzn teraz mam plik *.ld (sam zedytowałem jakiś znaleziony w bibliotekach STM32) i dodałem tablicę wektorów znajdującą się w w pliku stm32f10x_it.c. (chodzi mi o to by wykorzystać biblioteki bez przeróbek). Wszystko się teraz ładuje do Flasha z tym że jak debuguję to procesor skacze po programie. Tzn wchodzi...
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...
To samo - za mały stos. Czy tylko to może kierować program akurat w te maliny ( default handler)? (wystarczy w nim zakomentować/usunąć ze 3 linijki). Po takiej zmianie w skrypcie linkera nieużywany stos może mieć rozmiar 0. Czyżby te poniżej niniejszego opisu: "Thread mode uses process stack (PSP) and is privileged" ?
Witam Mam problem z debugowaniem układu, który opisywałem Utworzyłem nowy projekt, skonfigurowałem wszystko co trzeba, dodałem niezbędne pliki (źródła, rozbiegówka, skrypt linkera) i na posiadanej konfiguracji: - Eclipse Indigo (Build id: 20120216-1857) - OpenOCD 0.6.1 - arm-none-eabi-gcc-4_6 - JTAG-lock-pick Tiny 2 Freddiego Chopina pierwsze miganie...
Oczywiscie tak. Dodam ze uzywam programu System Workbench [syntax=c] /** ****************************************... * (at)file startup_stm32.s dedicated to STM32F103C8Tx device * (at)author Ac6 * (at)version V1.0.0 * (at)date 2018-04-06 ****************************************...
bo w przykładach wykorzystany jest GDB Hardware Debugging, a nie Zylin. Niestety - na odległość nie mam więcej pomysłów, problem na pewno da się rozwiązać, ale dokładny sposób zależy od dokładnej sytuacji. Możesz spróbować dodać na początku handlera resetu (pierwsze instrukcje po resecie) pętle, która trwałaby około sekundy - tym sposobem procesor nigdy...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
A jednak nie działa poprawnie i problem nie był w moim roztargnieniu. Sytuacja jest taka, że pierwsza transmisja kończy się przedwcześnie, kolejne są w porządku. W pierwszej ucina się trochę ponad jeden bajt na końcu, tzn. przesyła się fragment przedostatniego i potem już nie. Wysyłanie: void startUSARTDMATransferTx(uint8_t * buffer) { DMA1_Channel4->CCR...
Dziękuję Wam za cenne informacje. Ustawienie bitu UG w rejestrze EGR timera oraz ustawienie preskalera wg obliczeń poprawnie odmierza czas wg założeń. Ja również nie ustawiałem bitu UDIS w CR1 - wręcz jego ustawienie ponownie powoduje resetowanie się preskalera. Drugim moim pomysłem było ustawienie czasu timera na 1uS z generowaniem przerwania, jednak...
Kod: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Z całym szacunkiem ale jestem przeciwnego zdania. Zdarza mi się bowiem używać skoku na 'reset handler' np. przy błędach assercji. Wystarczy nie robić tak ryzykownych rzeczy, tylko po prostu zresetować układ za pomocą odpowiedniego rejestru w NVIC. Zajmie to dokładnie tyle samo pamięci, tyle że w odróżnieniu od takiego skoku na pewno będzie działać...
W załączniku projekt. Wystarczy u mnie wywołać system_init() które jest przed pętlą i procek ląduje w przeróżnych Handlerach... Aktualnie po powyższych zmianach w startup.s oraz xxx.ld nie mogę debugować kodu w startup.s (pisze brak kodu dla Reset_Handler()). Po tych zmianach również słabo działają breakpointy. Dopiero po zatrzymaniu i wznowieniu programu...
Dziękuję za odpowiedź. Zgodnie z wcześniejszymi radami, zmieniłem pojedynczy transfer na 120bajtów. Gdy transfer się kończy, wyłączam układ FT311D, ustawiając na #SS jedynkę (makro FT311_DEZAKTYWUJ). Mam jednak problem z gubieniem danych i / lub zawieszaniem się transmisji, o czym dalej... Kod wysyłający dane wygląda tak: [syntax=c]void wyslijDane (...
Witam. Jestem w trakcie pisania bootloadera po magistrali CAN dla STM32F103VE. Opieram się głównie na publikacji AN2557 zamieszczonej na stronie ST. Potrafię przesłać aplikację użytkownika po magistrali CAN do uC i zaprogramować pamięć Flash od wybranego adresu w górę. Na wstępnie odblokowuje pamięć Flash (FLASH_Unlock(); ) następnie podgrywam aplikację...
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.
Witam. Od pewnego czasu bawię się STM32. Starając się przejść na nieco wyższy poziom niż klepanie w C na AVRach a przy okazji zrozumieć 'bebechy' SMTów - nie używam bibliotek - trochę korzystam z poradnika szczywronka, trochę z przykładów Freddiego, trochę z innych rzeczy znalezionych w sieci, wydrukowanego RM i tak dalej. Mam takie pewnie trywialne...
Spróbuję w tą stronę co mówisz, ale chciałem użyć najprostszego przerwania od przycisku, żeby się tego trochę nauczyć. Tym niemniej, trudno mi zrozumieć dlaczego flaga się resetuje poza wyjściem z handlera przerwania. Może źle to rozumiem, ale jak zastawiam breakpoint na wejściu do przerwania to drgania styków chyba nie powinny mieć dla mnie większego...
Temat mocno nieaktualny, ale sprobuje odpowiedziec. Moze przyda sie, jesli ktos bedzie mial podobne symptomy. Wg mnie przerwanie przychodzi, ale brakuje procedury obslugi, czyli ISR. Wtedy wykonuje sie domyslny handler, jesli takim masz wypelniona tablice wektorow przerwan lub wystepuje HardFault jesli nie. Zalezy w czym projekt jest napisany. Przykładowy...
Witajcie, Pracuję na STM32 CL i do końca nie rozumiem zachowania się openocd. Plik mam poprawnie skompilowany (z przkładów freddiego ). W eclipsie sekcje GDB_Hardware Debugging mam ustawiona następująco: main->C/C++ Application: {wkazanie pliku: stm32_blink_led.elf} Debugger -> GDB command -> arm-none-eabi-gdb.exe Debugger...
Wydaje mi się że mnie plik wygląda okay [syntax=c] /** ****************************************... * (at)file startup_stm32f030xc.s * (at)author MCD Application Team * (at)version V2.3.0 * (at)date 27-May-2016 * (at)brief STM32F030xc/STM32F030xb devices vector table for Atollic TrueSTUDIO toolchain. * This module performs:...
Witam. Od paru godzin próbuję ujarzmić programowanie STMa (konkretniej motyl - STM32F107). Postanowiłem zaprogramować go telnetem przez OpenOCD. Ściągnąłem Keila, wrzuciłem mu bezpośrednio projekt migającej diody z www.stm32.eu (żeby było, że na pewno działa binarka :) ) odpaliłem OpenOCD Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed...
Witam, Frieddie dzięki za odpowiedź. Mam kolejny problem. W eclipsie wyskakują mi takie błędy: http://obrazki.elektroda.net/65_12610988... http://obrazki.elektroda.net/14_12610988... W projekcie używam takich plików: startup.c /***************************************... * Copyright (c) 2009...
Witam, Dopiero co zaczynam bawić się ARMami, i na początek zakupiłem sobie moduł z propoxa (STM32F103VE) wsadziłem na mała płytkę uniwersalną ze stabilizatorem 3,3V do tego programator BF30... Tak więc skonfigurowałem sobie Eclipsa + CodeSourcery + openocd wg opisu na stronce tutro.net oraz skryptów załączonych do programatora. No i udaje mi się zaprogramować...
Wywal w jasną cholerę tą bibliotekę! Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __use_two_region_memory ;wlaczamy wszystkie zegary :] ldr r0,= 0x00000557 ;r0: data ldr r1,= 0x40021000 ;r1: base addr: rcc reg ldr r2,= 0x14 ;r2: offset: rcc_ahbenr str r0,[r1,r2] ldr r0,= 0x000059fd ;data ldr r2,=...
Debugger coś mieszał. Podłączyłem ulinka i zaczelo śmigać... Ale mniejsza - teraz trafilem na znacznie gorszy error ;/ Mianowicie napisałem sobie ISRa który daje semafor funkcją xSemaphoreGiveFromISR(). Konfiguracja priorytetów 4:4. configMAX_SYSCALL_INTERRUPT_PRIORITY = 9 ISR ma priorytet 10 Grzebanie w NVICu jest w sekcji critical. Niestety funkcja...
Z tego co zdazylem sie zorientowac to nie ma mozliwosci zapisania pierwszych 4 lub 2 stron (w zaleznosci od wielkosci ich wielkosci). Wiec musialem zrobic maly bootloader i upgrade robic od 4 strony. Co wiazalo sie z 2 rzeczami (korzystam z bibliotek STMa): Ustawieniem wektora przerwan tam gdzie startuje moja aplikacja. NVIC_SetVectorTable( NVIC_VectTab_FLASH,...
Hej Freddie, tym razem to już mam poważny problem i proszę Cię o pomoc. Problem mam cały czas z przerwaniami. Nigdy mi w sumie tak naprawde nie zadziałaly na tym projekcie od stm. Przerobiłem Twoją tablice wektorów przerwań: /** \file vectors.c * \brief STM32 (STM32F101 - STM32F103) vector table and __Default_Handler() * \details STM32...
Tak na szybko to powinieneś mieć plik prawdopodobnie o nazwie startup, w którym umieszcza się wektory obsłygi przerwań wyglądający jakoś tak: [syntax=c] //Interrupt vector table __attribute__ ((section(".isr_vector"))) void (* const exceptions_vectors[])(void) = { &_estack, // The initial stack pointer reset_handler, // The reset handler unused_vector,...
Witam temat podobny do http://www.elektroda.pl/rtvforum/topic23... Lecz sprawa wygląda troszkę inaczej. Z racji tego, że atollic udostępnił wersję litte postanowiłem przesiąść się z keila. Dotychczas korzystałem z example usb hid na keila. W Atollicu skonfigurowałem sobie nowy procesor, wrzuciłem kod z uvision i po małych przeróbkach (dostosowanie...
Freddie Chopin dzięki za odpowiedź! Czy mógłbyś podzielić się fragmentami skryptu linkera z poprawnie zdefiniowanymi symbolami __heap_start i __heap_end ? Aktualnie Twój skrypt którego używam wygląda tak: [syntax=c] /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
Witajcie, Mam taki mały problemik polegający na tym, że procek w czasie debugowania po naciśnięciu resume, zamiast zatrzymać się na następnym breaku ląduje w Default_Handler.... Używam eclipsa + CodeSourcery + openocd 0.5.0 do tego programator od Frediego, chip to STM32F103Vx. openocd uruchamiam z parametrami -f interface/jtagkey.cfg -f target/stm32f1x.cfg...
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...
Wygenerowany jest bezpośrednio z CooCoxa Linkera tutaj nie ma chyba jest zaszyty w środowisku. Wersja CoIDE to: Version: 1.7.8 [syntax=c] /** ****************************************... * (at)file startup_coide.c * (at)author Coocox * (at)version V1.0 * (at)date 20/07/2010 * (at)brief M0 M3 Devices Startup code. *...
Istnieje szansa że tak - program po prostu postarał się przypisać adresom odpowiadające im rozkazy no i wyszedł taki oto mix [; Widać tutaj, że tablica wektorów raczej jest dobra, teraz podejrzyj Reset_Handler, a konkretnie adresy które ładuje on do "czyszczenia" .bss i inicjalizacji .data - wg pliku map Reset_Handler był pod adresem 0x08015128 4\/3!!
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...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. https://www.elektroda.pl/rtvforum/topic3...
Witam Wysyłam przykładowe ramki z terminala do STM32 przez driver MAX3485 i cały czas sypie mi błędami w odpowiedziach. Nie mam też pewności czy to co wysyłam z terminala do STM32 dociera bez błędów. Poniżej fragment kodu oraz zrzut ekranu. Powinienem otrzymać to co wysyłam. Czarny kolor to odebrane ramki. Proszę o pomoc http://obrazki.elektroda.pl/7456669500_1...
Witam Posiadam oryginalnego JLinka firmy Segger + sterowniki libusb-win32 1.2.2. Mam problem z połączeniem z targetem w OpenOCD. Używam mikrokontrolera STM32. Takie błędy mi wyskakują: C:\>openocd -f interface/jlink.cfg -f target/stm32.cfg Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports, read...
Witam, sprawa wygląda tak: zainstalowałem plug-in http://obrazki.elektroda.pl/4076597300_1... ale tam gdzie miał wprowadzić on jakieś zmiany nic sie nie zmieniło... http://obrazki.elektroda.pl/1272710800_1... zresztą elfy są mało ważne... zajmijmy sie hexami poszedłem za instrukcjami lecz zastanawia mnie jedno czy po...
Witam, Udało mi się uruchomić STM32 z OpenOCD przez Wigglera. Problem mi jedynie sprawia debugowanie programu w Eclipse. Program ładuję przez Makefile , wszystko wygląda ok: D:\Projekty\ARM\project>cs-make program "Programming with OPENOCD" openocd -d0 -f interface/parport.cfg -f target/stm32.cfg -c init -c "fast enable "...
Bardzo dziękuję za dotychczasową pomoc:) A jeszcze jedno pytanie czy mogę połączyć pamięć ram z aux_ram i mieć 128k zamiast 112? W taki sposób: [syntax=c] /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/ * file: STM32F4xxxG_rom.ld * last change: 2012-03-15 * * chip:...
Generalnie jest tak, że problem powoduje już alokowanie przez funkcję kiss_fftnd_alloc(). Wywołanie wygląda tak, jak powyżej: [syntax=c]config_norm = kiss_fftnd_alloc (dims_obraz, ndims, 0, 0, 0); // position x,x,_0_,x,x tell, that is FFT froward[/syntax] Jej implementacja wygląda tak: [syntax=c]kiss_fftnd_cfg kiss_fftnd_alloc(const int *dims,int ndims,int...
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...
Witam mam problem, gdy mam w makefile: "-mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math" to przy wywoływaniu funkcji w 6 argumentami typu float program wpada w hardfault od razu po wywołaniu funkcji main w reset handlerze. Gdy natomiast tej linijki nie mam to działa ok, tyle że za wolno. Może ktoś podpowiedzieć z czego to wynika? Dodam, że bazuję na...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Po każdorazowym zaprogramowaniu układu, aby zobaczyć efekt działania programu muszę wypiąć i ponownie wpiąć kabel USB . To zostało już poruszone na liście OpenOCD, jest to przypuszczalnie zachowanie specyficzne dla ST-LINK: http://sourceforge.net/mailarchive/forum... Generalnie po...
Poczytałem manuala do JTAga i spróbowałem wgrać kod przez OCD. Wywołuje go z parametrami: -f scripts/interface/ftdi/jtag-lock-pick_ti... -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst; init; reset init; flash write_image erase C:/ARM/project_eclipse/stm32_timer/out/s... reset run; shutdown;" Otrzymuje błędy:...
Tak wygląda skrypt linkera po poprawach [syntax=c] /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/ * file: STM32F4xxxG_rom.ld * last change: 2012-03-15 * * chip: STM32F4xxxG * compiler: arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 * 20110921 (release)...
Działam na razie z kodem od ST. Po głębszej analizie (zbytnio na USB to ja się nie znam - jeszcze (; ) okazało się, że modemy GSM z CDC mają mało wspólnego, bo praktycznie wszystkie z góry na dół są klasy "vendor specific". Na szczęście używanie tego z poziomu hosta USB jest dosyć proste, podobne do CDC (które zresztą też jest proste). Napisałem więc...
Program zachowuje się gdyby chciał a nie mógł skorzystać z SysTick_Handler. Najpierw kod: http://obrazki.elektroda.pl/6717645500_1... Przy zmniejszeniu ilości taktów na przerwanie w systicku i debugowaniu po kroku przerwanie w ogóle nie występuje. A gdy przy w/w kodzie ma być wywołane przerwane (via step to line) program wiesza się w...
Witam, w końcu udało się , komputer widzi urządzenie jako HID, robiłem już pierwsze testy wysyłania i odbierania wiadomości i wszystko jest Ok, Stało się tak przez podmienienie startup oraz linkera. Trochę pochodziłem po necie w poszukiwaniu i znalazłem całkiem ciekawą stronę : http://gandalf.arubi.uni-kl.de/avr_proje...
Jakieś dziwne zjawisko. Wszystko działało tz. w pętli pytałem urządzenie po modbusie a teraz jakieś dziwnie zachowanie . Tak jakby zawieszony procesor nic się nie wykonuje w pętli . Co może być przyczyną ? Całość poniżej : [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h"...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
Witajcie. Dalej mam podobny problem. Używam STM32F407. Posiadam staram się obłużyć 3 różne USARTY (USART1, USART3 i UART4) wszystkie pracują w trybie asynchronicznym. Pod te usarty podpięte są następujące urządzenia: -USART1 - GPS z protokołem NMEA wysyłający dane co 1 sekundę -USART3 - datalink łączący płytkę z STMem z komputerem. -UART4 - akcelerometr...
Pokaż cały kod - inicjowanie, main, Reset_Handler i tablicę adresów wyjątków. Im dłużej patrzę w te kawałki, które podsyłasz, tym więcej mam podejrzeń.
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...
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure); A w to miejsce dałem: NVIC->ISER...
Hej, Napisałem (chyba) najprostszy program w assemblerze który ma szanse zadziałać (no dobra prostsze było by ustawienie jednego rejestru - lecz nie w tym rzecz ;) ). Po skompilowaniu, zlinkowaniu i przekonwertowaniu na format binarny, wgrywam na uC i dzieją się dziwne rzeczy. Otóż, program: arm-none-eabi-as -mcpu=cortex-m3 -mthumb -mapcs-32 -gstabs...
Bawię się na KA-NUCLEO F11. sprintf oraz funkcja uart_read_line(&huart2, buffer, 1024) wywołuje wyjątek HardFault. Znalazłem podobny temat, związany za liczbami zmiennoprzecinkowymi ale tam program nie "zawieszał się". Przykłady kodów zaczerpnąłem z https://stm32.eu/2017/11/28/3-stm32cube-... Fragment kodu [syntax=c] char buffer[1024];...
Program się tam nie zaczyna. Tam programator ładuje Twoją binarke i tam zaczyna się tablica wektorów. Ale zdecydowanie nie program :) Taki trochę skrót myślowy ;) Jeżeli chcesz tablica wektorów była zgodna z wpisami w elf-ie to musisz (przykład ze startupu STM-a gdzie tablica jest w pliku asemblerowym) Skrypt linkera: /* ENTRY(Reset_Handler)...
Czołem! Chyba znowu utknąłem w bojach z STM32F2. Wysyłam taką komendę: openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c "init; reset halt; flash write_image erase out/test.hex; reset run; shutdown" i dostaję odpowiedź: Open On-Chip Debugger 0.5.0 (2011-12-03-10:15) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Jechałem debugerem i nie wchodziło w SysTick_Handler... Kod poniżej: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 72000000...
Witam, próbuję uruchomić przetwornik ADC1 wraz z transferem przez DMA i przerwaniem od zakończenia transferu (transfer complete) Tak, żebym w przerwaniu mógł sobie obliczać wartość średnią z napięcia na wejściu. Samo ADC z DMA bez przerwania od DMA działa, ale gdy dorzucam linijkę [syntax=c]DMA_ITConfig(DMA2_Stream0, DMA_IT_TC, ENABLE);[/syntax] czyli,...
Nie wiem o co chodzi, support STM mi powiedział, żebym wgrał kod do ramu oraz wektor przerwań. Cały problem od początku: Zadanie programu jest następujące: ze sterownika sczytuję wartości enkoderów i zapisuję je do pamięci flash. (powinno to być wykonywane timerem co 10ms). Następnie odczytuję te wartości z flasha w celu odtworzenia ruchu i odpowiednie...
0. Dla USER BUTTON nie włączaj pull-up'a ponieważ ten przycisk jest podłączony do zasilania i ma dołączony pull-down. To co obserwujesz to pewnie efekt stale wciśniętego przycisku. Vide schemat MB1035. 1. Nie wiem co jest na PB8, ale konfigurujesz to do pracy z licznikiem TIM4, CH3. Zgaduję, że to ta dioda migająca z f (15..20)Hz 2. PE9 i PE12 konfigurujesz...
Cześć, walczę od jakiegoś czasu z resetami mikrokontrolera. Generalnie historia jest ciekawa, bo mam sterownik, w którym siedzi STM32F103, mam poprzedni bootloader i firmware, na którym resetów nie ma, dodałem trochę swoich zmian, posprzątałem kilka rzeczy, które wypadły z użytku i coś zaczęło się sypać :-/ Na moje oko nie widzę z czym może być problem,...
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ę;).
Może za krótko czekasz po włączeniu zasilania i próbujesz komunikować się/inicjalizować zewnętrzne urządzenie zanim zdąży zakończyć sekwencję POR. Mogę tylko gdybać bo nie wiem co masz do tego uC podłączone, ale widać że jakieś magistrale szeregowe masz wyprowadzone. No ale koniec sekwencji POR oznacza wykonanie kodu z Reset Handler ? [syntax=c]int...
No wiec tak, te dwie rzeczy są takie same w obu twoich przykładach i ich nie zmieniałem: __main_stack_size = 0; __process_stack_size = 1024; Przedstawiam poniżej to co teraz mam w moim projekcie: STM32F103RC_rom.ld [syntax=c]/*****************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
Witam wszystkich serdecznie! Potrzebuję pomocy z pewnym zadaniem z systemów wbudowanych, 4 rok studiów. Programuję w języku C środowisku CooCox CoIDE procesor STM32F103ZET6 użyty w module HY-RedBull_V3 posiadający 3,5-calowy ekran dotykowy TFT LCD HY35A (kontroler LCD SSD1963, kontroler ekranu dotykowego ADS7843 lub XPT2046), który ma wykonać poniższe...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora używałem poprzez naciśnięcie "build". W ustawieniach...
Witam. Po ogarnięciu portów i/o chciałem przejść do konwersji ADC. Początkowo zakładam, że nie korzystam z przerwań, nie korzystam z DMA. Screeny z Cube: http://obrazki.elektroda.pl/6506556500_1... http://obrazki.elektroda.pl/5974943000_1... http://obrazki.elektroda.pl/2033015600_1... Plik main: /** ****************************************...
Czasami ląduje w tym samym reset handler po kilku kliknięciach "step one line" a czasami po kilkudziesięciu kliknięciach. Sprawdziłem jeszcze coś takiego : while(1) { RCC->APB1ENR |= 1 << 11; //Załączam zegar do WWDG. if(RCC->APB1ENR & 0x800) //TAK - zegar załączony - dioda PB15 się zaświeca GPIOB->BSRR = 0x8000; RCC->APB1RSTR...
Wiesza się w tym samym miejscu co w moim programie - po włączeniu przerwania NVIC_EnableIRQ. W stosunku do oryginału zmieniłem tylko port GPIO oraz dodałem obsługę TIM3 i mryganie diodą na podstawie TIM3->CNT by wiedzieć czy licznik rzeczywiście działa. W skrypcie linkera ustawiłem oba stosy oraz tak jak sugerowałeś zmniejszyłem pamięć o połowę -...
Zmieniłem : 2. change The initial stack pointer in the vector table: (void *)&pulStack[STACK_SIZE-1]... to (void (*)(void))((... long)pulStack + sizeof(pulStack)), w startup_stm32f10x_md_vl.c Dalej to samo. [syntax=c]/** ****************************************...
Gdzie tablca jest zdefiniowana zależy od toolchaina. Możesz mieć np coś takiego w pliku vectors..... [syntax=c]__attribute__ ((section(".isr_vector"),used)) pHandler __isr_vectors[] = { // Cortex-M Core Handlers (pHandler) &_estack, // The initial stack pointer Reset_Handler, // The reset handler NMI_Handler, // The NMI handler HardFault_Handler, //...
Witam, program w RAM uruchamiam tylko za pomocą debuggera. Robię dużo testów i nie chcę cały czas przeładowywać flash Ten HardFault następuje dopiero przy pierwszym użyciu new przez Ciebie, czy może np. przed wejściem do main() albo jeszcze gdzieś indziej - "wewnątrz" systemu? Jak nie używam new (w ramie) to wszystko działa, jak gdzieś w kodzie dodam...
Koniecznie i niezależnie od aplikacji, i jest to zarówno ogólna zasada (żeby zmniejstzyć szansę na zgubienie kolejnego przerwania) jak i specyfika STM32 (z powodu opóźnienia w samym kasowaniu i możliwości błędnego powtórnego wejścia w obsługę).
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...
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 Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np. brakuje jakiejś flagi) i podczas debugowania nic ciekawego...
Nie da rady (brak połączenia do sprzętowego RESET) - mogę najwyżej "soft_reset_halt". Da radę bez sprzętowego połączenia reset. Jeśli nie da, to przestań grzebać w skryptach których nie rozumiesz i zmieniać domyślne opcje. Zresztą - tak naprawdę istotne jest tylko samo "halt". Generalnie widzę że niektórzy nigdy się nie zmienią i naprawdę lubią sobie...
Domyślne, nie zmieniałem niczego. Skrypt linkera: [syntax=asm] /* Entry Point */ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20004000; /* end of 16K RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0; /* required amount of heap */ _Min_Stack_Size = 0x80; /* required amount of...
Masz racje bo to amatorski projekt. Funkcja send_uintUSART służy do wysyłania znaków: Dodano po 50 Bo w byte2 nie ma nic albo same zera. Dodano po 55 A powinno być: (z realterm, Display-ASCII): 026788 235178 018078 018078 000000 000000 000012 043739 933676 Dodano po 1 i na końcu CR
Witam, muszę zaimplementować dekoder protokołu RC-5 z pilotów na podczerwień. Zamiast pisać wszystko od początku, postanowiłem skorzystać z gotowego kodu przeznaczonego dla jednej z płytek ewaluacyjnych STM'a - oto paczka z kodem biblioteki i przykładowym projektem http://www.st.com/internet/com/SOFTWARE_...
Ja próbowałem wyłączać zegar, resetować rejestry i nic się nie udało standardowymi metodami. Więc napisałem protezę WG: - SysTick z najniższym priorytetem, - funkcja typu: void COMMON_softwareWatchdogReload()&... g_watchdogCount = 0; } - w przerwaniu od SysTick jest coś takiego: if(g_watchdogCount>WATCHDOG_RELOA...
1. Rozumiem że celowo startujesz transmisję 1000 razy na sekundę - o ile nie zminiłeś ustawień systicka? 2. Dlaczego nie właczysz przerwania funkcjami CMSISowym NVIC_EnableIRQ(I2C1_EV_IRQn); Te funkcje w HALu są mi nieznane (nigdy nie korzstałem) 3. Czy masz zdefiniowany wektor w tablicy? Zależy jaki masz startup w toolchainie (może to oczywiście być...
No coś racji masz z tymi od ST... :) Zajmę się tą stertą jak rozwiążę obecny problem... Coś nie tak, bo mi się to nie chce debuggować (Twój JTAG, reszta jak widać): [syntax=bash]Open On-Chip Debugger 0.10.0 Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : FTDI SWD mode enabled swd adapter speed: 2000 kHz...
Pojawił się kolejny mały już problem ale nie wiem jak go wyeliminować. Układ programuje mi się dobrze ale muszę ręcznie go restartować (stm32f4...). Wcześniej dla LPC2478 skrypt programujący miał formę: [syntax=actionscript] -f interface/jtagkey.cfg -f target/lpc2478.cfg -c "reset_config trst_and_srst separate;arm7_9 fast_memory_access enable; arm7_9...
Skompilowałem nieco przerobiony (usunąłem konfigurację PLL, itp..) pod mój procesor (STM32F100RB) przykład z twojej strony. Ze standardowym skryptem linkera działa, po zmianie TYLKO skryptu linkera na przerobiony pod RAM (kod poniżej) niestety nie: [syntax=asm] /***************************************... * author:...
Aktualnie najważniejsze pliki programu wyglądają następująco: main.c: [syntax=c]#include "main.h" //definicje stalych #define LINENUM 0x15 #define FONTSIZE Font12x12 #define LED1 GPIO_Pin_13 #define LED2 GPIO_Pin_14 #define PRZYCISK GPIO_Pin_0 //zmienne - definicje void Delay(__IO uint32_t time); extern __IO uint32_t TimmingDelay; unsigned short regVal;...
reset handler reset stm32 stm32 reset
skoda cofania pilot bramy płytka przekrój transformatora
galaxy dimension galaxy dimension
Ciśnienie w kolektorze dolotowym Ford Transit Connect MK1 1.8DI na biegu jałowym Zmiana numeru VIN w sterowniku silnika - aspekty prawne i techniczne