Uzależnić tą regułę od pliku elfa: print_size : $(ELF)
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...
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)...
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...
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?
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...
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.
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...
Pokaż Twój makefile i skrypt linkera
Makefile generowany automatycznie przez eclipse.
Jak znaleźć skrypt linkera? Jakie ma rozszerzenie? makefile chyba nie ma.
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...
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.
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...
Spróbuj programować płytkę trzymając przycisk reset.
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...
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).
(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
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...
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,...
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...
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...
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...
...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...
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!!
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...
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 ;/
SRCS_DIRS zapisz w jednej linii, kolejne foldery oddziel spacjami i nie stawiaj slasha na końcu ścieżki.
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...
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
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...
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...
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.
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!!
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?
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,...
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/...
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
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...
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...
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...
Ś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...
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...
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 (;
(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.
Ok dzięki, cos z tym makefile jest nie tak? Dodano po 2 makefile:41: polecenia dla obiektu 'disc.elf' nie powiodły się
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...
Utwórz nowy plik z rozszerzeniem cpp. Makefile (lub wbudowany generator eclipse) skompiluje go programem g++. Potem zlinkuje z resztą kodu w C.
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...
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!!
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, 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...
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.
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...
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ń...
Hmm. Dodatkowej wtyczki nie instalowałem czyli korzystam chyba z tych które były od razu w Eclipsie Helios CDT 7.02 SR2. W toolchain editor wybrany builder jest GNU Make Builder. W instalation details/plug-ins jest tam jakiś C\C++ Standard make build UI. No nie jestem biegły w tych zawiłościach eclipsa i wtyczek. Zainstaluj, warto... Potem New C Project...
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...
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,...
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...
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...
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.
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...
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...
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...
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!!
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...
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...
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...
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...
Minimalizm totalny a ty się dziwisz. Weź stosuj makefile Freddiego. Masz automat, z dodaniem każdego pliku chcesz makefile edytować? Przesada
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);...
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!!
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ę,...
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...
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...
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]#===========================...
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...
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...
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...
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},...
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...
Święte słowa. Ja właśnie metodą kopypejstu wyprodukowałem pierwszy swój program na STM32 migający ledami z systickiem jako delay. Weflaszowałem go przez bootloader i odpalił za 1szym razem. Ho ho - powiedziałem sobie. Wszystko ładnie zatrybiło. Zegary się poustawiały, przerwania, wektory. Wszystko. Właśnie dzięki temu że budowałem już z kawałków sprawdzonego...
a potem wystarczy zapomnieć przecinka w kodzie i proc wisi Na pewno nie. :D dlaczego wszyscy wszystko tak komplikują? Wszyscy Ci piszą po kilka razy co musisz zrobić. Każdy STM32 da się doprowadzić do "stanu fabrycznego". Zastanawiam się nad XMEGĄ 64A3 bo dostałem gratis trzy sztuki ale tam tez trzeba przepisać oprogramowanie bo to inna architektura...
Cześć Mam projekcik w C i doszedłem do wniosku że przydała by mi się obiektowość. Projekt robię w code sourcery oparty na przykładzie Freddiego. Jeśli korzystam z C wszystko jest ok - kompiluje się, linkuje i na procku wszystko działa tip top. Teraz w makefile ustawilem USES_CXX = 1. zmieniłem nazwę pliku main.c na main.cpp. Pliki c kompiluje za pomocą...
Zdałem się na inteligencję czytającego: cytując z lenistwa nawet makro do BB, zasugerowałem istnieje takich mechanizmów na pamięci a nie gpio. Nie wiem w czym ten spór miłośników różnych świat ale IDE to to prostu edytor tekstu z możliwością zautomatyzowana pewnych czynności i w znanych mi dobrze zaprzyjaźniony z make :). Tak że IDE i make się bardzo...
Ze względu na wiek, żebyś się nie na wabił frustracji oraz zniechęcił do świata embedded, to wybierz IDE, które już w pakiecie instalacyjnym zawiera w sobie wszystko co trzeba. Jeśli chcesz uniknąć tej całej magii, która kryje się pod takimi rzeczami jak Makefile, linker, czasem skrypt linkera, to proponuje ściągnąć takie oprogramowanie, które robi...
makefile stm32 stm32 makefile eclipse stm32 problemy makefile
wymiana turbo znajduje filtr oleju amilo instrukcja
samsung le40n87bd gdzie naprawie cewke elektrozaworu
Korektor impedancji głośnika wysokotonowego w zwrotnicy Pomiar diody BAP401/200: wyniki i interpretacja