1. Pokaż jak wygląda wywołanie openocd. Jak masz płytkę discovery to spróbuj po prostu z linii komend wywołać: [syntax=bash] openocd -f board/stm32f0discovery.cfg [/syntax] 2. Prawdopodobnie rozbiegówka oraz SystemInit zajmują ten 1KB pamięci FLASH. Wywołaj polecenie: [syntax=bash] nm --size-sort plik.elf [/syntax] aby zobaczyć wszystkie symbole w Twoim...
SystemInit jest w dołączonym do projektu pliku ...system...c, a to, co w niej jest, zależy od tego, ile miesięcy temu wyszedł pakiet do danej serii. Nowsze wersje SystemInit nie robią prawie nic, starsze dość sporo. Zawsze możesz zmienić nazwę oryginalnej prcedur i napisać własną SystemInit(); Obsługa LCD w przerwaniu timera ma m.in. tę zaletę, że jest...
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 &=...
Twój artykuł o ARM toolchain czytałem. Chętnie bym nawet użył tego(zamiast ograniczonego truestudio), ale niestety OpenOCD nie obsługuje ST-Linka... Chyba że jest jakaś alternatywa dla tego rozwiązania? [EDIT] Utworzyłem projekt w Keilu, dodałem startup code, pustą funkcję SystemInit. Teraz wszystko działa "normalnie", tj predkosc zgodna z wyliczona...
Piszę w System Workbench for STM32 . Faktycznie w pliku system_stm32f10x.c usunięcie ciała funkcji SystemInit pomogło. Musze zainteresować się kolegi startupem. Oto jej ciało: [syntax=c] /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset SW,SWS, HPRE, PPRE1,...
Cześć, nadszedł czas zmierzyć się z linkerem i innymi cudami ;) Wybaczcie, jeśli będę pisał głupoty, dopiero próbuję to ogarnąć :D Czy możecie podpowiedzieć jak uwzględnić w Eclipse dwa warianty kompilacji i linkowania: 1. program w trybie DEBUG, który startuje klasycznie z 0x08000000 2. program w trybie RELEASE, który ma startować z 0x08002000 Odnośnie...
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:...
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...
Super, jakoś udało mi się Eclipsa uruchomić fakt że w innej wersji Version: Mars Release (4.5.0) ale bez problemu spiąłem to. Przerzuciłem kod i co się okazało. Ruszył. Ale do szczęścia trochę brakuje, okazuje się, że nie rozpoznaje USB. Tzn ten sam dokładnie kod śmiga na Keilu, a na eclipse już nie. definicje: DEBUG USE_FULL_ASSERT TRACE OS_USE_TRACE_SEMIHOSTING_DEBUG...
Witam Hmm, walczę od jakiegoś czasu z uruchomieniem toolchaina Eclipse + CodeSourcery itd dla STM32 (dokładnie STM32F107VCT) i mam pewien problem. Przejrzałem kilka różnych projektów, w których podpatrywałem pliki skryptowe linkera (*.ld) jak i pliki makefile. Na razie kompiluje mi się gdy przykładowo zrobię plik main.c z takim kodem: STM32F10x_StdPeriph_Lib_V3.5.0...
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...
W kodzie przykładu zakomentowałeś wywołanie SystemInit. Zapewne używasz SystemInit wziętego z Twojego środowiska, która to proceduira programuje PLL i ustawia częstotliwość zegara (zgaduję że) na 24 MHz. Zakomentuj SystemInit, który masz, odkomentuj ten pusty i wszystko będzie OK.
SPI zawsze coś "zwraca", niezależnie od tego, czy ktoś do niego nadaje. Ten temat jest tu wałkowany co 2 miesiące. Transmisja SPI jest ZAWSZE dwukierunkowa, nawet wtedy, gdy nie jest. ;) SystemInit jest wołany przez asemblerowy kod startowy zaraz po resecie uC, zanim zostanie zawołany main. Nie wierzysz - to sprawdź, co jest pod ResetHandler w pliku...
Zwykle funkcja SystemInit jest wywoływana przez moduł startowy przed wywołaniem main().
Nie modyfikowałem jej, więc nie wiem. Gdzie można ją podejrzeć? edit: Ok, znalazłem. Kiedyś grzebałem w cudzym projekcie i widziałem fajny wizzard. Czy on przypadkiem nie odnosi się do funkcji SystemInit?
W F0 bufor prefetch jest domyślnie wyłączony, więc wypada go włączyć, np. w SystemInit. Również w SystemInit włączam PLL, a przełączam zegar już w main - tak jest szybciej.
Może wypada zacząć od tego, co to jest CMSIS. W zależności od fantazji może to być albo tylko minimalna obsługa procesora, albo również biblioteka obsługi peryferiów. Ta minimalna obsługa procesora zawiera pliki nagłówkowe, definiujące wszystkie zasoby mikrokontrolera oraz pliki definiujące zasoby rdzenia i podstawowe operacje na nich. Ponadto mamy...
Z tego co wymieniłeś wszystko jest OK (zakładam, że 3. to wskaźnik na funkcję, a nie jakieś dziwne rzutowanie). Ja bym się jednak początkowo skupił na zainicjalizowaniu w main() wszystkiego co inicjalizuje Keil w startupie, czyli po prostu wywołaniem SystemInit() - jeśli to zrobiłeś to następnym krokiem będzie zastanowienie się, czemu kod w Keilu generuje...
Używam sobie takiej chińskiej płytki: http://obrazki.elektroda.pl/8610848000_1... aby ten mikrokontroler zadziałał z zewnętrzną pamięcią RAM jako pamięcią danych programu?
Witam, Jestem niedoświadczonym użytkownikiem więc proszę o wyrozumiałość. Podobnie jak kolega chciałbym aby mój STM32 discovery Examples/GPIOToggle i chciałbym go tak zmodyfikować żeby zaczął rozmawiać po I2C, stworzyłem plik I2C.c oraz I2C.h. Dodam ze używam Keil'a Dostałem od kolegi przykładowy kod który powinien działać ale w praktyce jest oczywiście...
Może Wam ten nieszczęsny ukryty SystemInit() psuje krwi w domyślnym startupie jeśli używacie takich środowisk jak Atollic czy inne dziwne IDE :P
Volatile i nigdzie nie używana, system_init() wszystko pozmieniane jak trzeba. Uarty pracują poprawnie, RTC teoretycznie też.
Spróbuj takiego kodu. Niestety nie sprawdzałem go bo nie mogę skompilować Twojego kodu. [syntax=c] #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "GLCD.h" #include "stdio.h" #define TP_INT_IN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6) void TPintInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Jakie na przykład ważne rzeczy tam się znajdują, bo usunąłem wszystko z tego pliku, zostawiłem tylko pustą funkcje System_Init() i taki prosty program migający diodą działa.
Dzięki m.ki . Zmieniłem w pliku core_cm3.c "=r" na "=&r" w funkcjach, które są na podane na stronie: http://www.freddiechopin.info/pl/artykul... W repozytorium zazwyczaj zaznaczam tylko "CMSIS BOOT" Marek_Skalski zmieniasz coś w tych plikach? Pewnie funkcję SystemInit ?
Witam Rozpoczynam zabawe z STM32 i napotkalem problem. Chodzi o uruchomienie USART2 i wyslanie znaku na terminal do PC. Rx i Tx mam podpiete do portu A PA2->Tx i PA3->Rx. Siedze z dokumentacja procesora ale jakos nie moge znalesc bledu w swoim kodzie. Moze co podpowiecie. Kompilator AtolicTruestudio Petla główna: [syntax=c] int main(void) { int...
No ubaw jest pierwszej klasy... Wrzucisz w końcu tyle kodu, żeby była w nim KOMPLETNA inicjalizacja wszystkiego? Przecież nikt tutaj nie wie, co jest w Twojej funkcji HW_Init_GPIO(), ani w pozostałych (System_Init()?), które mogą coś jednak zmieniać w SPI2 czy istotnych GPIO. A jeśli uważasz, że nic nie zmieniają, to zakomentuj je i potem wywal z tego...
To po co w SystemInit() od ST jest możliwość zmiany SCB->VTOR? Funkcja ta jest odpalana w startupie. https://my.st.com/public/STe2ecommunitie...
A nie masz tam przypadkiem przed main() funkcji SystemInit() ze SPLa, która "coś" robi z zegarem? P.S. Ta deklaracja przerwania przed main() naprawdę jest zbędna... Czemu to niby miałoby służyć? P.S.2 - PSC też powinno być 499. 4\/3!!
OK błąd znaleziony,-d przy parametrach jest zbędne dla jasności: # C++ definitions CXX_DEFS = USE_STDPERIPH_DRIVER CXX_DEFS += HSE_VALUE=8000000 # C definitions C_DEFS = USE_STDPERIPH_DRIVER C_DEFS += HSE_VALUE=8000000 C_DEFS += SystemInit=low_level_init_1 Dziękuje bardzo za pomoc.
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...
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...
(at)Freddie no fakt, trzeba by często w to trafiać. Sprawdzę to jeszcze u siebie jak wrócę z roboty, teraz nie mam STMa pod ręką. A mimo wszystko nalegam, aby Autor pokazał kod asemblerowy programu. Dodano po 2 Data race o którym piszesz faktycznie tam jest - wczytałem się wreszcie porządnie if((zapalona) && (TIM9->CNT > 5000) ) pomaga...
Aha:!::?: A coś dokładniej można poprosić? Zainstalowałem doxygena, coś tam produkuje, jeszcze nie to czego bym oczekiwał. Co mu dać dokładnie do obróbki? Potrzebuję przede wszystkim opisu dostępu do poszczególnych rejestrów. Przykład: GPIOB->BSRR=0x0001; Gdzie znajdę kompletny opis dla rdzenia i peryferiów? I jeszcze funkcji typu system_init(); Bez...
To ja pisałem o pętli for, ale walnąłem innego "babola" i poszedł wpis do kosza :) Czy pętla for się wykonuje należy podejrzeć w pliku .list. Pisałem też o tym, czy jesteś pewien, że startup w okrojonej wersji masz poprawny, że w ogóle procesor startuje, system_init() wektory przerwań itd. Ja standardowo "golę" HALa, wygenerowanego przez CubeIDE, gdy...
W ogóle ciekawi mnie, po co chcesz znać ten układ aż tak dobrze ? Może kiedyś będę chciał zaprojektować jakiś swój układ więc warto wiedzieć dokładnie jak one działają ;) Trochę jak z religią uwierz, że Bóg jest i już - bo tak jest napisane i wszyscy to wiedzą. W kwestii "jednym poleceniem Init": Fragment ze strony: w linii C_DEFS dodatkowo dopisujemy...
Cześć, Korzystam z płytki STM32VLDiscovery (z programatorem ST-LINK), Keil uVision. Po raz kolejny wziąłem się za ARMy. I wszystko pięknie szło do czasu, aż zamarzyłem o fatfs. Bibliotekę dołączyłem, przepisałem kod tak, żeby nie korzystał z biblioteki stm32 standard peripherials. Uruchomiłem debugowanie - 17KB ma kod i... właśnie - w debugerze jak...
Cześć, Ponieważ pojawiła się prośba o możliwość udostępnienia uproszczonej wersji na inny uC to przedstawię krótką instrukcję jak dostosować projekt do potrzeb. Generalnie w obecnej wersji obsługiwane są dwie rodziny procesorów czyli STM32F4xx i STM32H7xx - prawdopodobnie nie powinno być większych problemów z innymi podobnymi układami STM natomiast...
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...
Wygląda to tak, nie posiadam takiej wiedzy żeby tu coś samemu zmieniać może powiesz mi co jest nie tak :) [syntax=c] .syntax unified .cpu cortex-m7 .fpu softvfp .thumb .global g_pfnVectors .global Default_Handler /* start address for the initialization values of the .data section. defined in linker script */ .word _sidata /* start address for the .data...
Dzień dobry, Sprawa wygląda tak, że chciałem zrobić zadanie 8.4 z poradnika na temat stm32. Wymodziłem sobie takie coś: Open On-Chip Debugger 0.9.0-dev-00186-g30203b3 (2014-11-09-22:49) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : The selected transport took over low-level target control....
Pobierz sobie STM32CUBEMx. Tam możesz sobie stworzyć szablon, wygeneruj projekt do SW4STM32 (znajdziesz w ustawieniach projektu). Pobierz System Workbench for STM32, zaimportuj projekt i wszystko będzie śmigało... Będziesz miał kod, który działa na najnowszych bibliotekach HAL, wszystko jasno i przejrzyście opisane, łatwy dostęp do konfiguracji peryferiów...
Witam, na początek to niech kolega zerknie na płytkę i nie jest tam zainstalowany 25MHz tylko 8MHz rezonator kwarcowy. Druga sprawa, po nazwie pliku domyślam się, że to CoCoox. Jeśli tak to musisz zmodyfikować dwa pliki startup aby przed main wywołać plik konfiguracji zegarów (SystemInit czy coś takiego). Dodatkowo musisz zmodyfikować obliczenia pll...
Cześć, Potrzebuję wykonać komunikację w 2 strony pomiędzy komputerem PC i mikrokontrolerem przez ethernet. Sprzętowo wybrałem stm32F103 oraz moduł z układem ECN28j60. Układ nie będzie włączony do żadnej sieci, będzie to połączenie punkt-punkt. Znalazłem biblioteki, dostosowałem pod swój mikrokontroler. https://github.com/xaionaro/stm32-enc28j... Generalnie...
HSE_VALUE jest potrzebne funkcji SystemInit, poza tym w pliku "stm32xxx.h" masz coś takiego [syntax=c] #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #endif /* HSE_VALUE */ [/syntax] najlepiej dodaj do opcji kompilacji coś takiego "-DHSE_VALUE=(tu częstotliwość kwarcu w Hz"
(at)sulfur Dopiero teraz znalazłem czas żeby dalej zająć się CANem. Ustawiłem tak jak mówiłeś i dalej nic. Nie mam pomysłu co sprawdzić . Tak jak wcześniej wspomniałem mam przejściówkę USB/CAN za pomocą której próbuję przetestować CANa. Program do obsługi tej przejściówki w ustawieniach transmisji wygląda następująco : http://obrazki.elektroda.pl/8802608800_1...
Jeśli chcesz mieć periodyczne przerwanie, to ustaw stosowny okres timera i użyj przerwania końca okresu. Czy zablokowałeś wywołanie SystemInit lub wyedytowałeś ustawenia? Jeśli nie, to zapewne masz zegar 72 MHz, co by wiele wyjaśniało.
Witam Dopiero zaczynam swoją przygodę z mikroprocesorami z rodziny ARM. Posiadam moduł prototypowy: STM32 LCD3.2" ARM Cortex, z procesorem: STM32F103VCT6 . Korzystam ze środowiska Kyle uVison4. Problem pojawił się przy próbie uruchomienia magistrali I2C. Obecnie mam 3 ATMEGI połączone ze sobą po I2C i między nimi komunikacja przebiega prawidłowo. W...
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...
Witam problem jest następujący, inicjalizacja SPI przechodzi (wydaje mi się że poprawnie). Niżej podam wartości rejestrów SPI3. Problem polega na tym że nie mogę nic wpisać do DR w interfejsie SPI, nie mam jeszcze nic podpiętego do SPI ale mam zamiar przetestować całość na modułach MMcc1100 i płytce ewaluacyjnej z STM32 na pokładzie (stm32-p107 z OLIMEXu)....
stm32 projekty stm32 f103rb ssd1963 stm32
denon soundbar gesty dłoni odbiornik czułość
Opóźnienie zadziałania presostatu spalin – przyczyny, diagnostyka, naprawa kotłów gazowych Mercedes Vito 447 – wolno rosnąca temperatura po wymianie termostatu, spadki na autostradzie