Oczywiscie jezeli zamierzasz mocno isc w AVR-y. Jezeli tylko dla zabawy to wystarczy USBASP + ew jakas plytka typu explined mini ze sprzetowym debugerem. Jezeli inwestowac to raczej w 32 bitowe architektury - wiekszosc kolegów i ja osobiscie uzywa jakiejs wersji ARMowskiego cortexa
Można kompilować kod dla rodziny Cortex-Mx bez problemu, ale i tak potrzebny jest linker, assembler i biblioteki. Żeby daleko nie szukać, możesz wykorzystać clang -target armv6m-none-eabi -mcpu=cortex-m0 -mfloat-abi=soft -mthumb -ccc-gcc-name arm-none-eabi-gcc -std=c99 -fshort-enums -fdata-sections -ffunction-sections -ggdb -g3 -O0 -Isrc -o foo.o -c...
Fajnie że mnie tak lubisz ;-) Tylko naucz się jeszcze odróżniać kompilator od jego bibliotek. Wtedy będę mógł bardziej? Sprawiasz wrażenie, jakbyś bardzo chciał, aby nie było to rozwiązaniem :) A tak poważnie, to dla Twojej informacji - to ta opcja akurat ma związek z wywoływaniem właśnie funkcji bibliotecznych a sinus jest właśnie jedną z takich funkcji....
Hej, chciałem zaimplementować zbieranie statystyk w systemie FreeRTOS. Zrobiłem jak w opisie funkcji: 1.włączyłem flagę configGENERATE_RUN_TIME_STATS 2.portCONFIGURE_TIMER_FOR_RUN_TIME_STATS... skonfigurowałem counter. 3.portGET_RUN_TIME_COUNTER_VALUE() - obsłużyłem odczyt z countera. Przy kompilacji poszło ok. Jednak jeśli dodam funkcję vTaskGetRunTimeStats(...
Witam! Do ARM7TDMI jest tego trochę, ale architektura przestarzała (ARMv4, 1993r.), i Cortex-M3 nie obsługuje trybu ARM, tylko Thumb-2. Do Cortex-M3 nie widzę nic, oprócz "The Definitive Guide To The ARM Cortex-M3", którą przeczytałem i jest tam wyjaśnienie tylko działania procesora i kompilacja przykładu właśnie do tej płytki. Człowieku, wszystko...
Witam, od niedawna zacząłem interesować się programowaniem uC więc z góry przepraszam za infantylne pytania. Chcę nauczyć się wszystkiego "od podstaw" - mówiąc od podstaw mam na myśli unikanie korzystania (jeżeli to możliwe) z gotowych libów opisanych m.in. w książce K.Paprockiego oraz tworzenie - w ramach potrzeb swoich - w zależności od zapotrzebowania....
Wystarczy dołożyć funkcję, która zwróci wartość zmiennej. Tak jest zrobione - ta funkcja też nie ma dostępu do tej zmiennej, bo jest wywoływana przez wątek który ma taką a nie inną konfigurację MPU. Ja nie mówię o "dostępie" w znaczeniu widoczności zmiennej w kompilatorze, tylko o prawach dostępu w Memory Protection Unit. To jest specjalny port FreeRTOSa...
Tak się składa, że wiem, że R0 jest wolny a każdy inny zajęty. Dziś jest wolny, jutro jest zajęty - obyś się nie przejechał. No i coś takiego nie działa, bo zmienna StackPointer Działa - potem R4 będzie przepisane do R0 żeby prawidłowo zwrócić wynik. jest ładowana do R4, który to ma być zrzucony instrukcją STMDB Wstawki assemblerowe są dużo bardziej...
Nazwy funkcji można zlinkować automatycznie używając: -mpoke-function-name Write the name of each function into the text section, directly preceding the function prologue. The generated code is similar to this: t0 .ascii "arm_poke_function_name", 0 .align t1 .word 0xff000000 + (t1 - t0) arm_poke_function_name mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub...
Dla mnie jako piszącego w C architektura nic nie znaczy w przypadku typowych programików. Bardziej liczy się co kompilatory wyprawiają z kodem ;) Zdarzyło mi się napisać sterownik na armie. Niestety mimo zabezpieczeń padł mi ten mikrokontroler, a ponieważ drugiego takiego nie miałem, przepisałem kod w części sprzętowej i całość poszła na atmedze. Natomiast...
Czy MCUXpresso SDK może zostać użyty przez programistę do budowania programów, które będą uruchamiane na płytce Adafruit Metro M7? Jaki kompilator C/C++ jest wymagane przez to SDK? Tak, MCUXpresso SDK może zostać użyty przez programistę do budowania programów, które będą uruchamiane na płytce Adafruit Metro M7. Jednakże, aby poprawnie skompilować kod...
Jeśli chcesz pracować na procesorze STM32 to jest tam wszytsko co trzeba. Plugin siedzi w opcjach plugin ale dopiero jeśli otworzysz przykładowy projekt dla STM32 (po zainstalowaniu w folderze). Kompilator to arm-elf-gcc nie wiem czy da sie podłączyć zewnętrzny bo nie miałem takiej potrzeby. Kompilator jest też intalowany razem z Anlgią. Nic prócz wigglera...
A jeżeli zostaniesz na dłużej przy jednym procku/rodzinie, to po kilku latach znowu musisz nadrabiać, bo wszyscy naokoło przeszli na nowsze/lepsze rodziny procesorów, a Ty zaczynasz być wykluczony z tego świata. Problem z tą teorią jest jeden... Nowsze lepsze i wydajniejsze "procki" wymagają większego nakładu czasu, wiedzy, doświadczenia itp. a jak...
Widziałem zdjęcie tego urządzenia kilka miesięcy temu w jakimś temacie, czekałeś na jakiś konkurs, aby wrzucić projekt :) Dobra robota, sam mam na koncie generowanie VGA, na 8bitówcu jest trochę trudniej. Mam kilka pytań: 1. W jaki sposób zrealizowałeś rdzeń systemu, czyli aplikacje? Jest to natywny kod napisany w C wykonywany z Flasha? Aplikacje wczytywane...
Mogło miećto jakoweś szanse powodzenia jeśli kompilator lub optymalizator był w mieczysława pisany (1 stycznia zaraz po północy). "w mieczysława" to chyba raczej przeprowadzasz swoje testy. Kilka osób pisze Ci, że działa to bezproblemowo (nawet Ci wrzuciłem wynik kompilacji Twojego kodu na moim kompie), a Ty dalej swoje... Masz źle skonfigurowany projekt,...
No ja wiem o tym, tylko zastanawiam się czemu linker nie może jeszcze jej pomnozyć przez 32 i dodać do niej 16 To może zrobić bez problemu, ale nie może zmienić kodu wygenerowanego wcześniej przez kompilator. PS zerknij post wyżej, bo dopisałem w tym samym czasie co Ty wysłałeś Albert
Co do printf() i tym podobnych, to u mnie działały jak należy bez dodatkowych zabiegów (oczywiście musi być trochę tej pamięci na heap, dużo pamięci na stos i jeszcze więcej na program Zmiana kompilatora to nie jest rozwiazanie :( Malloc i sbrk działają. Problem jest chyba w samej bibliotece, albo jest to wersja bez obsługi float'ów, albo potrzebny...
Witam szukam przykładów w asemblerze dla Cortex-M3? Gdzie mogę znaleźć źródełka? Cokolwiek, kilka funkcji kompilujacych się makefilem. Ma ktoś? Interesuje mnie również, gdzie kompilator umieszcza, w jakiej kolejności argumenty wywołując funkcję i gdzie znajduje się zwracany wynik. Wie ktoś? pozdr.
Witam Gdy opanowałem ATMEGA, ATXMEGA (ASM, C, MikroPascal) nadszedł czas na potężniejsze jednostki więc wybrałem rodzinę ARMów, kładąc nacisk na Luminary Micro. Wcześniej kompilowałem własne linuxy na routery takie jak Edimax BR-6104KP, ale "wymiatanie" GPIO było w tym środowisku wolne niczym żółw. Ułatwiając start "młodym" adeptom elektroniki, umieszczam...
Wiem że może nie na temat ale, masz jakiś patent na Indexer w Eclipse? Include znajduę wszystkie oprócz dwóch Chyba już to wrzucałem, ale mój patent jest taki - Flagi dla "built-in" muszą być takie jak przy projekcie, czyli wszystkie -std... i -m... muszą być tam też wrzucone. W przypadku tego pierwszego - "build output" - konieczne jest kompilowanie...
Cena 16zł/szt. Kontakt na priv. Nowy LPC810 ARM mikrokontroler w obudowie 8 pin. Kupiłem kilka sztuk i chcę odsprzedać część bo mam za dużo. LPC810 programowany jest przez port szeregowy z użyciem darmowego programu FlashMagic). NXP dostarcza darmowy kompilator LPCXpresso wraz z przykładami. Jest wiele projektów opisanych w necie - tu jest jak zaczać:...
Keil nie obsługuje natywnie arytmetyki stałoprzecinkowej. Cortex-M3 ma instrukcje nasycające rejestr do n-tego bitu, ale żeby z nich korzystać, musisz pisać w asemblerze lub skorzystać z gotowych funkcji CM3_intrinsics. Cortex-M3 nie ma instrukcji natywnie pracujące w jakimś stałoprzecinkowym formacie (np. Q15, jak dsPIC) - te operacje musisz robić...
Fakt są tam nazwy funkcji - jakoś na plik cr_startup_lpc11xx.c nie zwracałem uwagi :) void MOJA_OBSLUGA_INT3_IRQHandler (void) ALIAS(IntDefaultHandler); oraz w main obsługa przerwania na: [syntax=c] // obsluga przerwania od portu GPIO3 void MOJA_OBSLUGA_INT3_IRQHandler (void) { // kod obsługi przerwania... } [/syntax] ale podczas kompilacji nadal dobija...
Kod: [syntax=c]#include <string.h> //Return copy of str string from index position and len length char *StrCpy2(char *str, unsigned short index, unsigned char len) { char *text; text = (char *)malloc(sizeof(char)*(len+1)); if (text == NULL) return text; strncpy(text, str + index, len); text[len] = '\0'; return text; }[/syntax] Odnoszący się do...
Chcesz powiedzieć, że nie działa nawet gdy są sprawdzane dwie flagi? Dokładnie, przy dużych prędkościach jest ok, ale jak zwiększe prescaler to dane już się nadpisują. To chyba raczej nie jest wina kompilatora bo odczytuje wałściwe rejestry (adresy) i sprawdza właściwe bity. Mam jeszcze dwie szt. cortex'ów więc sprawdzę na pozostałych. Nie, niekorzystam...
Dobre pytanie, ale osobiście nie liczyłbym na takie cuda (; Przypuszczalnie wymagań żeby coś takiego miało miejsce jest tak dużo (kolejne wartości, brak udziwnień struktury, brak odwołań do lokalnych zmiennych, kod nadający się do wydzielenia do osobnych funkcji, ...), że naprawdę rzadko się to trafia. Jak chcesz mieć look-up table, to zrób je sam,...
Witam, Mam lamerskie pytanie. Zaczynam przygode z ARM Cortex-M3. Programuje plytke ewaluacyjna za pomoca JTAG'a. Uzywam kompilatora CrossStudio. Po zaladowaniu programu do pamieci flash program sie uruchamia, ale po resecie nic nie dziala. Co mam zrobic aby program uruchamial sie rowniez po resecie. Nie moge nigdzie znalezc tej informacji.
Tylu fachowców, a o narzędziach niezależnych od procesora jakoś nie słyszałem - także, ten.. Jak na wstępie: może komuś się przyda. Trollić umie każdy. Ciężko by było by narzędzie było całkowicie niezależne od układu. Sercem serii STM32 są rdzenie cortex-mx i to jest w sumie procesor, reszta to peryferia zależne od tego co już ST tam właduje a one...
Witam, Zabrałem się za mój pierwszy układ na Cortexie M-3. Zadaniem układu jest (na początek). 1. Generowanie sygnału z DAC. 2. DAC jest triggerowany przez timer (chwilowo T2). 3. DAC wykorzystuje DMA (DMA2_Channel3). I dotąd jakoś wszystko działało (DMA w trybie Circular). Generowany przebieg był ok. Docelowo potrzebuje podmieniać (przełączać się)...
Ale dlaczego stawiać się przed koniecznością wykluczającego się wyboru? Dlaczego nie "i PIC i Cortex"? Dlatego, że narzędzia typu programator/debugger oraz środowisko z kompilatorem trzeba zakupić, ewentualnie rzeźbić i składać samemu jakieś gcc (czas w firmie=pieniądze). Inwestycja w dwa rozwiązania jest droższa z tego powodu. Poza tym z doświadczenia...
Jeśli ma być darmowy i bez ograniczeń to dużego wyboru w przypadku Cortexa nie masz - zostaje ci gcc. Najlepiej ściągnij sobie gotową paczkę od [url=]codesourcery. Tylko się nie zdziw jak to zainstalujesz. Nie ma żadnego IDE, makefile'a będziesz musiał sam napisać, podobnie ze skryptem linkera i plikami nagłówkowymi z peryferiami procesora :-). W sieci...
To nie funkcja tylko tablica rezerwująca obszar dla głównego stosu i znajduje się w pliku startup. Ciebie to nie dotyczy ponieważ to jest port dla Cortexa a ty masz już w swoim startupie właściwie poustawiane stosy (info dla innych chodzi o STR912). W najnowszej wersji Freertosa (6.1.0) coś zmienili w definicji sterty ale to i tak chyba nie pomoże bo...
Zarzucasz mi "uważanie się za oświeconego" a robisz to samo... Taki kod jest po prostu bezsensowny i tyle. Jak napiszesz: #define STALA 12345 char* ptr=&STALA; to wydaje Ci się, że to jest poprawne? Kompilator cośz tym zrobi faktycznie - zapewne umieści 12345 pod jakimś adresem i użyje go tutaj. U ciebie może działa, ale jest bezsensu (patrz 1.), u...
No ale czemu przy zerowej optymalizacji spodziewasz się ... optymalizacji? Poza O1 i O0 są jeszcze 3 inne wartości tej flagi, które - w przeciwieństwie do tych poprzednich - mają jakiś sens... Czy aby na pewno sprawdziłeś że kompilator nie robi tego co chcesz, czy może będzie to kolejna cegiełka do mojej kolekcji "znalazłem błąd w kompilatorze, sam...
Głównie chodzi o wygodę pracy, dodatkowe biblioteki, symulatory, debugery i wsparcie dla nowych rdzeni np. cortex. Czy warto inwestować - głównym kryterium powinna być ilość i złożoność projektów.
No tak, ale niektóre kompilatory umożliwiają podłączanie się do wyjątku w formie kodu C, np. __cs3_isr_dabort(). No i na pierwszej instrukcji assemblerowej tuż po wejściu do tej procedury wywala mi abort. To jest ta pierwsza instrukcja od tej procedury: push {r2-r3,r11} A więc nawet nie zdąrzam wejść głębiej by obsłużyć wyjątek.
nie działa, to bardzo ogólne pojęcie. Zbyt mało informacji podajesz. Jakie IDE/toolchain/kompilator? Jeżeli GCC, to domyślnie między release a debug jest kilka różnic, między innymi optymalizacja i nadmiarowe dane do debugowania. Sprawdź która z tych funkcji powoduje kłopoty. Powodów może być kilka między innymi taki, że kod/program bez debugera działa...
Ponieważ do zabawy z mikrokontrolerami mam oddzielny komputer ze stabilnym W98 SE a chciałbym sprawdzić w praktyce nową rodzinę LPC1100 szukam odpowiedniego kompilatora języka C oraz asemblera. Symulator i debugger niekonieczny. Polecane przez NXP LPCxpresso jak widzę w opisie jest przeznaczone od W2000 w górę i watpie czy da się je bez bólu zainstalować....
Wiem jak definiuje się wartości poszególnych pół struktury (nazwastruktury.pole = wartośćpola;) , ale to se ne da - kompilator krzryczy. Musi się dać. Coś źle robisz. Albo mylisz definicje z deklaracją, albo działasz na wskaźniku, a nie na strukturze, a te się obsługuje w inny sposób: [syntax=c]wskStruct->pole = 0x00; //lub (*wskStruct).pole = 0x00;...
Pytanie drugie: jak to ładnie zaimplementować na wyższy od asemblera poziom? Nie implementować. Włączyć standard C11 w kompilatorze i użyć tego co tam jest. Ewentualnie C++11 i użyć nagłówka <atomic> - co kto lubi. GCC obsługuje te funkcjonalności. 4\/3!!
W najbardziej przyjaznych warunkach dla wspomnianego uC, 24MHz (at)0 wait state, goła funkcja wymaga 11/15 cykli, a to ~300% więcej niż deklarowane 4 cykle. Czekam na te sztuczki :) Ponadto ten uC ma tylko 32KiB Flash, z czego na wyjątkowo ograniczony algorytm dzielenia chcesz przeznaczyć ponad 8KiB. I nie rozważajmy innego uC, ponieważ to jest ten...
Potrzebuje zainstalować Squida na płytce z ARM Cortex A8. Na płytce nie mam kompilatora i nie mam jak go zainstalować. W necie znalazłem ze można przekomponować na kompie a potem to wrzucić na płytkę. W tym celu ściągnąłem arm-arago-linux-gnueabi-gcc oraz arm-arago-linux-gnueabi-g++. Robię następujące rzeczy: [syntax=bash]tar -zxvf squid-3.5.7.tar.gz...
Trzeba zrobić tak, żeby kompilator nie wypisywał ostrzeżeń. Jakiego typu jest DMA1_Channel1->CPAR?
Układ debuguje z poziomem -O0 (w keilu) Debugowanie na poziomie O0 (wyłączona optymalizacja) może dawać fałszywe przekonanie, że aplikacja działą ok. Ponieważ przy O0 nie ma żadnej optymalizacji, więc każde odwołanie do zmiennej powoduje jej przeładowanie z pamięci. W efekcie jeśli masz jakiś problem typu brak volatile, to na O0 aplikacja będzie działać...
Problem wynikł podczas testowania poszczególnych przypadków : fseek(f_LCD_MENU, 5, SEEK_SET); - działał poprawnie - tu adresowanie bezwzględne. fseek(f_LCD_MENU, 5, SEEK_CUR); - to tu nie działało poprawnie. Ponieważ znalazłem niezgodność dokumentacji dostarczonej z kompilatorem z tym co się działo przy poszczególnych wypadkach trafiłem tu : i całe...
Kompilator umieszcza, bo mu są potrzebne (do czytania oczywiście ;-) ) A czy z naszą wiedzą czy nie to zależy tylko od tego jaką wiedzę posiadamy. Jeśli nie są mu potrzebne to nie umieści i nie będzie czytał. Jeśli natomiast są potrzebne Tobie to Ty je tam umieść. To przecież dane. Albert
zieeeeew (OT, czyli kompletnie nie na temat)... O tym, że każdy przyzwoity komputer powinien mieć możliwość dynamicznej podmiany adresów procedur obsługi wyjątków, najlepiej przez zmianę zawartości rejestru wskazującego stosowną strukturę danych, wiadomo było już ok. 1970 roku i robiono to w dużych komputerach. Pierwszym mikroprocesorem, w którym zaimplementowano...
Skoro wywala Ci błąd, to masz błąd, ale nie we flagach kompilatora, tylko w skrypcie linkera albo gdzieś indziej. Te flagi są ZŁE! Jeśli sam kompilowałeś środowisko, to zrobiłeś to źle i tyle - w dobrze skompilowanym środowisku te flagi są całkowicie zbędne, bo wynikają z typu procesora (cortex-m3). 4\/3!!
Witam ! Przeczytałem z uwagą informacje zawarte w tym wątku, dołączam się do niego bo mój problem jest podobny. Wielkie dzięki Freedie za tutoriala, jest dla mnie bardzo pomocny. Mam pewne doświadczenia w programowaniu procesorów ARM7TDMI w środowisku komercyjnym. Teraz chciałbym sięgnąć po nowsze procesory na rdzeniu cortex_m3 (stary kompilator ich...
Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie projektu. Kierować się możemy różnymi kryteriami, tak subiektywnymi,...
1. Wstęp Raspbbery Pi jako platforma edukacyjna dla linuksa okazała się wielkim sukcesem . Dalszy rozwój platformy zaowocował zastosowaniem rdzeni cortex-A53 o architekturze 64bit oraz 4 rdzeniach. Zachęcam jak najbardziej do używania linuksa i jego nauki. Z drugiej strony czy jest możliwe programowanie maliny, niczym mikrokontrolera bez systemu operacyjnego?...
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
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 rozwojowe, debuggery, kompilatory, etc. Wiele z tych czynników...
CMSIS jest dla każdego vendora kompatybilny. Na płytkach evaluacyjnych tak samo jak w przypadku st i ich stlinka jest J-Link. Wiele rzeczy narzuca ARM vendorom, np przestrzenie adresowe, vendor może tylko zdecydować ile tego tam upcha. Tak samo pisanie w C, jak klepie kod pod arm-none-eabi-gcc to vendor mnie mało interesuje, ba mogę na tym samym kompilatorze...
AVR - początki z uC. Głównie assembler oraz C.Projekty tworzone głównie za czasów AS4, bardzo dawno, dawno temu :) Wtedy to był tylko cel hobbistyczny, jakieś ATMegi i ATTiny. Proste układy, bez USB czy Ethernetu. Później pary razy zdarzyło się zrobić projekt na ATXMega (wersje A). Tutaj to był przekompilowany GCC 4.7 do AVR i jakiś klon programatora...
No właśnie że nie, jedyne co mój komputer potrzebuje to zainstalowaną wirtulna maszynę javy, a resztę załatwia eclipse "rozszerzając" sobie systemowe PATH (na szybko opisałem wszystko tu link ) Skoro rozszerza o folder w którym jest make.exe, to równie dobrze może rozszerzać o folder z kompilatorem... Tak jak piszesz, np. plik arm-none-eabi-gcc.exe...
Firma iWave zaprezentowała zestaw deweloperski dla opartego na Linuksie modułu iW-Rainbow G30M wykorzystującego układ Zynq Ultrascale+ z obsługą nowej platformy AI Xilinx. Xilinx tworzy obecnie liczne powiązaną technologię sztucznej inteligencji dla swoich nowych układów – produkowanych w technologii 7 nm systemów Versal, które pracować będą...
W Cortex-M0 to raczej nie skorzystasz z BitBand. W Cortex-M3 trudno powiedzieć, co z tego wyjdzie, bo TIMx->SR jest typu volatile. Być może będzie ok - trzeba by się wgryźć w standard C i w bebechy kompilatora. Wiadomo za to, że z operatorem podstawienia zamiast &= na pewno będzie ok, więc po co komplikować?
To może zacznijmy od początku. Od samych mikrokontrolerów. Nieco wybiórczo i subiektywnie. 1. MCS-51 - Wielu z nas rozpoczynało od tego w latach '80 ubiegłego wieku. Prosta konstrukcja, niewiele peryferii: GPIO, liczniki, UART. Programowanie praktycznie tylko w kodzie maszynowym, potem ewentualnie w języku C dzięki raczkującemu jeszcze SDCC. Firma Atmel...
Skorzystaj z promocji na oprogramowanie Arm Keil MDK lub Arm Development Studio i kup licencję z 10% rabatem (nie dotyczy produktów S&M oraz licencji edukacyjnych). Oferta jest ważna do 31.10.2021 r. Szczegółowe warunki uzyskasz, kontaktując się z Computer Controls poprzez: >>
Układy z rodziny PSoC - Programmable System on a Chip - cieszą się dosyć dużą popularnością już od wielu lat. Firma Cypress, produkująca te elementy, prezentowała już wiele PSoCy dedykowanych do konkretnych zastosowań - były układy do sterowania silnikami BLDC itp. Teraz przyszedł czas na Internet Rzeczy. Cypress zaprezentował nowy zestaaw uruchomieniowy...
Pamiętaj że każdy procek będzie miał inaczej zrealizowane przerwania, cortex-m zrzuca do rejestry automagicznie, cortex-A wymaga już zrobienia tego ręcznie. C51 nie znam, ale możliwe że tam tez przerwanie mogło być szybkie bez zrzucania rejestrów na stos. Tylko kilka rejestrów jest odkładanych na stos automatycznie; reszta - jeśli jest to konieczne...
Masz dla porównania. Pewnie będziesz musiał pozmieniać flagi kompilatora. [syntax=Bash] 42% 41) [0.277s] external/STM32F4xx_HAL_Driver/Src: arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -O2 -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -Wextra -Wshadow -std=gnu99 -g -ggdb3 -D STM32F401xE -I ../../../external/STM32F4xx_HAL_Driver/I... -I ../../../external/CMSIS...
No dobra, to się w końcu odezwę: To, na czym się uczy studentów, powinno spełniać kilka warunków: 1. Umożliwiać realizację przyjętego celu dydaktycznego. 2. Być proste, standardowe i nie udziwnione. 3. Być reprezentatywne dla stanu techniki wraz z przewidywalnymi trendami rozwojowymi. Niekiedy 1. pozostaje w konflikcie z 2. i 3. W takim przypadku wypada...
A co dokładnie oznacza ten niewyrównany dostęp? W wielu architekturach założone jest (na poziomie sprzętowym!), że zmienne o rozmiarze 2, 4 i 8 bajtów znajdują się na adresach podzielnych przez (odpowiednio) 2, 4 i 8. Tzn. że gdybyś układał zmienne w pamięci, to np. zestaw czeterobajtowych wylądowałby pod adresami 0, 4, 8, 12, ..., a zestaw dwubajtowych...
Języki programowania oferują programiście szereg udogodnień, które mają na celu zwiększenie niezawodności, poprawę czytelności czy zmniejszenie złożoności pisanego kodu. Niestety kod pisany w wysokopoziomowym języku nie jest docelowym produktem programisty, jest nim kod wykonywalny przez maszynę, który spełnia założenia programu. Osobiście wychodzę...
(at)Badman: jak wygenerować kod asemblera i z jakich źródeł uczyłeś się asemblera ? Tak ja pokazał michalko12. Ogólnie kod asemblera generuje się poleceniem objdump, a w tym przypadku arm-none-eabi-objdump, program znajduje się w katalogu sciezka_do_lpcxpresso/lpcxpresso/tools/b... dokumentacja tego programu i innych znajduje się w katalogu sciezka_do_lpcxpresso/lpcxpresso/tools/s...
Tylko po co komu te wektory przerwań w RAM? Przecież mogą być spokojnie we flash... Do wykonywania skoków pod adres z rejestru służy instrukcja "bx ...", a nie "mov pc, ...". Przy okazji zawsze ciekawił mnie ten styl pisania 100x "asm volatile(...)" - pomiędzy tymi wywołaniami kompilator może sobie wstawić co mu się podoba, np. wpisać do rejestru r0...
BlueDraco pytał mnie o debuger, który tak jak wspominałem parokrotnie nie powiedział mi nic. Przy wszystkich ustawionych pułapkach (środowisko CoIDE) pojawia się wykrzyknik z komunikatem: "Multiple markers at this line - Line breakpoint: main.c [line: 13] - Unresolved breakpoint" Nie mam również dostępu do pliku .lss więc nie mam zielonego pojęcia co...
Zestaw startowy Vision Edge Computing Platform (VECP) firmy MYIR wyceniony na 599 dolarów obsługuje system operacyjny Linux, pracujący na jego module MYC-CZU3EG opartym na ukłądie Zynq UltraScale+ firmy Xilinx, a także posiada Sony podłączoną poprzez CSI oraz szereg szybkich interfejsów. W lipcu MYIR prezentował moduł procesora MYC-CZU3EG oparty na...
Firma STMicro zaprezentowała nowy układ, korzystający z mało znanego rdzenia z rodziny ARM SecurCore. Dedukowany jest do kart inteligentnych i wbudowanych aplikacji zabezpieczających. ARM SecurCore SC000 (rodzina oparty na Cortex-M0) i ARM SecurCore SC300 (oparta na Cortex-M3) istnieją od lat, ale nie są tak popularne, jak inne, co STMicro z swoim...
W załaczniku kompletny test-case - wszystkie pliki w 'c' i 'cpp' są identyczne - różnią się jedynie rozszerzeniem, przez co inny jest ich kompilator. Linkowanie w obydwu przypadkach jest tą samą komendą. Usunięcie mnożenia powoduje, że w obydwóch przypadkach "data" ląduje w pamięci Flash. Mnożenie owe jest mi potrzebne do tworzenia stałych tablic z...
Witam! Mam nietypowy problem. Otóż postanowiłem wykorzystać w trakcie programowania biblioteki standardowe, głównie funkcję sprintf która bardzo przypadła mi do gustu. Mnóstwo problemów miałem, aby zostało skompilowane (problem z "_sbrk"), ale w końcu się udało. I tutaj kolejny poważny problem... którego niestety nie jestem w stanie przeskoczyć. Kiedy...
Wszystko prawda, pokażesz na elce jakiś projekt tego typu? Ludzie, którzy to robią, zajmują się robieniem, a nie pisaniem o tym :D Ja w swojej karierze przerobiłem już od '51, przez AVR8, potem PIC24, dsPIC, następnie ARMy. I tak zostało. Nie ma za bardzo gdzie pójść. Raczej nie w PIC32 - errata która potrafi osiągnąć rozmiar datasheeta (przynajmniej...
A dla czego? Pamiętam, że jak kiedyś przygotowywałem strukturę która miała różnej wielkości zmienne (1, 2 i 4 bajtowe), to przy wysyłce struktury nie były ułożone dokładnie jedne za 2 gimi tylko miały wyrównanie do 32 bitów. Ale to może kwestia kompilatora. Robiłem to w uvision. Przy strukturach to co innego - tutaj argument __packed__ jest użyty po...
Wówczas takie programowanie przestaje się znacząco różnić od zwykłego C. Tia... a tworzenie zmiennych, zmienianie ich rozmiarów i dynamiczna alokacja pamięci są nawet prostsze (; Do niektórych zastosowań assembler ma sens, ale tych zastosowań jest coraz mniej - niestety lub stety - zależy co kto lubi. Ja początkowo uważałem, że assembler jest najlepszy...
1. Jak jest zdefiniowane float32_t? 2. Literał 2.4567 jest domyślnie typu double. Użyj 2.4567f. 3. W jaki sposób odczytujesz wartość przekazywaną do funkcji? 4. W jaki sposób wykonujesz konwersję do stringa? 1. Próbowałem z float wynik taki jak poprzednio. 2. Próbowałem też tak. 3. Odczytuje w trybie debug 4. void floatToString(uint8_t *stringTab,...
najlepiej poznac obydwa Obawiam się, że nie wystarczy mi zasobów czasowych, choć naprawdę chciałbym... Do MSP430 mam już nawet zestaw eZ430-RF2500, znalazłem kilka różnych IDE, kompilatorów. Do cortex-M3 mam procka stm32f103vb na uniwersalnej płytce, jakieś narzędzia. Do obu dużo dokumentacji - podstawa ;) BTW: jakie kompilatory/IDE, według Was były...
Po zainstalowaniu ubuntu i skonfigurowaniu eclipse+codesourcery pod niego okazało się że mój archaiczny makefile nie "zbuilduje" mi projektu. Po zainstalowaniu plugina ARM do eclipse okazało się że wygenerowany kod nie mieści się w pamięci. Próbowałem na różne sposoby konfigurować ustawienia kompilatora i linkera ale nie dało to efektu. Poniżej wywołanie...
Witam ! Chciałbym się nauczyć programować mikrokontrolery STM32. W tym celu zakupiłem płytkę testową STM32F4 DISCOVERY. Zainstalowałem wszystkie sterowniki, program do obsługi programatora ( gotowe programy wgrywają się i działają ), środowisko IDE - w moim przypadku CooCox oraz toolchain. Biblioteki, które dołożyłem pochodzą ze strony ST: stm32f4_discovery.h,...
I tu mam problem jak ustawić flagi kompilatora i linkiera nie korzystając z dodatkowych narzędzi jak STM32CubeMX . Ściągnij sobie z mojej strony przykład o nazwie stm32f4_blink_led (jest w dziale Download). Skompiluj go z wiersza poleceń (make all) i będziesz widział jakie flagi są potrzebne. Dla układu STM32F7 jedyne co musisz zmienić to "-mcpu=cortex-m4"...
Koncepcja systemu operacyjnego czasu rzeczywistego (RTOS) jest dla większości programistów znana. Istotnym aspektem wykorzystywania go jest tzw. przełączanie kontekstu. Może realizować tę procedurę ręcznie, przeskakując z jednego wątku do drugiego. W poniższym artykule przyjrzymy się, jak zbudować własny minimalny system operacyjny czasu rzeczywistego...
U mnie pliki zajmują trochę więcej... Ponawiam pytanie o wersję kompilatora i dopytuje jakie zmiany zrobiłeś w projekcie? Assembling file: startup.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m3 -mthumb -g -ggdb3 -Wa ,-amhls=out/startup.lst -MD -MP -MF out/startup.d -I. startup.S -o out/startup .o Compiling file: gpio.c arm-none-eabi-gcc...
Darmowego kompilatora do AVR nie napisał Atmel, do Cortexów, także nie żaden producent, dlaczego Microchip miałby to robić?. Ba przewrotnie powiem, że przynajmniej w ogóle te kompilatory oferuje. Inni tylko podpisali się pod pracą ludzi, którzy je stworzyli. Poza tym Tak samo jak do nich tak samo do PIC istnieją darmowe kompilatory. Równie dobrze Microchip...
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...
Po pierwsze moim zdaniem mylisz się, bo o '51 wiem coś nawet ja, znam też pełno osób, które wiedzą dużo o '51, a nie wiedzą nic o ARMach (poza tym że istnieją). Może to wina DSM-51 i to, że uczą tego na studiach?...:] Po drugie skoro jesteś tak bardzo za nowościami, to przecież są jeszcze nowocześniejsze i wydajniejsze rozwiązania niż Cortex-M3, np...
Witam, Mam problem ze skompilowaniem kodu dla LPC1768. Wiem, że kod jest poprawny i problem jest prawdopodobnie w moim toolchain. Tylko nie mam pojęcia co. Używam Codesourcery arm-2011.03-42-arm-none-eabi, Ubuntu (ale ten sam problem mam też pod winxp) . Poniżej mój makefile i błędy jakie wypisuje kompilator (zostawiłem tylko linie z błędami). #.SILENT:...
Podczepię się pod temat, bo również mam problem z coocox-em. Pisze na rdzeń STM32-M4 używając bibliotek ze strony producenta i kompilatora gcc-arm-none-eabi-4_7-2012q4-20121208-wi... Problem w tym, że nie generuje mi pliku hex. Po kompilacji mam taki komunikat: GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin compile: [mkdir]...
Po napisaniu programu z wykorzystaniem z systemem FreeRTOS, nie mogę go skompilować. Od 2 dni googlam i bez rezultatu. Oto kod źródłowy programu. [syntax=c] #include "misc.h" //#include "stdio.h" #include <stm32l1xx_gpio.h> #include <stm32l1xx_rcc.h> //#include <stm32l1xx_flash.h> #include "discover_board.h" /* Scheduler includes....
Minimalizm totalny a ty się dziwisz. Weź stosuj makefile Freddiego. Przesada Co złego jest w minimalizmie? Mam wszystko co jest potrzebne. Kompilator wywoływany jest z takimi samymi parametrami i tak samo. Masz automat, z dodaniem każdego pliku chcesz makefile edytować? Tak, chce za każdym razem edytować makefile, ale o gustach się nie dyskutuje. To...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora używałem poprzez naciśnięcie "build". W ustawieniach...
Dzień dobry! Czy ktoś może próbował odpalić na makefile i kompilatorze od Freddiego build parallel w eclipse ustawiłem coś takiego: Bez tej opcji oczywiście wszystko do tej pory działa świetnie! Dostaję takie odpowiedzi: 12:20:41 **** Build of configuration Default for project led_blink_103C8T6 **** make -j4 all Assembling file: startup_stm32f103xb.S...
Witam. Aktualnie walczę z kompilatorem GCC non-eabi. Chcę utwożyć projekt w C++ używając własnego skryptu linkera, jednak po długiej walce nie mam już pomysłu na rozwiązanie. W jaki sposób skonfigurować kompilator, linkera oraz skrypt linkera tak abym mógł własne tablice zdefiniowane w plikach .cpp wstawić w wybrane prze zemnie miejsce w pamięci? Wersja:...
Zakładam, że jest "popyt" ( (at)nolens_volens , (at)korteksik , (at)dondu , (at)excray ), więc zakładam wątek. W tym temacie można zadać dowolne pytanie związane mniej lub bardziej z użyciem RTOSów na mikrokontrolerach i kwestiami takimi jak wielowątkowość, synchronizacja i tym podobne. Ogólne lub szczególne. O konkretnym problemie lub o ogólnej idei....
Jeśli używasz kompilatora w wersji 5: --cpu=cortex-m4 --fpu=fpv4-sp Jeśli używasz kompilatora w wersji 6: -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffast-math IDE po wyklikaniu odpowiednich opcji samo powinno ustawić właściwe flagi kompilacji.
Cortex-m jest tak trywialnym procesorem, że nie rozumiem dlaczego ktoś uważa, że jest bardziej skomplikowany od 8 bitowego procesora. Odpadają przecież takie głupoty jak fusebity, problemy z adresowaniem, problemy z większymi liczbami, jest to architektura Von Neuman, zestaw instrukcji to raptem około 50 wliczając pseudo-instrukcje, kompilatory są ogólnodostępne...
Witajcie moi drodzy. Przedstawię tutaj krok po kroku proces pisania otwartego oprogramowania dla modułu WiFi XR809/XR3 na przykładzie czujnika otwarcia drzwi. Mój firmware dla niego będzie kompatybilny z Tasmota HTTP i pozwoli używać go niezależnie od serwerów producenta. Da nam to również kompatybilność z Home Assistant i Tasmota Control. Być może...
TinyML stanie się największym motorem rynku mikrokontrolerów w ciągu najbliższych 10 lat — tak twierdzi Remi El-Ouazzane, prezes grupy mikrokontrolerów i układów cyfrowych w firmie STMicroelectronics. „Naprawdę wierzę, że to jest początek fali tsunami” — zasygnalizował w wywiadzie dla portalu EE Times. „Zobaczymy ogrom produktów wyposażonych w funkcje...
Freddie: Wziąłem na testy **** Build of configuration Default for project stm32f4_blink_led **** arm-make all Compiling file: main.c arm-none-eabi-gcc -c -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math -O2 -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -Wextra -std=gnu89 -g -ggdb3 -fverbose-asm -Wa,-ahlms=out/main.lst...
Ok. W pliku nagłówkowym stm32f4xx.h odkodowałem definicje USE_STDPERIPH_DRIVER. W pliku config.h wybrałem interesujące mnie biblioteki, z których korzystam. W dalszym ciągu jednak kompilator w konsoli wyświetla następujące błędy: 15:18:57 **** Build of configuration Default for project cortexM4 **** make all Assembling file: startup.S arm-none-eabi-gcc...