Uzależnić tą regułę od pliku elfa: print_size : $(ELF)
W skrypcie linkera. Kompilator tworzy jakieś sekcje (pewnie coś z obsługi wyjątków, takich sekcji jest kilka), które nie mają wpisów w skrypcie linkera, a więc domyślnie trafią one do RAM (tak jakbyś zrobił SECTIONS ... { ... } > RAM AT >RAM), ale zawartość tej sekcji jest inna niż same zera. Linker wypełnia więc obszar od flasha (adresy 0x8000000)...
Tylko w tablicy wektorów musisz poprawki wprowadzić. Skrypt linkera nie ma tu znaczenia. 4\/3!!
A jak miałoby działać zdefiniowanie biblioteki do linkowania w includes? ... Właściwości projektu, C/C++ General -> Paths and Symbols -> Libraries , kliknąć Add... , wskazać ścieżkę do pliku i poprzedzić ją dwukropkiem. Jeśli masz strukturę katalogów jak na wskazanej stronie, to możesz wpisać: :${ProjDirPath}/GUI/Lib/ST...
tak tak, na początku było 0, dałem 100..ale wydaje mi się że tyle powinno wystarczeć na wykonanie skoku. No nie wiem, dziwna sytuacja...zamieszczę linkera i makefile.
Dzięki wielkie jak tylko będę miał chwilke to skonfiguruje wg opisu jak na blogu. Mam nadzieje że programy które już mam w atollic napisane nie będą wymagały mocnych zmian poza makefile.
Ok, spróbuję w pierwszej kolejności się w to wgryźć i zobaczę, czy da się to łatwo podzielić pomiędzy Makefile.Init, Makefile.Defs i Makefile.Targets wywoływane w poszczególnych momentach prze ten Makefile generowany automatycznie... Jeśli nie, to rzeźbię tego który jest i rezygnuję z automatu. W makefile nie ma magii. To oczywiście przenośnia, ale...
Dziwne te niektóre pliki, ale z grubsza wszystko wygląda jak należy... Wiele rzeczy mogłoby spokojnie być we flash, ale w skrypcie linkera są umieszczone w RAM. Niemniej jednak zacznij od dodania "__STARTUP_CLEAR_BSS" do AS_DEFS w Makefile i zobacz czy może dzięki temu problem zniknie. Masz debugger?
Wygląda na to, że się całość się jakoś skompilowała pomimo warningów i zlinkowała (bo powstały mi pilki hex i elf). ...aczkolwiek rozmiar pliku wynikowego *.hex = 34 bajty każe przypuszczać, że jeszcze sporo przede mną... Brakuje Ci tablicy wektorów i startupa. Prościej będzie Ci zacząć od kompletnego przykładu, ewentualnie od przykładu + modyfikacje...
Ale nikt nie karze ci z AC6 czy innego eclipsa korzystać. Jednak dziś uważam, za stosowne posiadać umiejętność jego obsługi. Link podałem, makefile masz działaj.
Pokaż Twój makefile i skrypt linkera
Jak znaleźć skrypt linkera? Jakie ma rozszerzenie? makefile chyba nie ma.
Makefile generowany automatycznie przez eclipse.
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...
Ta linia: [cc] 0 total files to be compiled. Powinna Ci dać do myślenia. Pokaż więcej plików z Twojego projektu (Makefile, źródła, skrypt linkera).
Czy to naprawdę jest takie skomplikowane, czy tylko tak mi się wydaje? Jeśli nigdy przedtem nie pisałeś makefile'i to może to wyglądać zniechęcająco. Najlepiej będzie jak będziesz się wzorował na czymś gotowym np. [url=http://www.olimex.com/dev/soft/arm/... olimeksa dla STM32 albo [url=http://www.siwawi.arubi.uni-kl.de/a...
Tylko tych funkcji będzie bardzo dużo, najlepiej żeby to dodać do całych plików, bo raczej do katalogu się nie da z poziomu gcc Jeśli te funkcje umieścisz w jednym pliku, to powstanie z nich jeden plik obiektowy. Wystarczy dopisać do makefile linijkę wywołującą dla niego objcopy i zmienić nazwę segmentu .text, a potem linkerowi podać gdzie ta sekcja...
W przypadku drugim nie zmieniaj adresu RAMu na zewnętrzny, tylko podejdź do sprawy kompleksowo 1. W skrypcie linkera dodaj nowy obszar pamięci: MEMORY { rom (rx): org = 0x08000000, len = 128k ram (rwx): org = 0x20000000, len = 20k ext_ram_0 (rwx): org = ?, len = ? } 2. Poniżej dodaj stosowne symbole początku,...
nie działa np. for ( int i; ...., trzeba najpierw zdefiniować zmienną a potem dopiero użyć jej w pętli for co może nastręczyć problemu podczas importowania jakiejś biblioteki, oczywiście nie sugeruję, że powinieneś używać c99, zastanawiam się tylko w drodze zdobywania wiedzy uznałeś jakąś przewagę jednego nad drugim. skoro nie to zmieniam Makefile na...
(at)dancios Mogę ci na mejla wysłać projekt z FreeRTOS 7.5.2 . Ale tam jest straszny bałagan i ja żadnym specem o FreeRTOS nie jestem i mogą być błedy, ale działa kompiluje się, są jakieś dwa zadania testowe, kilejka. Projekt dla STM32F4Discovery , eclipse , linaro na makefile bazującym na przykładach Freddiego. P.S. używam bibliotek od STM
Pliki z gpio możesz przecież wziąć z innego przykładu (; W obecnym stanie - weź makefile z przykładu dla LPC1114. 4\/3!!
Nie widząc gdzie wpisać load posłużyłem się h-jtagiem. Właśnie-gdzie i jak wpisać ten load i czy z jakimiś parametrami? Zerknij do mojego tutoriala o ARM toolchain - na końcu jest o debuggowaniu i tam właśnie jest użyta ta komenda. Używasz jej tylko przy GDB (debugger). Można też wgrać bezpośrednio - odpalasz OpenOCD, odpalasz telnet i używasz komendy...
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...
Jak już pisałem w komentarzach do artykułu - jutro powinien być gotowy przykładowy projekt dla LPC2103, a wraz z nim wszystkie potrzebne pliki, w tym Makefile. Taki sam przykładzik powstaje też dla STM32. 4\/3!!
Spróbuj programować płytkę trzymając przycisk reset.
Teraz pozostało mi przenieść projekt z stm32 na lm3s, ponieważ zajmuję się tym w wolnym czasie od pracy, to efektem podzielę się pewnie za kilka dni. To naprawdę nie jest dużo roboty, generalnie (pomijając detale typu zmiana nazw plików czy nazwy projektu) trzeba zrobić mniej więcej "aż" tyle: 1. poprawić tablicę wektorów (to i tak byś miał kiedyś...
Witaj Freddie Chopin, Przeglądając i uruchamiając swój pierwszy program na STM32 CL zauważyłem takie małe niedociągnięcie w pliku makefile z przykładu zamieszczonego u Ciebie na stronie. może napiszę co zmieniłem w nim: # define paths heare CORE_PATH = ./stm32/CMSIS/Core/CM3 STM32_STDPERIPH_PATH = ./stm32/STM32F10x_StdPeriph_Driver # output folder OUTPUT_DIR...
Po pierwsze w Makefile musisz włączyć wsparcie dla C++ (chyba się to nazywało __USES_CXX albo jakoś tak - będzie komentarz). Po drugie dodaj sobie do projektu plik z funkcją _sbrk_r() - np. ściągając "syscalls" stąd - http://www.freddiechopin.info/pl/downloa...
...zainstaluj gotowe środowsko np openstm (SW5, AC6 to po prostu inne nazwy). Nie, to nie są inne nazwy. AC6 - to jest firma, która tworzy to oprogramowanie na zlecenie ST Microelectronics. SW5 - a co to? SW4STM32 - to jest skrót od Software Workbench For STM32 i jest to nazwa środowiska (IDE) na bazie Eclipse, które jest dedykowane do mikrokontrolerów...
Dołączę się do tematu. Mam ten sam problem. Jednak korzystam z plugina, który tworzy makefile i niebardzo wiem w które miejsce wstawić LIBS = -lm Nie szukam rozwiązania typu stwórz samemu makefile bo mam średnie pojęcie o tym ;/
Kombinuje i cuduje i nic mi nie wychodzi :( jednak się nie poddaję Takie pytanko.... O co chodzi z tym (na stronie jest coś takiego napisane) git clone https://github.com/libopencm3/libopencm3 export OPENCM3_DIR=$PWD/libopencm3 cd libopencm3 make cd ../ git clone <repo-url> cd els # edit Makefile to pick target make
Być może czegoś nie wiem, bo nie jestem specjalistą w tej dziedzinie, ale uważam, że porady Kolegów co do "zwykłego edytora" czy też "nie da się, bo nie" są błędne. Na poziomie "czystego" Eclipse dla C/C++ można skonfigurować ścieżki do bibliotek. W mojej opinii to nie jest taki "tylko edytor", ale być może tylko dla początkującego... Zrobienie swojego...
SRCS_DIRS zapisz w jednej linii, kolejne foldery oddziel spacjami i nie stawiaj slasha na końcu ścieżki.
Możesz przekonwertować plik na tablicę C (jest wiele narzędzi, poza tym to max kilkanaście linii w większości języków). Albo wygenerować od razu plik obiektowy i zlinkować z programem. arm-none-eabi-objcopy -I binary -O elf32-littlearm --set-section-flags .data=alloc,load,data,readonly --rename-section .data=.rodata plik.bin plik.o Dodaj plik plik.o...
Pobierz sobie z mojej strony jakiś przykładowy projekt i zobacz jak to jest zrobione w pliku Makefile. http://www.freddiechopin.info/pl/downloa... 4\/3!!
A ten poważny błąd w skrypcie, to jaki (i czemu działa podstawowa wersja, skoro skrypt jest zły)? Działa tylko dlatego, że nie masz żadnych zmiennych globalnych/statycznych. Dodaj sobie takową i spróbuj zmienić jej wartość to się przekonasz. Opcje kompilacji także starałem się ograniczyć do minimum, może czegoś brakuje, albo jest za dużo? Twój zapęd...
Bardzo fajna alternatywa dla Eclipse. Jeszcze nie przeczytałem całego ale chciałbym zadać pytania. Czy jest możliwa konfiguracja projektu typu makefile? Chodzi mi o podobną funkcjonalność co w Eclipse. Chciałbym mieć zakładkę z targetami z makefile. Czy dobrze działa indekser? Czy jest jakaś możliwość podglądania rejestrów periferiali?
wiesz - moze jest cos o czym nie wiem, niemniej jednak dla testow sprawdzilem taki ultra proty kod (bez startupa i innych bajerow, po prostu jakis main i jakies operacje) i wygladalo w miare ok. moze biblioteki sa jakies dziwne i nie beda dzialac na stm? tak czy siak zamiast toolchain'a yagarto mozna sciagnac toolchaina codesourcery, ktory oficjalnie...
Miałem nadzieję, że mnie to ominie ale jeszcze nie jestem w stanie napisać wszystkiego bez użycia bibliotek od STM. Po wykonaniu czynności z tutoriala, wyrzucało jeszcze błąd assemblera, zmieniłem dodatkowo w makefile '=' na '&=' w funkcjach: uint32_t __STREX*. Resztę zmian wprowadzałem zgodnie z instrukcjami, uważnie. Skrypt linkera nie zmieniany,...
Ok, widzę, że wcześniej skopiowałem Makefile z projektu STM32 i tam nie ma FPU # core flags CORE_FLAGS = -mcpu=$(CORE) -mthumb Nie wiem natomiast gdzie usunąć ścieżki include, bo jedyne miejsce, które bym podejrzewał o ich dodanie w Makefile to: # include directories (absolute or relative paths to additional folders with # headers, current folder is...
... a ja potrzebuję docelowo generowanego automatycznie. W kontekście dalszego postu, mówimy o tej wtyczce: [url=http://sourceforge.net/projects/gnu... ARM Eclipse do generacji makefile'a?
Oto Twoja wersja troche przerobiona tak aby poszła z ram czyli modyfikacja main zmienilem też skrypt linekera i makefile. Ladujesz to przez load_image C:\\ARM\\...\\flash.bin 0x20000000 a odpalasz resume 0x20000000
Szukam przykładów programów dla środowiska WinArm na procesory ARM z rdzeniem Cortex-M3 rodziny STM32 firmy ST Microelectronics. Głównie chodzi mi o skrypt linkera, makefile i plik startowy.
Jedyne co zmieniłem to w Makefile'u toolchain na arm-linux-gnueabi (linaro). Jest to bardzo poważny błąd, bo to NIE JEST toolchain bare-metal! To MUSI być arm-none-eabi- i na stronie linaro jest też paczka dla linuxa https://launchpad.net/gcc-arm-embedded/4... openocd -f ~/Pulpit/stm32/openocd-0.6.1/tcl/interfa... -f ~/Pulpit/stm32/openocd-0.6.1/tcl/target/...
Witam. Mam pytanie do znawców STM32 i tanich chińskich płytek z STM32F103C8T6 na pokładzie. Czy jest do tego jakiś odpowiednik avrdude znanego z AVR? Generalnie nie jestem miłośnikiem IDE, programy piszę sobie w edytorze, kompilację i upload do MCU załatwiam Makefile i jestem z tym szczęśliwy. Jakimi narzędziami ugryźć w podobny sposób STM32? Chodzi...
Do "SRCS_DIRS" katalog dodajesz normalnie. Jeśli folder lib jest w głównym folderze projektu (tam gdzie Makefile), to po prostu dopisz tam "lib" - bez cudzysłowów lub z nimi - to raczej bez znaczenia - cudzysłowy będą konieczne, gdyby folder zawierał spacje lub inne dziwne znaki, więc lepiej darować sobie zawsze dziwne znaki i cudzysłowy. W przypadku...
podejrzyj sobie plik ...watchog.c, zobacz czy zawiera té funkcję, zobacz czy w ogóle jest kompilowany oraz czy jest jest na liście plików obiektowych dla linkera. I będziesz wszystko wiedział. Dodano po 4 PS zrób clean project, a następnie uruchom kompilację i wtedy zobaczysz czy jest kompilowany. Jezeli nie jest to musisz go dodać do projektu - tak...
Wszystko jest w Debug/makefile ? Tam albo w plikach które są przez niego "wciągane" przy pomocy dyrektywy "include".
Bierzesz przykładowy projekt z mojej strony, wrzucasz do tego FreeRTOSa - czyli dodajesz katalogi FreeRTOSa do odpowiednich pól w Makefile: [syntax=bash]# additional directories with source files (absolute or relative paths to # folders with source files, current folder is always included) SRCS_DIRS = FreeRTOS FreeRTOS/portable/GCC/ARM_CM3 FreeRTOS/portable/MemMang...
Pokaż raczej jak jest skonfigurowany target dla kompilatora. Widać w konsoli, że nie jest ustawiony w ogóle. Ale muszę wam przyznać rację - ustawienie tego wszystkiego przy użyciu Makefile na pewno zajęło by dłużej niż przy takim wygodnym środowisku w którym po prostu wszystko działa od razu (;
Ściągnij z mojej strony przykładowy projekt dla stm32. Będziesz w nim musiał zmienić następujące rzeczy: - w skrypcie linkera adresy i rozmiary pamięci - w tabeli wektorów nazwy i lokalizację "dodatkowych" przerwań (kilkanaście pierwszych jest standardowych dla całej rodziny Cortex-M3) - podstawowy kod w pliku main.c - oczywiste (; Startup i Makefile...
Utwórz nowy plik z rozszerzeniem cpp. Makefile (lub wbudowany generator eclipse) skompiluje go programem g++. Potem zlinkuje z resztą kodu w C.
W mikrokontrolerach AVR wystarczyło tylko dodać słówko "PROGMEM" przed tablicą, a potem odczytywać za pomocą funkcji pgm_read_byte(). Tak dla uzupełnienia - wystarczy dodać __flash i nie trzeba dalej kombinować. A w nowszych mamy już jednolitą przestrzeń adresową i można tak jak na ARM - po prostu poprzedzić przez const. Ikonki generuję sobie przez...
Witam, Korzystając z makefile of projektu FreddiegoChoppina z STM32 blink... po drobnych modyfikacja flagi kompilacji na m4 oraz ścieżki dostępu do pliku linkera konsola wyrzuca mi taką informację: [syntax=actionscript] **** Build of configuration Default for project bob **** cs-make all Linking target: out/bob.elf arm-none-eabi-g++ -mcpu=cortex-m4...
(at)grzegorzn Korzystasz z makefile czy Twoje IDE samo generuje makefile? Możesz wyrzucić: -march=armv6-m -mfloat-abi=softfp -mfpu=fpv4-sp-d16 oraz na 100% -nodefaultlibs jak zauważył Freddie.
Przecież TrueStudio to JEST Eclipse i gcc, więc tracisz kontrolę nad tym czego używasz i pełnię możliwości tych dwóch DARMOWYCH programów. Do Eclipse'a też są wtyczki tworzące automatycznie Makefile i wtyczki do podglądu rejestrów peryferyjnych - darmowe i bez ograniczeń. 4\/3!!
Ok dzięki, cos z tym makefile jest nie tak? Dodano po 2 makefile:41: polecenia dla obiektu 'disc.elf' nie powiodły się
A co to za edytor? Sublime Text 3 lub Visual Studio. Choć wolałbym pracować z VS bo ma lepszą organizację kodu. Pisząc modułu/pliki nagłówkowe w VS nie trzeba się martwić ich kompilacją, wszytko jest ładnie linkowane. W edytorach typu Sublime czy Edit+ trzeba zadbać o makefile lub jakąś inną organizację, i tego chciałbym uniknąć, no chyba że macie...
Definicja tcp_timer_needed() jest w pliku tcp_impl.h, żródła w timers.c. Plik tcp_impl.h zaincludowany w tcp.c z resztą tu nic nie zmieniałem. Po dopisaniu #include "lwip/timers.c" program się kompiluje owszem i wszystko działa ale mam potem problem z kompilacją gdy chce dodać liczniki softowe pod freertos a to za sprawą includeowania pliku timers.h....
Użytkuję płytkę STM32F429-Discovery, środowisko budowałem w oparciu o poradnik od Freddiego, makefile oraz skrypt linkera także od Freddiego, tak słowem wstępu. Problem który napotykam jest związany z powrotem z przerwania EXTI0. Jeżeli przerwanie zostanie wyzwolone, w tym przypadku pojawi się zbocze narastające na PA0 do którego mam podpięty przycisk,...
Witam wykonałem wszystko tak jak w przykładzie i odpalając testowy projekt Freediego (z konsoli lub eclipse ten sam wynik) stm32_blink_led-1.2.1-120107 dostaje następujące błędy: In function `__default_low_level_init': /home/janek/Pulpit/stm32_blink_led-1.2.1... undefined reference to `__process_stack_end' /home/janek/Pulpit/stm32_blink_led-1.2.1...
Freddie Chopin korzystam z twojego startup'a oraz skryptu linkera W przykładach jest chyba więcej plików - np. Makefile, którego można albo użyć bezpośrednio, albo choć zobaczyć jakie tam są opcje i założyć że są do czegoś potrzebne. 4\/3!!
A ja bym w Makefile-u dodal -I./lcd w opcjach kompilacji. Apeluje rowniez zebyscie przestali nazywac jezyk C jezykiem C++. Douczcie sie rowniez elementarnych informacji o kompilacji i linkowaniu.
Skorzystaj z mojego skryptu linkera - ten który masz jest niewystarczający. W artykule nic nie pisałem o zastępowaniu skryptu linkera innym... Przy okazji: dorzucając FreeRTOS'a do projektu, w makefile'u wystarczy dodać ścieżki do źródeł systemu, czy wymagane są dodatkowe informacje dla kompilatora? Trzeba "przyczepić" 3 funkcje FreeRTOSa do 3 przerwań...
Witam, Mam problem z uruchomieniem debugowania w Eclipse. Po zbudowaniu środowiska w toolchainie : http://www.freddiechopin.info/index.php/... i dołączeniu plików makefile , startup i linkera z przykładu dla STM32 udaje się skompilować projekt. Niestety nie potrafię uruchomić deguggera. Po odpaleniu OpenOCD jest...
Nie zgadzam się ;) Pisałem kiedyś coś na AVRa, w C ale było to dawno, małoskomplikowanie i dodatkowo napisałem ostatnio w C soft do detekcji kolorów na STM32 (na przetworniku TCS3200D) opierałem się na templacie Freddiego (skrypty linkera oraz makefile (bez używania libów)) więc "nie zaglądałem głęboko pod maskę" i myślę, że w końcu powinienem - więc...
Wszystko fajnie, pod warunkiem, że chce się używać STM32. Dodanie podstawowego wsparcia dla innych układów jest porównywalne z postawieniem projektu na FreeRTOSie - ot po prostu musisz mieć tablicę wektorów i skonfigurowane rozmiary/adresy pamięci i dokładny typ układu. We FreeRTOSie przecież wsparcie dla STM32 czy dla LPC tak samo nie istnieje - tablicę...
Witam kolegów! Chce zaprogramować stm32f107 i mam już całkiem pokaźny kod który się ładnie kompiluje. Niestety plik elf i hex są puste (prawie puste:)) Oto końcówka kompilacji: Building target: waga_przeplywowa_eth.elf Invoking: Cross ARM C Linker arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -O0 -fmessage-length=0 -fsigned-char...
nie kompilator, a linker. Słowa kluczowe section i region i makefile . W mapach pamięci wlasciwe dane uklada nie kompilator, a linker. Jemu musisz powiedzieć, jak poukładać sekcje i regiony w obrębie dostępnych adresów...
Pytanie do Frediego. Pobrałem szablon dla STM32 i chciałbym ustawić konfigurację tak abym mógł tworzyć biblioteki własnych procedur w określonej strukturze tzn o ile pliki z rozszerzeniem h mogę umieszczać w dodanych katalogach np lib_user/inc/moj.h i taką ścieżkę w includach w plikach projektu to już z plikami c nie działa. Pliki c muszą być w katalogu...
Stary kompilator, nowy sposób podawania argumentów. W GCC, od wersji chyba 4.8, można właczyć optymalizację "przyjazną" dla debugingu (czyli "-Og"). W starszych wersjach GCC optymalizacja (parametr -O) przyjmuje wartości od 0 do 3 i dodatkowo s jak size . Makefile ręcznie pisany, czy generowany automatycznie?
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.
1. W projekcie który zaimportowałeś jest poprawnie skonfigurowany "indexer". 2. Ścieżki dodaje się w Makefile, to co pokazuje Eclipse nie ma żadnego znaczenia. Dodając do powyższego, czego widać nie przeczytałeś, dodawania toolchainowi jego własnych ścieżek jest zupełnie pozbawione sensu. Zaimportuj któryś z projektó z mojej stronki (ten który będzie...
Zrób to po prostu tak: http://www.elektroda.pl/rtvforum/topic13... http://www.elektroda.pl/rtvforum/topic13... W OpenOCD działa ST-Link więc będziesz miał wszystko. Wtyczkę do robienia strasznie skomplikowanej sprawy w postaci generowania Makefile sobie daruj i po prostu oprzyj całość na którymś z przykładów z mojej strony - importujesz...
Cześć, dotychczas podczas programowania wykorzystywałem jakieś IDE i automatycznie generowane projekty. Postanowiłem iść krok dalej i napisać własnego Makefile'a. Na razie wykorzystuję jeszcze skrypt linkera i plik startowy z IDE. Struktura projektu wygląda następująco: ├── Ac6LinkerScript.ld ├── Ac6Startup_stm32.s...
Możesz zerknąć na moją stronę, w dziale Download zamieściłem przykład migania diodką dla STM32. Ponieważ Cortex to Cortex, to masz tam gotowy Makefile, startup. Jedynie niewielkie zmiany będą potrzebne dla skryptu linkera (adresy i rozmiary). Duża część kodu również będzie raczej zbliżona. Anyway - pytanie które postawiłeś jest wysoce niekonkretne,...
Jeżeli masz kwarc o innej wartości, to w kodzie przed załączeniem pliku stm32f4xx.h musisz tą częstotliwość zdefiniować: Kod C - Do GCC też można przekazywać opcje poprzez wywołanie i to w dokładnie taki sam sposób - wystrczy w Makefile w odpowiedniej linii dopisać kolejną definicję. 4\/3!!
Witam, czy nie wpadł ktoś przypadkiem na internecie na tutorial tworzenia pliku makefile dla środowiska Keil uVision lub Eclipse (bo chyba powinny być nieco inne) stricte pod STM32? Było by mi to bardzo potrzebne. Jeśli chodzi o moje próby - dobrych kilku dni walczę z Keilem i Eclipse. Znalazłem klika przykładowych projektów (w postaci main, + biblioteki...
Wiec tak.. Pobralem program z poprzedniego linku i go skompilowalem (nie wiem czemu ale nie posiadam cs-make cs-rm ...): $ pwd /home/holekrob/workspace/stm32_blink_led... $ make Size of modules: arm-none-eabi-size -B -t --common out/startup.o out/main.o out/vectors.o text data bss dec hex filename 104 0 0 104 68 out/startup.o 444 0 0 444...
Minimalizm totalny a ty się dziwisz. Weź stosuj makefile Freddiego. Masz automat, z dodaniem każdego pliku chcesz makefile edytować? Przesada
Ok.. Zmiana na inną wartość nie daje rezultatów.. Działało mi na ustawieniach __main_stack_size = 1024; __process_stack_size = 1024; ale tylko przez chwile bo po dodaniu jednej linijki w programie przestało.. Wygląda to na stos, choć zacząłem się zastanawiać bo takie same problemy miałem z prockiem 512kB.. może powyżej 256 są jakieś problemy z tymi...
Witam. Porozkminiałem mniej więcej (wydaje mi się, że więcej ;) ) Twój przykład na stm32F107VC i teraz mam troszkę zagwozdkę. Generalnie zastanawiam się co mi jest potrzebne do stworzenia własnego projektu. Rozumiem że podstawowe biblioteki znajdujące się w /inc są potrzebne a np /hdr nie jest konieczne. Natomiast co z plikami StartUp i vectors (widzę,...
Praktycznie 100% plików z STM32 będzie kompatybilnych z innymi Cortex'ami. Rzeczy do zmiany: 1. wektory przerwań (to oczywiste [; ) 2. rozmiar i adresy pamięci w skrypcie linkera 3. opcję CORE w pliku Makefile przy Cortex-M0. Jak zwykle więc - http://www.elektroda.pl/rtvforum/topic13... 4\/3!!
Nie sądzę. Tak czy siak ustawiasz to raz i zapominasz. Ew. piszesz uniwersalnego Makefile'a z masą ifeq zależnych od symboli a potem wrzucasz definicje tychże w odpowiednie miejsca w Eclipse'ie. Ale średni ma to sens imho, jedyne czego czasem używam to Build configu w wersji debug i release, mam wtedy -O0 i -Os przełączane z klika. Ale nadal zysk niewielki,...
Walczę dalej. Aktualnie udało mi się zmodyfikować projekt w sposób generujący najmniej błędów przy kompilacji. Całą bibliotekę przerzuciłem to innego folderu w drzewie projektu i wprowadziłem zalecane przez was zmiany tylko dla niego. Mój główny program korzysta jedynie z plików nagłówkowych z rejestrami ( #include <stm32f10x.h> ) i wydaje mi...
Tymczasem ja, od momentu jak PIERWSZY RAZ w życiu używałem ARMów, w postaci antycznych jak na dzisiejsze standardy LPC2103, używałem w zasadzie identycznego zestawu jak używam dziś - GCC, OpenOCD, GDB, Eclipse, make. Ja zaczynałem(5 lat temu) z ARMami od STM32 i zestawu jak powyżej + opis (bardzo pomocny dla zielonego) jak to skonfigurować ze strony...
Jeżeli chodzi o symbole, to gdb "rozumie" tylko tyle, ile kompilator mu przekaże poprzez tablicę symboli w pliku elf. Sam z siebie gdb wie tylko o pamięci (adresy numeryczne) i rejestrach procesora (CPU), bo to jest częścią wsparcia konkretnej architektury procesora, ale już np. o rejestrach peryferiów nie ma bladego pojęcia. Ponieważ widzę, że w pliku...
Coś mieszasz..., pstryka ale się resetuje..., może watchdog zepsuty? Albo pstryka i watchdog zepsuty albo wydaje ci się że pstryka. Hehe, no w zamyśle tak pstryka ;) I wtedy działa długo bezproblemowo... stąd moje domysły Nie wiem, czy mam rację, ale jeśli wspomniany task 1ms ma najwyzszy priorytet i tam restetuje się IWDG, to chyba jedyna możliwość...
Witam. Próbuje sił w STM32. Niestety przy tworzeniu projektu w STM32CUBEMx (STM32CUBEIDE podobnie) nie moge wybrać w PROJECT Managerze Toolchaina dla Atollic Studio. https://obrazki.elektroda.pl/1064209200_... https://obrazki.elektroda.pl/8056842400_... Mam do wyboru tylko: * EWARM * MDK-ARM * STAM32CUBEIDE * Makefile...
Trzeba było od razu pisać (; Nom :( Zbyt małomówny jestem. Do Makefile musisz dodać definicję używanego układu, np. "-Dsam3s1" Makefile mam pobrany z twojego projektu, i faktycznie. Nie zauważyłem, że dalej też są definicje jeszcze z STM32, któe trzeba było zmienić. Zrobiłem według twojej instrukcji i poszło :) [syntax=cpp]#===========================...
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ą liczbe - to by było zupełnie bezobsługowe, da się? Hm,...
Możesz tak zmodyfikować swoje funkcje, aby zwiększały specjalną zmienną globalną na starcie i zmniejszały przed powrotem o tyle bajtów ile zajmują zmienne lokalne danej funkcji. Wartość takiej zmiennej możesz wyrzucać na port szeregowy (co nie zawsze jest możliwe) albo odczytywać debugerem. O wiele prościej wypełnić cały RAM jakąś znaną wartością i...
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 extern short LaderFunADD (short* a, short *b);...
Panowie, dziękuję za zainteresowanie ale okazało się że po uproszczeniu do postaci jaką podałem potem kod działa: Dodano po 1 Zamieszczam stworzony przeze mnie szablon dla procesora stm32l152 853906 Oczywiście szablon powstał przez skopiowanie pliku startowego, skryptu linkera i nagłówków z przykładu dostarczonego przez producenta czyli firmę ST. Ja...
Jak mówiłem - umieść sekcję .jcr w .data w skrypcie linkera i będzie "dobrze" - będzie działać po resecie. Co do pisania Makefile - wszyscy podchodzą do tego jak do jeża, a to naprawdę jest proste, ponieważ nie trzeba tego robić [; , tylko trzeba znaleźć taki Makefile, żeby załatwiał wszystko sam, z ewentualnymi małymi poprawkami [; Jak zwykle polecam...
Z racji że STM32 ma liniową pamięć oraz możliwość zapisu do flasha danych z poziomu aplikacji postanowiłem wykorzystać go do symulacji eeprom. Zapis danych do flash działa OK. Natomiast mam problem z zainicjowaniem struktury pod konkretnym adresem. const D DFLASH __attribute__ ((section(".variables&q... = { {{40,20},26},...
Nikt Ci nie pomoże. A dlaczego? Bo nie podałeś praktycznie żadnych informacji. Jaki kompilator? Jaka wersja? Jaki masz skrypt linkera, startup, tablicę wektorów, Makefile? Jak wygląda Twój projekt? Czy do malloc() dodałeś implementację sbrk()? Jeśli tak, to jak wygląda kod? itd. itd. itd... U mnie malloc() działa, w C++ operator new również, więc nie...
Kolego, kompilator nic nie wie o adresach, typach pamięci i całym tym bałaganie. Cóś jednak wie czasami - bo jak by nie wiedział to jak by avr-gcc generował poprawny kod dla NAS? Zanim zaczniesz pisać takie rzeczy to zrób test ile trwa kommpilacja pliku zawierającego kilkuset kB tablicę. No tak coś koło tej. 0.2sek może 0.5sek, szczególnie że secjalnie...
Przygladalem sie troszke tym plikom dla tup i trzeba przyznac ze fajnie to wyglada. Makefile sie chowa. Chyba nawet jest niezalezne od architektury i moznaby sie pokusic o uzycie tego szkieletu np. dla AVR? Teraz pytanie, czy np. gdybym chcial pod distortos skorzystac z tego nowego HALa STM32, to nie bedzie kolidować? Pomijam zasadnosc ale przyjmijmy...
Witam i dziękuję za podpowiedzi. W makefile'u, którego używałem faktycznie linker nie miał flag -mthumb oraz -mcpu... Do linkowania używałem -gcc, ale i tak dopiero użycie CodeSourcery rozwiązało problem do końca. Kompilowałem ARM GCC sam w opraciu o różnego rodzaju podowiedzi w internecie. I wygląda na to, że tak naprawdę lista flag do kompilacja jeszcze...
stm32 makefile stm32 makefile eclipse stm32 problemy makefile
smart sterownik bezpiecznik dmuchawy termiczny kondensatory sprzężenia zwrotnego
pe1091 v28a001434b1 pe1091 v28a001434b1
Przepalanie bezpiecznika nr 16 w Volkswagen Touran Regulacja gaźnika w pile Faworyt RG 5300 18