witam szanownych forumowiczów, Od jakiegoś czasu próbuje skonfigurować środowisko eclipse aby współpracował z JTAG lock pick według poradnika znajdującego się na stronie Freddie Chopin. zestaw ewaluacyjny z procesorem STM32103vct6 zakupiłem wszystko w komplecie link Próbowałem już chyba wszystkich...
Pewnie się "o dziwo kompiluje", bo nie masz dołączonego nagłówka stdio.h stdio.h jest dołączony, do funkcji sprintf wykorzystuję dołączony przez Atollica plik "tiny_printf.c". Tak czy siak: - za mały stos - stos nie wyrównany do 8 - za mało pamięci na stertę to trzy przyczyny które odpowiadają...
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_APB2PeriphClo... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_...
Jak wiadomo, albo i nie, Cortex-M3 (czyli STM32) nie obsługuje w ogóle trybu ARM, a jedynie Thumb To się zgadza - instrukcja blx wzbudziła moją podejrzliwość... Jeśli ostatni bit adresu (czyli twojego rejestru R3) jest zapalony, to rdzeń skoczy pod adres ignorując ten bit (traktując go jako zero,...
STM32 Primer2 Zawsze bawiło mnie czepianie się Windowsa Mnie bawi wiele rzeczy, ale staram się nie epatować tym innych, bo może nie mają takiego jak ja poczucia humoru ;> Czepianie się konkretnego OS nie jest w żaden sposób powiązane z używaniem komputera ani tym bardziej z udawaniem kogokolwiek. EOT...
Hmmm. Wgrałem oryginalny program z Stm32 MassStorage. vectors.c startup.S i .ld o kolegi Freddie Chopin. Mam obecnie dwa przerwania z Usb: USB_HP_CAN1_TX_IRQHandler i USB_LP_CAN1_RX0_IRQHandler ( w vectors.c było bez jedynek kolo CAN ). Zrobiłem takie coś, orginalny program void USB_HP_CAN1_TX_IRQHandler(void) ...
W dziale mikrokontrolery ARM znajdziecie bezpłatny (do osobistego użytku edukacyjnego) poradnik STM32 przygotowany przez szczywronek . Materiał dostępny jest w temacie: techekspert: Do kogo kierowany jest poradnik, jakie podstawy powinien mieć opanowane czytelnik? Czy znajomość określonej rodziny...
1. Jak to jest jedna sztuka czy niewielka ilość to spokojnie możesz olać sprawę, zastosować rezystory 1% (które są minimalnie droższe od zwykłych) i kalibrować wejścia programowo (ustalić dokładne miejsce zera i wzmocnienie, przy czym pamiętaj, że powinieneś mieć zakres z zapasem czyli zamiast +/-10V...
Popatrz na tę linijkę: if (LED_bb_B = 1) Prawdopodobnie tu jest blad, oczywiscie ma byc "==", sprawdze dopiero jutro bo nie mam teraz dostepu do plytki i dam znac. Te makra są tak zrobione, że nie mogą dotyczyć tej samej połówki portu, bo nowa wartość całkowicie zastępuje starą....
Chyba że ktoś mi pomoże Eclpise skonfigurować to będę wdzięczny 4\/3!! Chodzi mi pliki z książki bo resztę Chopin to wiem od cb jak połączy ARM + Eclipse :-) To co w końcu jest lepsze dla amatora OCDLINK czy St Link ?
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);...
Przynajmniej ja to tak rozumiem (; Chyba nie do końca bo np w 303 (akurat mam RM na ekranie) An on going Flash memory operation will not block the CPU as long as the CPU does not access the Flash memory. Za to odwołanie się do Flash w czasie zapisu/kasowania powoduje zawieszenie magistrali...
Faktycznie! Jeśli nie przekroczę 4 breakpointów to nic się złego nie dzieje. W kail-u wyświetla się okienko informujące że nie można dodać kolejnego breakpointu (max to 5). Dzięki Freddie! Mam jeszcze jedno pytanie. Chciałem użyć w projekcie kontenerów z biblioteki standardowej C++ (konkretnie...
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...
Witam. Poskładałem Jtaga ze strony Freediego Chopina. Niestety nie mogę zaprogramować targeta(płytka HY-Mini z STM32F103VCT6). Wszystko jest konfigurowane wg tutoriala. To pokazuje mi konsola eclipse: Open On-Chip Debugger 0.5.0 (2011-08-09-23:26) Licensed under GNU GPL v2 For...
Jeśli idziesz na studia podyplomowe, to chyba zadałeś sobie wcześniej trud sprawdzenia np. programu studiów i sylabusuów z głównych przedmiotów? Jeśli tak, to skąd rozczarowanie? Można napisać "widziały gały co brały" :) No niestety program nie jest szczegółowy. Zapewne zamast pójścia na studia...
Pracuję w środowisku System Workbench for STM32. Po dłuższej przerwie pobrałem program startowy z strony kolegi Freddie Chopin (nie chcę działać SPL ani HAL) więc to wydaję się najlepszą opcją. Mam problem przy imporcie projektu, kompilator nie widzi nawet stdint.h : Więc postanowiłem stworzyć...
W STM32 domyślnie podczas zatrzymania rdzenia timery pracują, więc podczas twojej pracy krokowej zgłaszane są setki kolejnych przerwań. 4\/3!! No nic może uda się mi to wieczorkiem opanować to dam znać. W LPC...nie było tego problemu....ale z drugiej strony dokumentacja do STM32 ma dużo więcej...
Witam! Próbuję zaprogramować mikrokontroler STM32F107, aby współpracował z siecią. Najpierw chciałbym skompilować kod z przykładowym projektem dostarczonym do STM32 jako EthernetDriver, czyli stm32_eth_lib. Przykład napisany jest z użyciem stosu TCP/IP uIP. Całość kompiluje się bez żadnych błędów...
Ah, czyli problem z kategorii "sztuczne" - trzeba coś zrobić, musi być super-ultra-szybkie, ale użyć należy układów które nie są super-ultra-szybkie w tym co trzeba zrobić. Your call... Zrozum, że żaden mikrokontroler nie jest przystosowany do machania pinami z wysokimi częstotliwościami, a już na pewno...
Witam Może używasz innego skryptu linkera lub StarUp dla Keil i Ecpilse. W main.c masz dwa vTickTask1 i vTickTask2. Zobacz czy to ci działa (cały Setup procesora dałem od kolegi Freddie Chopin) + Rtos611 (ostatni ze strony).
A nie jest przypadkiem tak, że sygnały są zbyt szybkie dla analizatora? W końcu cała transmisja odbywa się niby w momencie gdy CS jest w stanie niskim. Jak długo trwają te momenty? 4\/3!! Nie wierze ! :D rzeczywiście , po ustawieniu Sampling Rate na 1MHz widać jak ładnie idą sobie dane : ...
Dziwi mnie to, bo Arduino bardzo dobrze się przyjęło na polskich uczelniach, wśród amatorów, a nawet profesjonalistów. Arduino + profesjonaliści? Ci którzy wcześniej używali BASCOMa czy niby jacy? Ktoś kto ładnych paręnaście lat programował w C, jak pojawiło się Arduino to w swoich konstrukcjach...
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...
Jak zaczynałem "montowanie" STM32 do "starego" Eclipsa to w "C/C++ General > Paths and Symbols > Include" były jakieś 3 ścieżki, ale teraz znikły i zostały tylko dla WinAVR. Możecie mi je przypomnieć ? No bo właśnie usunąłeś PATH z Eclipse'a i teraz w tamtejszym PATH nie ma nic. Proponuję usunąć...
Mógłbym prosić o przykładowy fragment kodu realizujące w/w zadania? :) Trudno jest dac kod przykladowy - poćwicz trochę z przerwaniami timera i problem sam się rozwiąże. Nigdy oba silniki sterowane mikrokontrolerem nie zrobią kroku "w tym samym czasie"(mam na myśli krok) Może w jakimś prehistorycznym...
Chyba niezbyt... co masz na myśli?
ustawienie tego wszystkiego przy użyciu Makefile na pewno zajęło by dłużej Uważasz po poprzednich postach że Kolega autor ma na tyle wiedzy aby to zrobić? Nie wiem jak to ludzie robią, że im nie działa (trzeba się naprawdę postarać), ale ja używam od czasu do czasu SW i problemów żadnych nigdy...
Co do przykładu Freddie-go To kompilator wypluł mi że nie ma plików. Skoro ich nie ma, to musisz je dodać. Nie ma innego wyjścia - sam plik stm32f7cokolwiek.h nie jest wystarczający. No tak ale prubowałem skompilować twoj przklad bez ingerencji w przykładzie są wszystkie potrzebne pliki. Nie...
Jest całe mnóstwo książek o STM32 i niemal wszystkie operują na języku C. spróbuj poszukać np. tutaj: Edit: Poza tym gugiel wcale nie olewa tematu: Edit2: Wprost z Elektrody: No i wiele ciekawych rzeczy mozna się nauczyć od kol. (at)Freddie Chopin , którego strona to:
Po tym jak wszystko prawie było dobrze wyskakiwał mi jeszcze jeden błąd: Coś że chce przydzielić większe workarea niż posiada. Metodą prób i błędów przekopiowałem plik targeta stm32.cnf zmieniłem wielkość workarea size na - czyli dodałem 0x100 (wyczytałem na anglojęzycznym forum): set _WORKAREASIZE...
Witam. Postanowiłem uruchomić usb na mojej płytce z stm32. Skopjowałem przykłąd z exampla stm32_usb_device_lib. Dodałem kilka własnych plików : stm32_eval.h,.c Skonfigurowałem definicje pinów dla karty sd, wykrywanie usb itd. Używam startup'u i pliku make frediego chopina więc (myślę że dobrze...
Prawda jest taka, że STM32 są dosyć delikatne... Osobiście załatwiłem już kilka sztuk - wystarczy przypadkowo podać zbyt wysokie napięcie na pin (obojętne czy wyjściowy, czy wejściowy) i procek momentalnie jest do wymiany. Najciekawsze jest to, że zasadniczo działa (daje się go programować, debuggować,...
Witam W debugger jestem cały czas. Przy probie wywołania funkcji mam błąd. a= LaderFunADD(&b, &c); Nie wiem ewentualnie jaki rejestr mógłbym sprawdzić. Wziąłem nawet cały projekt od kolegi Chopina stm32_blink_led. W makefile dodałem, linia 59: LIBS = lib_addLader.a Header plik lib_addLader.h ...
Pierwszy raz słyszę, żeby za pomocą komentarzy dało się cokolwiek zrobić w C :) Poszukaj w postach freddiego chopina, zrobił cały tutorial do toolchaina i udostępnił publicznie i nieodpłatnie projekt właśnie do migania diodą na STM32, zawierający plik startup, tablicę wektorów i konfigurację portów GPIO...
Dzięki za odpowiedzi. (at)flapo213: Chodzi o kompilację samego programu? Korzystam z Eclipse z kompilatorem CodeSourcery G++. Nie wiem dokładnie co to są te breakpointy? To takie zwyczajne jak przy debuggowaniu? :) Czy np. interrupt'y procesora? Może to właśnie przez błędy transmisji danych? (at)Freddie...
Przyszedł i mnie czas sięgnąć po STM32. Dla miękkiego startu skorzystałem z tutoriala Chopina. Działa ok. Przykład ten korzysta jednak z gotowego make'a a ja potrzebuję docelowo generowanego automatycznie. Zrobiłem więc w eclipsie nowy projekt bazujący na tych samych źródłach ale z make'iem generowanym...
Witam! Mam problem z projektem na STM32. Chciałem użyć pamięci flash do zapamiętania potrzebnych mi parametrów. Problem pojawił się przy czyszczeniu flasha. Po wywołaniu FLASH_ErasePage dostaję flagę FLASH_FLAG_BANK1_EOP,co wydaje się całkiem prawidłowe. Program wraca do pracy z tym, że przez około...
Bardzo często na forum pojawiają się pytania o wybór darmowego środowiska do STM32. Problemem jest tu programator ST-Link dołączany do niektórych płytek prototypowych (np. moja ST32 VL Discovery), a dla którego ciężko znaleźć wsparcie. Wyjątkiem jest tu TrueStudio które w "darmowej" wersji ogranicza...
Ja się nie bawię w zestawy uruchomieniowe. Mam tylko płytkę podobną jak piotrva, z tą różnicą że jest w niej mikrokontroler STM32F103RBT6. Wszystkie peryferia podłączam bezpośrednio do goldpinów lub przez płytkę stykową. IMHO to najwygodniejsze rozwiązanie. Co do JTAGa to korzystam z JTAG-lock-pick...
Witam, Zrobiłem najprostszy program z uruchomieniem jedynie RCC i GPIO. ... Kiedy log10 jest wyłączony komentarzem, LED świeci, kiedy log10 jest włączony, LED nie swieci. Czekam na jakąś odpowiedź od CooCoxa. Jeżeli to co powyżej napisałem nie zadziałało u Ciebie, to nie wiem. Przed...
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...
Witam! Od jakiegoś czasu męczę się z SPI na STM32, posiadam płytkę STM32F3 Discovery. Podłączyłem SPI1 z SPI2 (MISO-MISO, MOSI-MOSI, SCK-SCK, NSS nie podpięte), SPI1 pracuje jako master, po wysyłaniu danych do SPI2(slave) rejestr RXNE w SPI2 jest cały czas równy 0. Próbowałem zamienić rolami SPI1 z...
Mam zainstalowane Eclipse Która wersja? Czy masz zainstalowany GNU ARM Eclipse Plugin? Bez niego ten projekt nie zadziała. Problemów szukaj więc w konfiguracji Eclipse/CodeSourcery/GNUArmEclipsePlugin... ten "template" i się bezproblemowo kompiluje (w konfiguracji Debug). W konfiguracji...
Eclipse (Neon.3 release 4.6.3) Jak dobrze poszukasz, to może znajdziesz JESZCZE STARSZĄ wersję (; Nie ma co się ograniczać do takiej która ma ledwo trzy lata. Jest to wersja, jakiej używa System Workbench for STM32, pobrany w styczniu 2019. Czemu korzystają z niezbyt nowej wersji Eclipse? Nie...
Dlatego, że procedury obsługi peryferiala USB na niskim poziomie w STM32 nie są wielobieżne. Każdy program, który wysyła coś po USB w (za przeproszeniem) pętli głównej Programowanie wielowątkowe, systemy operacyjne, mówi to Panu coś, Panie BlueDraco:) W moim rozwiązaniu mam klasę USB która ma w sobie...
zapewne wgrywasz program do RAMu, skad ginie on po zaniku zasilania. kod znajduje się we flashu. Po włączeniu zasilania i "reset & debug" procek nie jest ponownie programowany, tylko rusza natychmiast debug. W build Config. THUMB Flash Relase jest zaznaczone: Flash, Relase, THUMB. Plik hex z...
Od kilku dni próbuję uruchomić dongla JTAG autorstwa Freddiego Chopina (rev02) w srodowisku crossworks 1.7. Oto parę ciekawych zjawisk, ktore zaobserwowałem podczas kilkudziesięciu (moze juz kilkuset) nieudanych prób: 1) Gdy dongle jest skonfigurowany jak turtelizer (tj. wegług opisu z manuala...
Freddie Chopin zrobiłem tak jak pisałeś. Najpierw wrzuciłem dane do buforu SLAVEa, a potem wysłałem coś na MASTERze i odebrałem to co przyszło do MASTERa więc transmisja z SLAVE --> MASTER też działa. Dodałem jeszcze obsługę pinu SS oraz zmieniłem ustawienia pinów zgodnie z logiką :) Niestety moduł...
Na necie jest darmowa książka Hitex'a - The Insiders Guide to STM32 (czy jakoś tak) - możesz ją pobrać ze strony ST i Hitex'a. Zawsze to może dać ci pogląd na sprawę. Podobna książka jest o LPC2000 i LPC2300 - możesz zerknąć i porównać. Nie są to jakieś super książki, ale są za darmo Jest też u...
Tak w ogóle to w startupie wykorzystujesz stałą __idata_start, której nigdzie w tych skryptach linkera nie widzę. Skrypt likera linia 127: __idata_start = __text_end; Dodano po 5 Zgadza się. Zwiększenie stosu powoduje, że błąd nie występuje. Jednak jak uchronić się od tego w przyszłości?...
Trochę się zakręciłeś <: w końcu zegar taktowania APB i wyjście z APB to to samo. Hmm, mnie się wydawało że APB jest taktowane z AHB...więc zegar taktowania APB to "wyjscie" z AHB a "wyjście" z APB to prescaler AHB...namieszałem. Przynajmniej tak z rysunku wnioskuje.
przerwanie powinno być z atrybutem ((interrupt)) oczywiście jest ten atrybut (i tylko ten), jednak nie w definicji tylko deklaracji. Wszystko w Twoim pliku vectors.c. a próby wpisywania wartości 0xFFFE do rejestru SR nie wydają mi się szczególnie mądre. W końcu rejestr ten ma kilka pól które są...
Bez taktowania nic nie będzie działać. Funkcja zapisuje dane pod adresy które są wyłączone, więc możesz tam wpisywać co chcesz.! No to już wszystko jasne, dzięki za pomoc. Co do uruchomienia TIMERA to tez mi się udało, jednak mam jeszcze jeden problem z nim... mianowicie chciałbym uruchomić...
Witam, Zaczynam zabawę z Cortexami. Dotychczas bawiłem się tylko AVRami i '51. Poustawiałem sobie środowisko zgodnie z opisem na stronie Freddiego Chopina. Załadowałem jego przykładowy projekt, zmodyfikowałem go do mojej płytki i zadziałał. Wszystko ok. Później dodałem ten skrypt który ułatwia konfigurację...
Niezastąpiony Freddie Chopin znów stanął na wysokości zadania. Problem rozwiązany. Temat do zamknięcia.
Hej, Podpinam się pod posta. Próbowałem wrzucić funkcję pod wskazanym adresem, ale mi się nie udało :). Postanowiłem wrzucić zatem jakąś zmienną pod wskazany adres no i z podobnym rezultatem. Tak jak w poście postępuję: MEMORY { rom (rx) : org = 0x08000000, len = 128k - 18k BOOT(rx) :...
Witam, Nie daję rady uruchomić komunikacji USB. Posiadam moduł [url=]MMstm32F103R Propoxu. Większość peryferii już przetestowałem natomiast USB milczy. Docelowo USB chciałem wykorzystać do programowania (DFU) układu. Z powodzeniem używam startup'u i pliku make frediego chopina, niestety nie daję...
Nie wiem czy wszyscy wiedzą że istnieje całkowicie darmowe w pełni zintegrowane środwosiko TrueStudio Zapomniałeś dodać, że jak zwykle wersja darmowa ma ograniczenia. 4\/3!! ale są to niewielkie ograniczenia, np brak kompilowania kodu C++ i brak wsparcia UML reszta jest, łącznie z debugowaniem...
-> Freddie Chopin Akutat z Tobą kłócić się nie będę. Jak już ktoś rozumie zbyteczność i problematyke korzystania z bibliotek, to już jest wszystko jedno, czy stosujesz 0xblablabla czy coś co stoi pod #define. Każdy pisze jak mu wygodniej. Mi jest wygodniej pisać 0xblabla, bo jak właśnie piszę,...
Jeśli wgrasz program do flasha, odepniesz JTAGa, odłączysz zasilanie / wciśniesz reset to też nie działa? 4\/3!! Tak, Reset mam podłączony do rezystorem 10k do +3,3V i kondensator 100nF do masy
Tyle że timer może wysyłać tylko JEDNO żądanie do DMA, więc... nie da się (tym sposobem). No ale chyba właśnie o to chodzi. Następuje zdarzenie od kanału timera, DMA przesyła JEDNĄ nową wartość do CCR tego kanału, przy której osiągnięciu przez licznik timera nastąpi nowe zdarzenie i tak w kółko....
Ustawiasz w skrypcie linkera tak aby wszystko trafiło do RAM, a nie do flasha i to wszystkie zmiany jakie musisz wykonać, jednak ja wciąż sugeruję nie przejmowanie się żywotnością pamięci Flash - więcej z tym problemów niż "korzyści". 4\/3!! Jeszcze musi przestawić zworkę ! :P
Nie jest to wcale dobry pomysł, bo: a. peryferia będą w nieznanym stanie b. wskaźnik jednego ze stosów NIE zostanie ustawiony (ustawiany jest on sprzętowo). 4\/3!! a. racja. b. używam ARM7TDMI i nie miałem problemów z działaniem programu po takim skoku, ale chyba faktycznie lepiej będzie to...
Mogą byc definiowane w kodzie (.c). Keil to akceptuje.
Ta tablica nie jest potrzebna - ona jest tylko do celów demonstracji (jak zwykle w przypadku ST bardzo głupiej). Nieprawda. Tablica ta jest kluczowym elementem przy przepisywaniu zmiennych z jednej strony FLASH do drugiej, gdy pierwsza z nich jest już pełna. Procedura EE_PageTransfer() musi...
Ad.1. Licencję na Rowleya mam już kupioną. To po co to porównanie? W czym w ogóle problem w takim razie? W tym, że GDB + OpenOCD działają powoli. To że używam również CrossWorks, chyba nie dyskwalifikuje mnie z grona użytkowników OOCD+GDB, a może jednak? Czyni mnie to trędowatym czy gorszym?...
Ja się wahałem czy tej książki nie kupić i teraz się cieszę, że tego nie zrobiłem :P /* Handler mode (core exceptions / interrupts) can use only main stack */ /* Thread mode can use main stack (default) or process stack - selected in CONTROL special register */ __main_stack_size...
Hehe Ad 1. Też zaglądam do tego, ale ciężko idzie :) Ad 2/3/4. Jest sens zaglądać do tego, jeżeli póki co nie mam zamiaru klepać w ASM? Ad 5. To podstawa bo ściągnąłem sobie jakiś układ z Chin i inaczej połączone jest wiele rzeczy. Zastanawiam się czy jakieś ogólne książki o mikrokontrolerach...
Sprawa się rozwiązała i nie chodziło tu o długość stosu. Fakt, formatowanie tego kodu też daje wiele do życzenia. Tak to jest jak się część kodu zapożycza z innych źródeł... Problem był z linią: else GPIO_ResetBits(GPIO_PORT_LCD void STM32_LCDSendCmd(uint8_t LCDcmd) { GPIO_ResetBits(...
Przecież z każdego wyjątku można wrócić tam gdzie został on wywołany - adres powrotu (zwykle przesunięty - pipeline) jest przecież w rejestrze LR... Adres powrotu jest na stosie a w LR jest wartość informująca procesor o zakończeniu obsługi wyjątku oraz tryb procesora i rodzaj stosu jaki był...
Bo ten program jest zły! Cortex-M3 pod konkretnymi adresami oczekuje konkretnych rzeczy - na samym początku flasha - wartości dla SP, potem adresu (adresu! nie instrukcji!) wektora obsługi wyjątku reset itd. Zapomnij o takim prostym programiku - to tak po prostu nie zadziała. Potrzebna Ci jest tablica...
Tylko po co chcesz podawać te komendy przez telnet, skoro można je podać do OpenOCD z linii komend? 4\/3!! Bo trzeba pisać te komendy, chciałem je napisać raz w jakimś pliku np. progSTM32.cmd a potem uruchamiać...
Zobacz przykład dla STM32 z mojej strony - przecież właśnie to jest tam zrobione. Myślałem raczej o jakimś tutorialu do C - ARM. Np.: skąd wziołeś coś takiego? LED_CR = m_GPIO_MODE_CNF(LED_pin, GPIO_CRx_MODE_OUT_10M_value, GPIO_CRx_CNF_OUT_PP_value); Chodzi mi tutaj o jakiś opis zmiennych...
vectors.c od Freddiego Chopina (mimo wszystko dodałem jako załącznik) Jeśli ten plik należy zmodyfikować, to bardzo proszę o podpowiedź jak.
Udało mi się rozwiązać problem z C++ i obiektowością, tak mi się przynajmniej wydaje. Rozwiązaniem okazało się skorzystanie z kodu Freddiego Chopina i odpowiednie jego zmodyfikowanie.
Użycie wolnego zamiast wolnawego oprogramowania rozwiązuje problem.Ktoś konfiguruje z wolnego oprogramowania zestaw tnąc funkcje dostępne za darmo, aby ludziom wyłączyć myślenie i by kupowali to co jest bez ograniczeń za darmo. Patrz tutorial Freddiego Chopina. Albert
To nie jest do końca rozwiązanie problemu. Kurcze szkoda bo mam już spory projekt i wszystko poza tym jednym szczegółem działa jak trzeba tzn programowanie przez bf30, debugowanie. A zna ktoś może jakiś dobry przykład pod stm32f107 bo przykłady Freddiego Chopina są na stm32f103. Dodano po 1 ...
Dzięki za uwagę. Zauważyłem, że podczas debugowania niektóre rzeczy zostają (w innych odrębnych przypadkach). Jeśli używasz standardowych konfigów do OpenOCD, to dodaj do jego wywołania coś takiego: -c "reset_config trst_and_srst" Domyślnie OpenOCD zakłada, że JTAG nie ma pinów resetu i w przypadku...
Poza tym skok w maliny wg. debuggera nie zawsze musi oznaczać rzeczywisty problem (; 4\/3!! Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ?
Flagę TXE powinno się sprawdzać PRZED wpisaniem czegoś do DR (to akurat nie jest wielkim problemem), ale przed odczytaniem DR powinno się sprawdzać czy flaga RXNE jest ustawiona - dopiero wtedy można odczytać to co jest w DR. Bez tego wciąż nie odczytujesz tego co chcesz - na etapie inicjalizacji odczyt...
Radykalne czy nie, to fakt. Zestaw instrukcji ARM został stworzony w taki a nie inny sposób po to, aby jak najlepiej były go w stanie wykorzystać kompilatory C. Bardzo duża ortogonalność (porównaj z czymkolwiek innym) pod względem rejestrów (np AVR w którym niektóre instrukcje mogą korzystać tylko z...
3. Po czyszczeniu flagi nie musi być żadnego dodatkowego kodu, jeśli tak jest u Ciebie, to problem jest innego rodzaju i z czymś zupełnie innym. A można jakąś podpowiedź. Zauważyłem stosująć breakpointy, że wszystko działa niby OK, ale podczas normalnej pracy te diody chyba nie zdążają sie zapalić,...
W STM32 można ustawić przerwanie po przekroczeniu pewnego zadanego napięcia na ADC - popatrz na opis trybu "analog watchdog". 4\/3!! dzięki za podpowiedź - tego nie wiedziałem, aczkolwiek po wstępnym zagłębieniu się w temat, znalazłem informację, że max napięcie wejściowe na którykolwiek pin...
Faktycznie źle zrozumiałem opis bitów w IMR. Dzięki Freddie Chopin .
Niemniej jednak to może być istotne: Then the master waits for a read of the SR1 register followed by a read of the SR2 register (see Figure 272 & Figure 273 Transfer sequencing). To jest opis "25.3.3 I2C master mode" z dokumentacji. Prześledź krok po kroku i upewnij się, że kolejność zdarzeń...
Poprzez reset tego nie uruchomisz. Potrzebna jest do tego inna opcja. Żeby program ruszył z RAMu, Loader musi ustawić wskaźnik stosu, wskaźnik tablicy wektorów i wywołać funkcję wejściową. Dodano po 41 Tablica wektorów przestawia się sama w zależności od konfiguracji pinów BOOTx. No...
Zostały Ci jeszcze dwa niezmienione "data" (; Noo tak, faktycznie. Czyli teraz żeby umieścić dane to trzeba dopisać do zmiennej: [syntax=c]__attribute__ ((section(".ext_data")))[/syntax]
Nie lepiej "nie należy zwierać zasilania"? 4\/3!! to napewno tez
Co znaczy zbyt mały, czy 1024 bajty to za mało? Używam twojego (jakiegoś może nie najnowszego) skryptu linkera... [syntax=c] /***************... author: Freddie Chopin * file: stm32f103rb_rom.ld * last change: 2009-09-19 * * chip:...
No trochę ogarnąłem to co napisałeś Freddie Chopin. I teraz sytuacja wygląda tak, że mam prawidłowy odbiór danych po wysłaniu wiadomości z komputera w procku ale nie działa mi wysyłanie informacji z procesora do komputer. Nie rozumiem chyba zasady działania. Mój USART1_IrqHandler(): Dodano...
Konfiguracja FSMC Dodano po 2 Chyba sam znalazłem rozwiązanie: FSMC_BCR1->WREN = 1
A masz tak stale, czy tylko raz? Co generuje przerwanie? 4\/3!! Mam tak cały czas mam ustawione przerwanie na EXTI15_10. W przerwaniu kasuje flagę pending: EXTI->PR = EXTI_MASK_PIN W przerwaniu robię debouncing (czekam 100 ms po wywołaniu przerwania) przerwanie: if(0 != (EXTI->PR...
Witam! Wiem, że temat nie raz się przewijał ale wszystkie informacje jakie znalazłem na forum są z 2009 lub 2010 roku a w tej kwestii jak wiemy dużo się zmienia. Czy orientujecie się (może kolega Freddie Chopin?) czy udało się zmusić JTAG'a ST-Link/V2 do pracy z Eclipse (przez OpenOCD lub GDB Server). Szukam...
A skonfigurowałeś poprawnie piny, włączyłeś porty GPIO oraz AFIO? No i po co ruszasz rejestr od I2S? Po co odczytujesz na początku DR? Po prostu go wyłączam tak jak by co. Oto moje GPIO ale to raczej dobrze jest. Dodano po 21 No nie wreszcie zmotywowało mnie to do porządnego debugowania...
int TDelay wyciągnij jako zmienną globalną. Za każdym razem, gdy SysTick wejdzie do przerwania ją tworzy, a to bez sensu, co? :) w końcu nigdy nie doliczysz do 500, skoro będziesz cxo chwile tworzył tą zmienną. właśnie tak myślałem że z tym jest coś nie tak, niestety z C też nie jestem mistrzem...
Z tego co mi się wydaje przed odczytaniem wartości z licznika należałoby sprawdzić flagi które mówią o tym czy w liczniku cokolwiek sensownego się znajduje... 4\/3!! sprawdziłem flagi i nic sensownego się nie znajduje, same zera
Jaki wzmacniacz operacyjny wybrałeś na bufor wejściowy, jak w ogóle chcesz rozwiązać tą część układu? Problem w tym, że nie mam pomysłu na realizację takiego bufora bo nigdy tego nie robiłem. Ze wstępnych informacji jakei udało mi się znaleźć to najprościej jest to zrobić przy pomocy wzmacniaczy...
Freddie Chopin daj spokój, niech używają sobie tej biblioteki, to jest walka z wiatrakami, ale pomocy niech też oczekują tylko od użytkowników jej.
Dzięki Freddie Chopin za szybką odpowiedz. Sprawdziłem w debagerze czy po zejściu licznika (wartość CNDTR) do zera wyłącza się kanał DMA. Okazuj się iż jest nadal włączony. Twój kod zbyt wiele mi nie pomógł, wcześniej tez go spotkałem w innym temacie na forum. Na początku chcę przesyłać jeden bajt cyklicznie(czyli...
Jaki komplilator? Jeśli gcc to skąd wziąłeś implementację sbrk() i czy na pewno pasuje ona do pozostałych plików (szczególnie skryptu linkera)? 4\/3!! Keil uVision4, bazuje na przykładowym kodzie.
Wiec, probowalem jeszcze raz ale z innymi pinami sterujacymi - wybralem do tego PORT_B_PIN11 i PORT_B_PIN_12, nie jestem pewien czy dobrze to sprawdzilem w nocie katalogowej, ale wydaje mi sie ,ze one powinny byc 5V tolerant. Ponizej zalaczam caly config. h oraz main.c - probowalem znowu przetestowac...
Właśnie o to mi chodzi - jedna z tych metod korzysta po prostu ze standardowego malloc() i wtedy trzeba zadbać o jego poprawne działanie m.in. właśnie poprzez poprawną implementację sbrk() i stosowne definicje w skrypcie linkera. okej, dużo mi się wyjaśniło Jeśli korzystasz z moich przykładów,...
Hmm, ciekawe gdzie się mijamy w toku rozumowania :). Przypuszczam nawet, że masz innego procka niż inżynierowie z ST, bo u nich aby jakiekolwiek zmiany w option bytes weszły w życie potrzebny jest RESET układu (programowy), czego Ty nie robisz (a przynajmniej ani słowa o tym nie ma w Twoim poście)...
Zatem jak poprawnie ustawić ostatni bit na 0 nie ruszając pozostałych? Tak na poważnie z tym pytaniem? Chciałem Cię tylko sprawdzić :D
Zamiast tak cudować, to zrób jednak te timeouty... 4\/3!! Timeouty są robione. Wysyłam tylko dane przez SPI co 100 ms jeśli PENIRQ jest w stanie niskim. Ale znalazłem inny BARDZO ciekawy trop. Zawsze jak inicjalizuję SPI2 to CPOL = 0 czyli linia zegarowa powinna być w stanie niskim kiedy...
Dla janości przepisałem konfigurację timer'a na postać nieco bardziej czytelną: Zaczynamy się powtarzać - u Ciebie transmisję DMA wywołuje ADC - jest OK. Ten własnie kanał jest przyporządkowany tylko do ADC i niczego więcej. Ok rozumiem. Kanał DMA od TIM1 (channel 2) nie jest skonfigurowany więc...
To jakaś prowokacja? 4\/3!! haha nie, przepraszam dopiero zaczynam i nie znam sie kompletnie na tym chodzi mi o to, ze mam plytke z mikrokontrolerem stm32f107, na stronie stm sa do niej rozne gotowe przyklady np. wlaczanie diod poprzez strone internetowa i potrzebuje wlasnie porty i piny tych...
W kodzie masz skonfigurowane SDI jako wyjście, a SDO jako wejście, przy czym też zapisujesz do SDI, a czytasz z SDO. Aby na pewno tak powinno być? Bo generalnie powinno być odwrotnie, a na płytce łączy się te sygnały "na krzyż", czyli SDI - SDO. Tak, tak powinno być. Piny SDO i SDI są oznaczone od...
Ten błąd wyskakuje z szuflady czy bardziej zza szafy? Nie ma to jak podać wszystkie istotne szczegóły... 4\/3!! Przepraszam nie znam sie na tym, dopiero zaczynam, moglbys powiedziec jakie szczegoly podac?
więc - ponownie - gdzie jest problem? Życie nie kończy się na STM32F1. Chociaż po głębszym przemyśleniu faktycznie problemu nie widzę.
Freddie Chopin - gdyby nie twój tutorial i twoje przykłady prawdopodobnie do teraz bym grzebał w AVRach ;) Wracając do tematu, znalazłem [url=]tą stronę i wynika z niej że najpierw muszę dokonać odczytu z "write-buffer status port" i poczekać aż bit 7 będzie równy 0, a potem dopiero dokonać wpisania...
Nie działa tzn.? Nie kompiluje się? Bo to by było zrozumiałe - w końcu brak Ci definicji tam użytych, pokazałem jedynie ideę. Nie działa w ogóle lub tak jak Twój oryginalny kod? Kompiluje się. Oczywiście wartości rejestrów wpisałem dla siebie odpowiednie. Efekt działania programu jest taki,...
No chyba że książkę o podobnym tytule napisał by Freddie Chopin. Ale powinien mieć na to jakieś godziwe roczne stypendium. Mogę publicznie zdeklarować 100zł miesięcznie. Ale potrzeba by jeszcze kilkudziesięciu kolegów- najlepiej takich którzy skorzystali z Jego wiedzy. No i jeszce jakiś prawnik-...
Nie idę w zaparte, chce się nauczyć od podszewki - tak, żeby w jednej ręce mieć mapę pamięci procesora a w drugiej klawiaturę - elektroda to jest właśnie to miejsce gdzie można pytać ludzi którzy się znają na czymś lepiej od pytającego i liczyć na podpowiedz. Odpowiedź niestety dostaniesz tylko...
Wzmacniacze operacyjne (a do tego powolne wzmacniacze operacyjne LM324) umieszczone w pętli sprzężenia zwrotnego znacznie pogorszą parametry przetwornicy. Najlepiej a do tego najprościej tak jak napisał Freddie Chopin podawać napięcie z DACa na dolna stronę rezystora R105 (czyli R105 nie łączysz do masy...
Staram się skompilować przykład stm32_blink_led udostępniony na stronie Freddiego Chopina. Po wydaniu cs-make otrzymuję Compiling file: gpio.c arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -O0 -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -Wextra -std=gnu89 -g -ggdb3 -fverbose-asm -Wa,-ahlms=out/gpio.lst...
Modulacja = mnożenie. Nic więcej tutaj nie wymyślono. 4\/3!! Zależy jaka modulacja :) jest jeszcze chociażby modulacja FM czy PM :)
Witam! Walczę już od jakiegoś czasu z dziwnym problemem. Otóż: kiedy inicjalizuję piny odpowiedzialne za SPI1 jako normalne wejścia wyjścia (PA3, PA4, PA5, PA7 jako Output Push-Pull max 50MHz; PA6 jako Floating Input) bez problemu komunikuję się z urządzeniem slave (w tym wypadku panel LCD). PA3 i...
Witam, (at)Freddie Chopin - używam Keila + ST-Linka. Tak, właśnie debugger mi pokazał, że program tak się zatrzymuje, ale z drugiej strony nie zaglądałem dlaczego. Spróbuję to od początku "na rejestrach" napisać jak zasugerował (at)Bruce^666. dzięki pozdrawiam he...
W funkcji nie będziesz mógł zrobić czegoś takiego pomimo że przekazałeś tablice z ramu: void logoBMP(const unsigned char *bufer) { bufer Dodano po 4 const char const * l_wartosc Chyba trochę za dużo tych constów, nie sądzisz? 4\/3!! Właśnie chyba nie, wydaje mi się że bez któregoś...
Mnie na studiach nie uczyli mikrokontrolerów więc jestem jak to powiedziałeś głąbem z ulicy. O widzisz - mnie też nie <:4\/3!! Mnie też nie, wniosek jak pisałem, studia zbędne, przecież w manualach jest wszystko, z byka spadli z tymi studiami:) No i jak znasz już bardzo dobrze wszystkie...
No dobra, tylko co z tego, że w 8051 było coś zbliżonego? To jakaś wada? 4\/3!! Żadna wada. Zauważyłem tylko, że ktoś niedawno napisał, że ten bit banding to super rewelacja i że nawet większość nie zna tego mechanizmu i go nie stosuje. Dodałem więc że to dziwne, bo to dość stara i znana idea....
No i w czym Twoja metoda jest lepsza od okresowego odczytu różnicy pomiędzy aktualną a poprzednią pozycją? W tym, że mniej obciąża procesor. Przerwanie wywoływanie jest tylko przy przepełnieniu timera. Dla enkodera o rozdzielczości 1000/obrót potrzeba 65535/4*1000 = ~16 pełnych obrotów enkodera...
ściągasz darmowego Atollic TrueSTUDIO Nazywanie ewaluacyjnych wersji z ograniczeniami "darmowymi" jest sporym nadużyciem. Może inaczej, "dostępnego do ściągnięcia i używania bez uiszczania opłat". Zresztą czepiasz się. ;) Skonfigurowanie i używanie zestawu OpenOCD+Eclipse jest mimo wszystko...
ale widać nie chce Ci się czytać i wolisz przekonywać nas, że masz dobrze tylko coś innego nie działa Nie chodziło mi o to, że ja mam na pewno dobrze, tylko czemu tak jest. Jak bym uważał, że mam dobrze to bym nie pytał ;). A źle miałem policzone CCR i TRISE, poprawiłem, działa ładnie na flagach.
tutaj. Nie ja byłem autorem :) Fryderyk Chopin ma w swoich przykładach chyba podobną funkcję.
to robisz to 100% sprzętowo - timer zeruje się na zboczu narastającym i zlicza aż do zbocza opadającego, następnie zapisując zliczoną wartość do odpowiedniego rejestru. Mam pytanie - czy przy tak właśnie skonfigurowanych rejestrach, muszę sprawdzić czy pojawiło się przerwanie od zbocza narastającego...
Ok, to sorki, myslalem ze niezaleznie od procka taka funkcja jak RCC_GetSYSCLKSource() ma takie same wartosci zwracane ale widocznie dla kazdego procka jest troche inaczej: dla F4/F1 to jeszcze ujdzie ale dla F1/L1 zeby bylo inaczej, no moze jest. Najlepiej sprawdz to w debugerze i zobacz gdzie Ci...
Wkompiluj sobie do programu datę i godzinę kompilacji (timestamp) i zachowuj go w EEPROMie - jeśli daty się zgadzają, to znaczy że już programowałeś, jeśli nie - to trzeba przeprogramować. 4\/3!! To by było coś, jeszce gdyby dało się #definem wygenerowac tą datę albo jakąś byle jaką pseudo losową...
Tą diodę możesz spokojnie zewrzeć (tymczasowo) A długo można tak bez tej diody "jechać" ? Bo ja też zwarcie zrobiłem, a nie mam gdzie jej kupić więc na razie działam bez niej.
Freddie Chopin : uaktualniłem startup oraz linker (od Ciebie) ustawiłem : __main_stack_size = 1024; __process_stack_size = 1024; i dalej ten sam problem, przy uruchamianiu oraz przy debugowaniu. gaskoin : zaraz zabiorę się za wrzucenie projektu do Eclipse i wtedy pokombinuję ze stosami
Witajcie, jako w miarę świeży entuzjasta ARMów po pierwszych dość gładkich doświadczeniach z STM32 i Keil uVision postanowiłem zrobić sobie coś fajnego z USB i obsługą z poziomu Linuxa. Ponieważ musiałem od zera postawić kompletne środowisko programistyczne z pomocą przyszedł niezastąpiony tutorial...
Zrobiłem to bez przerwań. Program może nie działa idealnie (mam problemy z odbiorem znaków - jutro na tym się skupię), ale udaje mi się wysyłać at komendy do modułu (np. zmienić nazwę modułu, czy pin) oraz przesyłać stringi przez bluetooth na laptopa. Poniżej funkcja wysyłająca i odbierająca pojedynczy...
*wsk++; Ciekawe co ta linijka ma niby robić i niby po co? 4\/3!! ..tak głeboko to nie analizowałem :) ..popełniłem tylko *wsk=0; jako znacznik końca (kolejny za wczytanym z klawiatury) Powinna być jeszcze kontrola zakresu żeby nie przekroczyć rozmiaru bufora.
Posiadam gotowy projekt stm32_blink_led ze strony Freddiego Chopina, wszystko zostało poprawnie skonfigurowane pod linuxem i działało bez zarzutu na Eclipse Galileo wykorzystując pakiet CodeSourcery. Aktualnie po wyczyszczeniu systemu chcę przejść na Eclipse Juno i wykorzystać toolchain Linaro. Sama...
Poza tym rejestr SysTick jest rejestrem kontrolera NVIC. Ciekawa teoria... 4\/3!! Dla niedowiarków :
Udało mi się nawiązać połączenie z zablokowanym prockiem bez pomocy bootloadera. Trzeba było zrobić tak jak zalecał Freddie Chopin. Problem był jednak u mnie po stronie oprogramowania. Do łączenia się z prockiem używam ST Link Utility i programator ZL30PRG (zgodny z ST Linkiem). Należało uaktualnić ST...
A zająłeś najpierw semafor ? xSemaphoreTakeFromISR. Nie możesz zwolnić semafora jeśli go wcześniej nie zajmiesz. Niby oczywiste, ale z postu, który napisałeś wnioskuję dziwne rzeczy Semafor jest zajmowany dwa razy. Raz po stworzeniu bez blokowania, drugi raz w miejscu gdzie wątek ma czekać na przerwanie....
Wczoraj skonfigurowałem całe środowisko, Sourcery CodeBench Lite 2012.03-56 Eclipse Juno OpenOCD 0.6.0.RC1 Wszystko ruszyło niemal od pierwszego odpalenie, po drobnych zmianach dostosowujących do posiadanego sprzętu. (STM32L-Discovery) Świetny tutorial :) Oops, pomyliłem wątki, korzystałem...
Podsumowując, nie wiem dlaczego nie mogę najpierw ustawić na 4800 a potem zmienić to na 9600... Nikt nie mówi że nie możesz. Spójrz jeszcze raz na to co Ci wyszczególnił Freddie Chopin (tym razem masz ułatwienie): b=9600; USART2->BRR | = (36000000/b); b = 4800; USART2->BRR | = (36000000/b);...
... lub unie. ... o czym wspomniałem w poście #2 :)
Podobnie jak w przypadku życzenia 8 x uint8_t, ale 9 x uint8_t zarezerwuje 16 bajtów. Chyba raczej 12 bajtów a nie 16-cie.
Nie robi, bo kompilator to zwija do odpowiedniej liczby podczas kompilacji. Chyba, że ktoś ma zmienne przerwania w co wątpię. Biorąc pod uwagę fakt, że 99,666% przypadków użycia tej funkcji to stały parametr, myślę że optymalizator sobie z tymi przesunięciami poradzi. Kompilator zrobi z tego...
Jeśli więc wywnioskowałeś jakoś, że timer jednak jest 32-bitowy to chyba musisz nas wszystkich oświecić jak. Najwyraźniej mówimy o innym manulau, mi chodzi o stm32f4: TIM2 to TIM5 main features General-purpose TIMx timer features include: ● 16-bit (TIM3 and TIM4) or 32-bit (TIM2...
Nie powinieneś ustawić bitów SSM i SSI? 4\/3!! nie, bo używam trybu Hardware NSS managemen. SPI testuje bez urządzenia odbiorczego jedynie przez oscyloskop. Początkowo sygnał NSS także nie działał poprawnie ale dodając pull-up problem tej linni się rozwiązał. Problemem pozostaje ciągle linia...
Ustalasz to programowo przy pomocy wyboru odpowiedniej funkcji alternatywnej dla pinu - poszukaj rejestrów Alternate Function w rozdziale o GPIO. 4\/3!! Dzięki. Od razu rozjaśniły mi się inne tabelki. pozdrawiam
Ja musiałem dodać do kompilacji takie ścieżki: lwIP/include lwIP/include/ipv4 lwIP/netif/include Wg mnie Twoja pierwsza ścieżka jest zbędna, druga powinna być skrócona o "\lwip" (to jest przyczyna Twojego błędu zapewne), a brakuje Ci być może tej z netif/include. 4\/3!! Skrócenie ścieżki...
Szanowny Panie Mechaniku. Ja tylko prostuję nieprawidłowości jakie Pan tutaj na forum wypisuje. Jednym z punktów regulaminu tego forum jest niewprowadzanie w błąd co Pan właśnie robi. Więc proszę nie zarzucać mi nieodpowiadania na pytania, kiedy samemu się pociska pierdoły. UART to 8 (no max 9) bit...
Twój układ jest chyba pierwszym na świecie, który ma CS aktywny w stanie wysokim... Eeee tam... Kultowy KS0108 i CS3