Przecież ten układ nie ma FPU, więc flagi kompilacji są zupełnie bezsensowne... Wystarczy samo -mcpu, -march jest zbędne. Flaga "-nodefaultlibs" dla linkera też jest dziwnym pomysłem, biorąc pod uwagę fakt, że w tych "default libs" jest pewnie nawet dzielenie liczb całkowitych.
w załączniku archiwum z kilkoma ciekawymi plikami dla STM32F0. 1. Cortex-M0.ld oraz STM32F051x8.ld Skrypty linkera - w projekcie używać należy bezpośrednio tylko tego drugiego, który zaś w środku dołącza ten pierwszy. Podział spowodowany jest tym, że "mapa" pamięci generalnie jest wspólna, więc wszystkie takie rzeczy są w tym Cortex-M0.ld, zaś w tym...
Witam Dostałem zadanie od wykładowcy wy wykonać pewien projekt na STM32f0 jako że KEILA nie trawie próbuje zmienić przykład freediego tak by pasował do tej płytki. Wstawiłem pliki: core_cm0.h core_cmFunc.h core_cmInstr.h stm32f0xx.h system_stm32f0xx.h Plus startup eddiego od LPC1114 oraz zmiany w linkerze rozmiarów pamięci plus zmiany w funkci main...
Słuszna uwaga z tym startupem. Mam go w katalogu projektu, który jest wskazany w ścieżkach eclipsa, ale nie wiem dlaczego nie jest linkowany. Może ma nieprawidłowe rozszerzenie? Teoretycznie istotna jest wielkość liter. Freddie, czy masz może jakiś ładny przykładowy projekt dla CM0? Dla STM32F0 nie, ale możesz spokojnie zrobić małego frankensteina...
Witam. Zainstalowałem pakiet CooCox, jednak w gronie mikrokontrolerów ATM ATMEL nie ma rodziny SAM3S (dostępny jest SAM3U). Czy można jakoś zmodyfikować linker, żeby generować kod dla SAM3S :?:
pewnie 2 to prawdziwe RCt6 reszta pewnie nie ma takiego ram. Zmniejsz ilość RAM w pliku linkera i zmien asdres stosu i zobacz. Zmniejszyłem na 16kB, nic to nie zmieniło: https://obrazki.elektroda.pl/5788846000_...
1) zobacz czy w linker skrypcie nie wycinasz libm.a jest taki "template" w internecie 2) dopisz libm.a albo -lm na końcu listy linkowanych plików ".o" !
Jedyne "pewne" podejście do tej kwestii, to zmniejszenie rozmiaru flash w skrypcie linkera o rozmiar przynajmniej dwóch ostatnich stron i użycie właśnie tych dwóch ostatnich stron. Każda inna opcja to proszenie się o kłopoty.
Siemka Postanowiłem zaprogramować procek programatorem od stm32discovery. Jednak wywala mi taki błąd: [syntax=ASP]Open On-Chip Debugger 0.7.0 (2013-05-05-10:44) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : This adapter doesn't support configurable speed Info : STLINK v2 JTAG v16 API v2 SWIM...
Dobre pytanie. Możesz wrzucić pełne wywołanie kompilatora i linkera? Nie obiecuję, że dziś dam radę to obejrzeć, ale mówiąc szczerze sam jestem ciekaw co tam poszło nie tak.
To się powinno dać zrobić samymi skryptami linkera i paroma dyrektywami sekcji w kodzie źródłowym. No właśnie mi się nie udało i poszedłem na "łatwiznę" z ręcznym kopiowaniem. Niestety projekt już jest "polutowany" pod M0 (obudowa TSSOP20) a przy projekcie do głowy by mi nie przyszło że M0 nie ma relokacji tablicy wektorów w inne miejsce flash'a;
Hejka, robię właśnie przesiadkę projektu z kompilatora IAR'a do GCC'a i mam problem z przeniesieniem niektórych ustawień, konkretniej chodzi o nie wycinanie przez linker konkretnych, nieużywanych zmiennych globalnych wygenerowanych przez zewnętrzne narzędzie, zawierających informacje np. o dacie buildu, checksumie itp. które są potem w przypadku reklamacji...
Z tym stosem to tez za bardzo nie wiem. W skrypcie linkera, który sobie pożyczyłem z TrueStudio nie było nigdzie rozmiaru stosu. Trochę przerobiłem skrypt ale nawet jak wpisze rozmiar stosu 0 to program się uruchamia. Tutaj fragment linkera: [syntax=text]/* Linker subscript for STM32F051 definitions with 64K Flash and 8K RAM Copyright RAISONANCE 2007...
Czy można to zrobić? - Oczywiście. Pytanie, czy trzeba? W miarę łatwo uzasadnić to, że np. jakieś dane konfiguracyjne są zapamiętywane w stałym miejscu pamięci Flash albo dane nie mają mocnego związku z kodem i są ładowane niezależnie od kodu dla każdego egzemplarza urządzenia, ale Twój przypadek jest zupełnie inny. Zamiast uczciwie wstawić dane do...
Rozumiem ze w syscalls sa callbacki z funkcji bibliotecznych do obslugi alokacji pamieci itp. Jesli nie uzywam alokacji to czemu linker ich potrzebuje ? Przeciez linker ma mozliwosc usuwania nieuzywanych sekcji, wiec czemu tego nie robi ?
Za dużo tego jest :^( Z tego merge wynika, że zostało dodane/zmienione 55 plików :^O No widzisz, tak to właśnie wygląda (; Niemniej jednak z tych 55 plików 17 związanych jest z paczką CMSIS dla serii STM32F1 (external/CMSIS-STM32F1), a 9 związanych jest z wsparciem dla płytki NUCLEO-F103RB. Zostaje więc 29 (; Z tych 29 można wyodrębnić absolutne minimum,...
Proponuję poczytać o skryptach linkera. Jest wiele stron łatwo znaleźć przez google. A co w tej sytuacji poprawiłaby ta zmiana skryptu linkera?
Jeśli nie masz ochoty używać C++ , przejdź do startupa (*.s) i zakomentuj tą linijkę co zawiera w sobie __libc_init_array albo otocz ją #ifdef __cplusplus #endif .
Twoja linijka od linkowania jest błędna. Biblioteki _MUSZĄ_ być na samym końcu, po wszystkich plikach obiektowych - tak działa linker. W ogóle to połowa flag które przekazujesz linkerowi nie ma dla niego znaczenia.
Używam przerwań. To teraz zobacz co ciekawego możesz wyczytać w skrypcie linkera... 4\/3!!
Jest to do zrobienia, ale wszystko zależy od tego jak bardzo jesteś biegły w posługiwaniu się C, kompilatorem i linkerem. Jak to może być rozwiązane to możesz sobie podpatrzyć w dokumentacji np LPC1549, tam są biblioteki ROM i stamtąd możesz czerpać inspiracje.
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:...
To raczej nie skrypt linkera, a zewnętrzny program, który przetworzy obraz binarny, który masz zapisywać - w każdym środowisku istnieje możliwość wywołania takiego programu, zwykle pod nazwą "post build step".
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...
Mnie właśnie przydałby się sam scheduler, bo koncepcja działania peryferiów często bardzo zależy od użytego układu i samego projektu. Może powinieneś rozdzielić ten projekt na dwa, jeden to czysty scheduler i drugi projekt to cały system który z kolei jest oparty o ten pierwszy projekt. Zauważ, że im bardziej rozbudowany będzie ten projekt, tym trudniej...
No ale dostajesz informację, że plik nie został odnaleziony... Co to ma do rzeczy czy został skompilowany dla Keila czy nie, skoro po pierwsze musi zostać odnaleziony? podając do linkowania parametr -lgui wcale nie powodujesz wyszukania pliku gui.a - linker poszuka tylko pliku libgui.a (w ramach potwierdzenia sprawdź czy biblioteka matematyczna nazywa...
Twoja tablica jest alokowana na stosie, ktorego jest ograniczona ilosc (w skrypcie linkera mozesz ja zwiekszyc). Tworzenie duzych obiektow na stosie nie jest zbyt dobrym rozwiazaniem. Powinienes w takim przypadku uzyc tablicy globalnej lub zaalokowac ja dynamicznie (za pomoca malloc).
Bezedura.. Keil i może potrafi wykryć takie coś, jednak nie GCC. No faktycznie, po próbach z GCC, przyznaję Ci rację, że nie jest w GCC tak prosto i wygodnie ze zmiennymi absolutnymi, jak mi się wydawało po praktyce w Keil. Ale pewnym prostym wyjściem może być zdefiniowanie buforów w sposób podobny jak tu: [syntax=c]unsigned char __attribute__((section...
A no dobra, sorry - to jest inny problem. Najszybciej będzie, jak w pliku Makefile wyłączysz generowanie pliku .bin. Rozwiązanie 100% poprawne to dodanie czegoś do skryptu linkera do sekcji w SDRAM, żeby nie pakował ich do obrazu binarnego, ale chwilowo nie jestem 100% pewny co dokładnie [; Chyba (NOLOAD) (do _WSZYSTKICH_ sekcji w pamięci SDRAM), ale...
te 2 pliki musze zmienić oraz dane w makefile i linkerze tak ?? W Makefile to za dużo zmian nie będzie (może jakieś nazwy plików), więc głównie linker i tablica wektorów. O to jaki kompilator będzie użyty chodziło mi że w includes są scieżki do g++ i jeśli będzie kompilować się w edge to nie będzie żadnych komplikacji ?? Te ścieżki są wykrywane automatycznie...
Dobra, Zabrałem się do roboty od początku, pobrałem przykład do STM32F407 ze strony Freeddie'go, w Eclipse wrzuciłem Import -> Existing Projects into Workspace. Eclipse znalazł tam projekt stm32f4_blink_led, super. Zainstalowałem według zaleceń GNU Coreutils. Dwie rzeczy teraz do rozwiązania: 1. Nie widzi stdint.h -> jak mu powiedzieć, gdzie to siedzi?...
Hmmm... nie jestem pewien. Da się gdzieś dodać opcje dla linkera tak żeby była "normalna", a nie poprzedzona "-X linker"? Ważne jest też, żeby biblioteka była w wywołaniu linkera na końcu - po wszystkich plikach z rozszerzeniem .o. Nie używam tej wtyczki, więc nigdy nie uświadczyłem takich problemów (;
Witam, poczytałem sporo informacji nt. skryptów linkera, ale niestety jednej rzeczy nie mogę zrozumieć. Mam przykładowy zapis (sam napisałem): [syntax=c] .text : { . = ALIGN(4); __text_start__ = .; /* zmienna zawierająca początek sekcji text */ *(.text) /* kod wykonywalny aplikacji */ *(.text.*) *(.rodata) /* dane tylko do odczytu przechowujemy we flashu...
Którego stosu i czy aby na pewno tego co trzeba? Jeśli używasz moich plików (skrypt linkera, startup, itd.) to polecam ze zrozumieniem przeczytać opis powyżej rozmiarów stosów w skrypcie linkera. 4\/3!!
Freddie. Chodziło mi o to by nie musieć ręcznie wybierać co tam ma być umieszczone. Linker sam zapełnił by jeden region a jeśli by nie wystarczył skorzystałby z drugiego.
Akurat zmiana skryptu linkera jest najprostszą rzeczą [; 4\/3!!
Wszelkie informacje są w dokumentacji linkera. Trochę za dużo tych pytań masz na raz... 4\/3!!
Witam Tworze ten temat aby ułatwić sobie i innym w podobnej sytuacji jak ja start z ARMami. Jak widzę informacje na temat ARMów są bardzo rozsiane, przez co wielokrotnie powtarzają się te same pytania co jak widać irytuje stałych doświadczonych bywalców tego działu przez co są oni coraz mniej chętni do pomocy i kończy się odsyłaniem do innych tematów....
Jeśli opierałeś się na moim przykładzie, to proponuję zajrzeć do dokładnie 35 linijki skryptu linkera i dobrze zrozumieć to co jest napisane w jej okolicy.
Trzeba tylko przerobić tablicę wektorów. W każdym razie - zajrzyj do skryptu linkera i poczytaj ze zrozumieniem komentarze przy wartościach które są tam na górze. 4\/3!!
Nie mogę sobie sam poradzić z konfiguracją Eclipse Juno. Próbowałem dodać opcje linkera w Makefile "LD_FLAGS -lm, -u" ale nic to nie pomogło.
Przecież ten kreator nie robi nic innego jak tylko tworzy ci skrypt linkera. W okienku konfiguracji możesz dać "dont use standard memory configuration" i podać mu skrypt linkera. Więc wybierasz podobny procesor, zaznaczasz tą opcję i edytujesz plik link.ld
Witam, przejrzałem tematy od STM32F3 odnośnie migracji z szablonu od Frediego z STM32F4 do F3 ale nie udało mi się zamrugać diodami. Co zrobiłem: # ściągnąłem źródła ze strony Frediego, # w makefile zmieniłem Global_defs # w linkerze obszary pamięci + pamięć na stos # w projekcie dodałem plik stm32f30x.h # zakomentowałem ustawianie PLL projekt się kompiluje...
Wystarczy zajrzeć do startupu co się dzieje po powrocie z funkcji main. To nie jest jakiś wielki błąd. Polecam natomiast poczytać jak działa kompilator i linker.
Dołacz odpowiednią bibliotekę. Opcje linkera w większosci toolchainów -u _printf_float jezeli zamierzasz skanować float-y to również -u _scanf_float Dodano po 4 Nie zauważyłem że to coocox - tam masz o ile pamiętam w konfiguracji projektu odpowiedni checkbox
Umieszczanie tych danych w ten sposób to straszne chodzenie dookoła i proszenie się o kłopoty... Wystarczyłoby w skrypcie linkera dodać nową sekcję - wzorując się np. na .bss, skopiować, zmienić "bss" na "moja_sekcja" i potem w kodzie sobie zrobić zmienną: typ tablica[BARDZO_DUŻA] __attribute__ ((section(".moja_sekcja"))); 4\/3!!
No chyba coś z tym skryptem linkera jest "nie tego"... LTO to ciężki temat, to już dosyć dawno temu było włączone w CodeSourcery, ale ponoć były z tym same problemy, nie działało dobrze no i po tym krótkim experymencie było w toolchainach wyłączone... Co do skryptu linkera, to zamiast cudownych kodów od ST proponuję jak zwykle moje przykłady/szablony...
Łatwość z jaką osiągniesz swój cel jest uzależniona od tego jak bardzo LM4 są podobne do LM3 (; Przecież LM4 = LM3 + FPU Czyli linker i startup będzie podobny do tego z stm32f4 ?
Cześć. Również spotkałem się kiedyś z tym problemem. Tu jest to opisane: http://infocenter.arm.com/help/index.jsp... Wydaje się, że tak już działa linker (nie tylko w gcc). Ja to po prostu rozwiązywałem przez nie umieszczenie handlerów przerwań w bibliotekach.
A korzystasz z jakich plików? Bo jeśli z moich, to zajrzyj do skryptu linkera i już na samym jego początku zauważysz ciekawą rzecz którą musisz skonfigurować. 4\/3!!
Mam zamiar kupić sobie zestaw Kinetis KwikStik. Chcę zrobić przykładowy projekt w Eclipse i sobie tak myślę czy by czasem linker i startup nie podszedł z STM32f4, bo w końcu mają ten sam rdzeń CM4 ?
Adresy pamięci Flash i RAM są takie same. Kontroler GPIO i RCC są troszkę inne niż w STM32F1, więc trzeba zmienić. Szczególnie chodziło mi oto czy Pana linker i startup będą pasować do STM32F2.
Cześć: template_CortexM_flash.ld:34: syntax error Pokaż ten skrypt linkera. Czy wybrałaś konkretny model mikrokontrolera w ustawieniach projektu? Możesz załączyć projekt do wglądu?
Witam. Screen: http://obrazki.elektroda.pl/9294782100_1... W zasadzie to nawet nie jestem pewien czy dodałem to w odpowiednim miejscu (linker flags). Dla odmiany dodałem to w linker script w zakładce General. Było tam pierwotnie ../STM32F746NGHx_FLASH.ld, dodałem więc --specs=rdimon.specs -lc -lrdimon Po kompilacji otrzymuję: 'Building...
(at)KFplay4free Plik z rozszerzeniem .o jest wynikiem kompilacji pliku .c lub asemblacji (bo niektórzy nie rozróżniają jednego od drugiego) pliku .s. To co obserwujesz to błąd przy konsolidacji. Oznacza mniej więcej to, że linker nie mógł odnaleźć symbolu o takiej nazwie. Wrzuć tutaj cały plik startup_stm32.s oraz pełny log z budowania Twojego projektu....
Jak dla mnie bez jakichkolwiek zmian będzie... W sumie to sam nie wiem czym się te układy między sobą różnią, ale w plikach na pewno nie będzie żadnych zmian (linker, startup, tablica wektorów, Makefile, gpio, RCC, ...) 4\/3!!
Tak jak napisałem, dołączenie tej biblioteki nic nie zmieniło, ani w czasie wykonywania obliczeń, ani nie pojawił się żaden Warning. Dlatego tak jak piszesz, linker już zrobił co powinien. Na przyszłość zapamiętam sobie jednak Twoją uwagę i nie będę takich rzeczy robił ręcznie. Dzięki.
Zerknij tutaj: script.sct to skrypt linkera. W pliku startup.h przy deklaracji stosów jest wykorzystany atrybut zero_init .
Witam. Do tej pory pracowałem na AVR Studio / Assembler, które jest dla mnie bardzo przejrzyste i oczywiste, teraz zasiadłem do Keila / STM32 / C i jest to dla mnie droga przez mękę - o ile gotowce są dla mnie zrozumiałe i na ich podstawie mogę bezproblemowo coś tam swojego zrobić o tyle utworzenie nowego projektu mnie przerasta :( Wybieram procesor,...
FCh...tak się zastanawiam - w tej chwili mam kompilujący się i działający projekt, w którym z przykładu z F4 wziąłem skrypt linkera, startup i vectors.c. Z tym, że wydaje mi się, że to chyba nie jest do końca dobre podejście, ponieważ przecież vectors.c jest dla F4 a ja działam na F7. Ze swoją wiedzą nie przerobie (chyba) tego vectors.c właściwie :/...
Ok. Dałem skrypt linkera i plik Startup z projektu do STM32F4. Program zatrzymuje mi się w tablicy wektorów przerwań. Na marginesie zaznaczę, że jeszcze nie modyfikowałem tej tablicy. Czy ewentualna modyfikacja tej tablicy może rozwiązać problem? http://obrazki.elektroda.pl/4579209200_1...
blx r2 Co jest w r2? Skąd się to wzięło w r2?... Jeśli do r2 był load PC-relative, to siłą rzeczy musi być tam mniej lub bardziej własciwy adres (else znaczyłoby to, że linker się pomylił ;] ). A domyslam się, że do r2 poszedł lipny wskaźnik na funkcję...
pomyslales o uzyciu scatter file? ;] W tam: target->options->linker odkliknij opcje "use memory layout from target dialog". Klik w przycisk "edit" z prawej strony. LR_IROM1 0x08000000 0x3C000 { ; load region size_region, zalozmy ze flash ma 256KiB ER_IROM1 0x08000000 0x3C000 { ; load address = execution address *.o (RESET, +First)...
Jeśli biblioteka którą chcesz dodać nie ma też wersji z FPU, to zbyt wielu opcji nie masz. Żadne dyrektywy preprocesora nic tutaj nie zmienią, to musi być zupełnie osobny plik. Jeśli nie masz takiej biblioteki w innej wersji (jeśli jest dla STM32F4 to raczej na pewno gdzieś jest), to jedyną opcją jest wyłączenie FPU w całym projekcie, czego również...
Ja nie lubię STM32, a STM32 mnie! Muszę coś zrobić na STM32 i robię to w Truestudio. Na razie proste testy na przypomnienie sobie STMów i wejście w C++ i na dzień dobry ściana! Po kompilacji w tablicy wektorów przerwań jest tylko adres na DefaultHandler. Mimo tego, że nazwa funkcji obsługi przerwania jest taka sama jak w pliku ze startupem i funkcja...
Witam ponownie, niestety z kolejnym problemem. Obecny problem to błąd L6047U przy kompilowaniu, czyli : The code in this image is 33788 bytes - this version of the linker will not create images that large Zgodnie z [url=http://infocenter.arm.com/help/inde... Arm, rozumiem, że kod przekroczył wielkość...
W skrypcie linkera wszystko jest OK, więc generalnie powinno działać jak należy (; Tylko nie wiem jak z tym codesourcery, bo sam nie używam go już od dawna i nie wiem czy tam teraz coś się nie zmieniło w kwestii syscallsów... Jeśli nie jesteś z tym pakietem bardzo zżyty, to spróbuj albo "linaro" ( https://launchpad.net/gcc-arm-embedded ), albo bleeding-edge-toolchain...
(at)BlueDraco: Zgadzam się z Tobą i też się zastanawiam na czym polega ta dziwna maniera polecania zabytkowych, 8-bitowych AVR'ów? Pomijając ich ograniczenia strukturalne, za każdym razem wchodząc na Forum widzę problemy typu: jaki programator, programator nie działa, błędy zapisu, program jest dobry, a jednak nie działa... i tysiąc tego typu problemów...
Zmienne statyczne lokalne podobnie jak globalne lądują na stercie. Sekcje ".bss" lub ".data", skoro działa jak inne jak zero to dlatego że wtedy należą do sekcji inicjowanej ".data" a jak 0 to należą do ".bss". Masz skopany linker script dla sekcji ".bss" jest pewnie gdzieś w lesie albo we flashu. No i jeszcze trzeba się upewnić czy kod startowy traktuje...
Niczym - jest nowszy, szybszy itd. Proponuję rozpocząć przygodę od przykładowego projektu dla stm32f4 z mojej strony, a następnie przenieść podstawowe pliki (tablica wektorów, startup, Makefile, skryt linkera i pewnie coś tam jeszcze) do projektu który chcesz rozwijać. Generalnie Twój problem wynika z tego, że nie dodałeś do projektu syscalls, w których...
Zamiast instalować Windowsa, to ściągnij sobie z mojej strony przykładowy projekt - weź ten dla STM32F1 albo dla STM32F4 - i na jego podstawie opracuj sobie szablon dla STM32L1. Mogę Ci nawet wrzucić kilka plików, bo kiedyś robiłem projekt na STM32L1 i mam ich kilka. http://www.elektroda.pl/rtvforum/topic13... W Twoim projekcie nie ma tablicy...
Wyrównanie stosujesz domyślnie dla każdej sekcji ? Czy tylko .text ? Aktualnie stosuję dla wszystkich które lądują w takiej lub innej formie we flash i zawierają kod. Natrafiłes na podobny problem czy dałeś wyrównanie profilaktycznie ? W commicie jest to opisane - obiekt z odpowiednio dużym wyrównaniem potrafił sprawić, że kod przestawał działać prawidłowo,...
W emulowanym EEPROMie najwygodniejszą opcją jest przechowywanie danych o stałym rozmiarze, który przy okazji w jakiś sensowny sposób pozwala wykorzystać rozmiar strony. Jeśli możesz się ograniczyć tak że KAŻDY wpis ma ten sam rozmiar, to emulowany EEPROM jest opcją. Choć wiele zależy od tego jaki dokładnie STM32 - w niektórych (np. STM32F4) najmniejszy...
No więc faktycznie nie ma dostępu bit-band do obszaru 0x10000000. Szkoda, że kompilator nie ostrzega przed próbą takiego dostępu. Problem z automatycznym umieszczaniem zmiennych w dodanej sekcji (0x22000000) można zrealizować dzięki funkcji linkera ImageLength(<nazwa sekcji>), której zwróconą wartość można wykorzystać przy deklarowaniu adresu...
W takim razie wygląda że wszystko mam dobrze skonfigurowane teraz chciałbym w końcu przetestować całe środowisko i napisać prosty program. Zainstalowałem GNU Coreutils i szukałem jakiegoś przykładowego programu tak aby zawierał wszystkie niezbędne pliki (makefile ,linker itd). Niestety nie ma nic takiego pod stm32f4 na stronie autora. Dla tego mam prośbę...
Jestem w błędzie ? Tak, bo do samej kompilacji to Ci jeszcze potrzebne kilka plików - startup, skrypt linkera, tablica przerwań - zakładam tutaj, że sprawę Makefile załatwia Netbeans. Standardowo więc poradzę to co zawsze - ściągnij z mojej strony przykład dla stm32f4 i zobacz jak to jest tam zrobione pod "lepszym" IDE (; http://www.elektroda.pl/rtvforum/topic13...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Przy samodzielnej konfiguracji PLL większego problemu raczej nie ma, co najwyżej aby była podstawowa konfiguracja ustawiana z automatu aby szybko sprawdzić działanie przykładowego projektu. Tak jak mówiłem - na chwilę obecną do tego można odpalić bez zmian obecny przykładowy projekt Właśnie mi chodzi o te dodatkowe możliwości jakie daję STM32F107 -...
Witam, na zrzucie ekranu pokazał ci się błąd linkera, który nie jest w stanie połączyć skompilowanych już bibliotek z twoim kodem. W pliku "arm-gcc-link.ld" trzeba dostawić trochę deklaracji. Niestety, sam zajmę się podobnym tematem dopiero za 3 m-ce i w tej chwili nie jestem w stanie pomóc. Jednak mogę poradzić aby uruchomić MDK Keila i tam wypróbować...
CooCox: Menu Project->Configuration, panel "Memory Areas", radiobutton "Debug in RAM" zamiast "Debug in Flash". Będzie widać, jak zmienią się adresy w polach powyżej radiobuttonów. Niestety po takim zabiegu nie da się po prostu nacisnąć "download" trzeba wejść w tryb debugowania a ten tryb u mnie nie chodzi(da się kompilować, wgrywać normalnie programy...
Co do stosu to nie jestem pewien. Wziąłem ten skrypt linkera: https://github.com/PaxInstruments/STM32C... Widzę tam tylko: _Min_Stack_Size = 0x400;; /* required amount of stack */ Czy rozmiar stosu jest jeszcze gdzieś indziej? Bo...
Litości, ludziska. Tzw. "emulacja EEPROM we Flash" jest tak starą i znaną rzeczą, że naprawdę nie ma co wałkować. Tu na forum też temat wraca z raz na 2 miesiące, z linkami do rozwiązań i not aplikacyjnych. Praktycznie we wszystkich moich ARMowych projektach mam parametry zapisywane do Flash na b. różne sposoby, często jet to klasyczna "emulacja EEPROM"....
Chcę spróbować któregoś z rozwiązań: 1. Przełożyć projekt do CooCox'a Projekt ma kilka folderów: http://obrazki.elektroda.pl/5839817700_1... Czy to powinienem dodać tak po prostu przez "add group" i "add file"? 2. Odpalić demo w Keilu. Czy to nie dziwne że demo ze strony jest tak duże? Ten serwer to tylko strona HTTP a pokazuje:
Posiadam płytkę STM32F4 Discovery Disco z wyświetlaczem LCD-TFT. Na płytce zaprojektowałem już wcześniej inny projekt, do którego teraz chciałem dołączyć obsługę wyświetlacza. Znalazłem bardzo ciekawy tutorial, w którym mowa o wykorzystaniu bibloteki STemWIN http://en.radzio.dxp.pl/stm32f429idiscov... Tak więc poczyniłem...
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...
Konsola po czyszczeniu projektu: [syntax=xml]21:50:02 **** Build of configuration Debug for project STM32_project **** make all Building file: ../system/src/stm32f4-hal/stm32f4xx_hal.... Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall...
Witam, Po otrzymaniu przerwania od zewnętrznego przetwornika wchodzę do funkcji: void EXTI4_IRQHandler(void) { int b; b = c+d; //inna_funkcja(&b); if(EXTI_GetITStatus(EXTI_Line4) != RESET) { EXTI_ClearITPendingBit(EXTI_Line4); } } Program przechodzi przez dwie pierwsze instrukcje int b;b = c+d;.Po wykonaniu trzeciej czyli wywołaniu funkcji bibliotecznej...
Witam. Mam następujący problem. Po kompilacji poniższego kodu za pomocą Eclipse z CodeSourcery otrzymuję częstotliwość Timera wynoszącą 18kHz, natomiast za pomocą programu Keil 53kHz. Wartości te zostały sprawdzone za pomocą oscyloskopu oraz analizatora stanów logicznych, dlatego w tym punkcie wykluczam błąd. Linker, startup i Makefile jest od Freediego....
Jak to zrealizować, może jakiś mały przykładzik... Przykład-szablon dla STM32F4 z włączonym wszystkim co trzeba jest na mojej stronie (pewnie już od 3 lat) - jak dasz w nim obliczenia które są wspierane przez koprocesor (+, -, *, /, pierwiastek, ...) to zostaną one przeprowadzone przez koprocesor przy użyciu stosownych instrukcji. Użycie bardziej skomplikowanych...
Zgodnie z Twoją sugestią postanowiłem skorzystać z Eclipse + GCC. Dlatego pobrałem Eclipse Kepler i do tego dodatek http://obrazki.elektroda.pl/3952580500_1... http://obrazki.elektroda.pl/9612864800_1... Otworzył mi się jakiś przykładowy programik, (w opcjach parametry dla kompilatora, linkera i assemblera są też już...
Witam, programuję od 2 miesięcy mikrokontrolery STM32. Środowisko jakiego używam do tego to CubeMX do generowania konfiguracji oraz System Workbench for stm32 (eclipse z nakładką). Co ważne używam tego na Windowsie (a nie ma linuksie). Tydzień temu odinstalowałem eclipse i zainstalowałem ponownie (czemu, nie powiem :), zrobiłem to) i od tego momentu...
(at)gaskoin Jak by nie patrzec zegar, porty, jakis timer, dac, adc, dma, USART i masz juz znaczna czesc RM do przeczytania... Chodzi o to ze sa bardziej zlozone niz AVR-y PICe itp. i tych rejestrow trzeba wiecej poustawiac... a znajomosc dzialania jakiegokolwiek prostego procesora wiele ulatwia. Mozna zaczynac od zera ale trzeba poznac od podstaw wszytko...
Naprawdę proponuje na początek coś bardziej przyjaznego początkującym (bo po pytaniach sądząc do nich się zaliczasz). Oczywiście zaraz grko stwierdzi że dla początkujących nie ma nic lepszego niż pisanie makefile-ów i skryptów linkera "z palca", ale jednak lepiej mieć przyjemność z programowania, niż nieprzyjemność z konfigurowania czegoś czego się...
Wiesz co ja dopiero zaczynam z programowaniem stm ale jedna sprawa rzuciła mnie się w oczy. twoja funkcja jest prawie funkcją z biblioteki której definicja i rozwinięcie znajduje się w pliku core_cm4.h [syntax=c] __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible...
Nawet jeśli to 100 MHz jest w środku to ilość kondensatorów odsprzęgających, wymogi co do ich położenia, czy płaszczyzna masy pod MCU powodują, że tak pięknie to nie jest. Akurat plane masy stosować należy zawsze. Odsprzęganie też i to świadomie. Nikomu bym nie polecał kładzenia MCU na płytkach jednowarstwowych, a na dwuwarstwowych da się już porządnie...
Od kilku dni zabawiam się kamerką OV7670, próbuję pobrać z niej obraz w formacie RGB565 i o mało ambitnej rozdzielczości QCIF(bo taki zmieści się w całości w RAM). Program, który napisałem ma za zadanie w przerwaniu pobrać obraz do pamięci, zatrzymać przerwanie i zapisać zawartość do pliku bmp. Oto mój kod : Otw. pliku 0 Init OV7670 1 System Clock 120...
Zanim doszło do awarii to kontroler pracował normalnie, tzn: gdy zmieniałem kod (co 3 min), aby sprawdzić wartości jakie wartości wykonuje na np. serwomechanizmie i silniku to resetowałem go i wgrywałem nowy. Nie nadpisywałem kodu, aby poprawnie działał. Próbowałem odinstalowywać sterowniki na każdym porcie COM (3,4,5), następnie instalowałem dla CH341....
linker error stm32 linker stm32f0 discovery
siemens ustawić piekarnik światłowód czego pomiar prąd rozrusznik
diagnostyka nissan diagnostyka nissan
Pojemność wsadu pralki Bosch WFD 1260 - 5 kg Czarny wyświetlacz radia Renault Kadjar 2016 - przyczyny i rozwiązania