https://obrazki.elektroda.pl/7656017200_... O komputerach jednopłytkowych czy stare komputery były lepsze od współczesnych platform rozwojowych i SBC? Nie lubię Arduino I to jest jak najbardziej prawda. Arduino to platforma, która miała dać łatwy dostęp do programowania elektroniki ludziom, którzy nie znają się ani na elektronice,...
Moim zdaniem za użyciem RTOS przemawia po prostu lenistwo, zresztą podobnie jak za 99% praktyk programistycznych. Bardzo merytoryczny argument. W zasadzie większość Twojego postu można niestety streścić tak - "jestem mega mistrzem programowania, każdy kto robi coś inaczej niż ja jest niedouczonym leniem"... Praktycznie nie ma tam żadnego merytorycznego...
Może chodzi o to że Caller ma zarezerwowane trochę stosu dla siebie (ale go nie używa), i wskaźnik SP stoi na końcu tej rezerwacji? Tak to się nazywa "stack frame". Zademonstruje Ci to na przykładzie: [syntax=c]void __attribute__((noinline)) a(int a00, int a01, int a02, int a03, int a04, int a05, int a06, int a07, int a08, int a09, int a10, int a11,...
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...
Assembler jak każdy inny język programowania da się strawić. Problem jest z poprawnym i zwięzłym posługiwaniu się tym językiem w przypadku rdzenia Cortex M3 razem z tak bardzo rozbudowanymi (peryferia) uC jakimi są produkty firmy ST. Jednak wydaje mi się że cała zabawa właśnie na tym polega. Podkreślam zabawa :) Pozdrawiam.
Arduino ma tę zaletę, że można kupić płytkę za 30zł i coś na niej robić. Gdyby nie to, że osoby które prowadzą laboratoria po prostu kupiły kilka zestawów Arduino, to zajęcia laboratoryjne z mikrokontrolerów jednoukładowych byłyby prowadzone wyłącznie w oparciu o dwa zestawy DSM-51 i ew. mocno niedorobiony emulator tego systemu na PC. Można się nauczyć...
1. GNU ARM to najzwyklejsza paczka taka jak CodeSourcery, WinARM czy Yagarto, więc po co tego używać i po co to w ogóle roztrząsać? 2. CodeSourcery Lite jest darmowe. Jeśli nie jest wystarczająco darmowe, to wystarczy ściągnąć sobie źródła GCC i skompilować samemu [; Jest to możliwe, skrypty z Codesourcery to znacząco ułatwiają. 3. Niczym 4. Bo kompilujesz...
Pewnie mnie ktoś zaraz ochrzani że mnóstwo tego, wystarczy wygooooglować , ale po kilku godzinach rozpaczliwych poszukiwań ośmielam się prosić kolegów o udostępnienie jakiś przykładów projektów do wyświetlania statycznej grafiki na LCD, bardzo chętnie z karty pamięci flash. Zanabyłem bardzo ciekawy moduł HY-SMART z ARM Cortex M3 , ST32F103VCT6 i wyświetlaczem...
slawek-matyl: Witam, drodzy fani robotyki ten projekt jest naprawdę bardzo udany. Pomysł upakowania tak dużej ilości peryferiów wprawdzie powala, ale jednak spowalnia inne procesy a generalnie te autonomiczne. Drogi Sławku jestem pewny, że Twój projekt wzbudzi zainteresowanie wśród fanów robotyki, lecz wetknę tutaj swoją szpilkę. Ja AVRy porzuciłem...
Ok. Przeprowadziłem eksperyment. Jeżeli chodzi o Cortex M3 to dodałem plik z rozszerzeniem cpp i kompilacja przebiegła bez błędów. Tylko nie działa standard C++11 tylko jakiś starszy. Sprawdziłem to dodając słowo kluczowe auto, które podobno jest elementem języka od chwili pojawienia pojawienia się standardu C++11. Poniżej zdjęcie ilustrujące pewne...
Nie prościej tak nie kombinować? Funkcje zdefiniowane wewnątrz definicji klasy (zwykle w nagłówku) są domyślnie traktowane jako z atrybutem "inline" i po co kombinować więcej? A już jakieś atrybuty "always_inline", to prosta droga to zabawy w assembler++, bo skoro kompilator uznał, że inline'owanie nie ma sensu, to zapewne tak właśnie jest.
czy jeśli zacznę od jakiegoś stm32 na cortex-M3 lub M4 to potem bez większych zmian w zasadzie działania będę się mógł przesiąść Tak. na cortex-R? A skąd je weźmiesz? czy to sprawia, że programowanie w assemblerze lub w C będzie podobne? Podobne....w assemblerze, w C nie zauważysz różnicy. dlaczego i czy PIC mogą być lepsze w takich zastosowaniach?...
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...
w ARMach taka sama porazka z tymi przerwaniami... sa tylko dwa wektory przerwan na caly procesor no! tragedia! Polecam Cortex-M3 ;) Wektorów w pierony a nawet wiecej.
ARM7, Cortex-M3 to - powiedzmy - "handlowe nazwy" architektur, odpowiednio ARMv4 i ARMv7-M. Oczywiście nowsza jest ARMv7 czyli własnie Cortex. ARM7 jest już nieco przestarzały, a układ LPC2106 to w ogóle antyk - NXP od czasu tego układu wypuściło bardzo wiele fajnych układów z tym rdzeniem, dokładnie chodzi o rodziny LPC23xx i LPC24xx - LPC2106 to chyba...
Problem udało się rozwiązać. Jest to program w tzw. "bare metal" tworzony w GNU Macro Assemblerze. Wygląda na to, że jako szablon wziąłem ustawienia z Blue Pill, a skoro działało z ST-LINK, to niczym się nie przejąłem. Dopiero teraz, gdy odłączyłem programator, okazało się, że to był błąd i Macro Assembler źle inicjował tablice wektorów dla STM32H7....
A zobacz jak będzie wyglądał assembler z flagą -fsingle-precision-constant
Jak stoisz z programowaniem? W starszych samochodach królowały rdzenie 68k, '51 i ew PIC, dzisiaj głownie ARM Cortex, Tri-Core, Renesas/RX. Podstawy assemblera dla tych rdzeni są wskazane, a już na pewno wiedza na temat organizacji pamięci. Na ile rozumiesz algorytmy sterujące ECU silnika?
Obawiam się, że sam nie zerknąłeś ;-) A do autora: To jest kompilator/assembler gcc dla ARM. więc wszystkie przykłady jakie znajdziesz będą OK. Musisz tylko uwzględnić zestaw instrukcji. Albert
matko bosko kochano :) Sieger :) ile to czasu minęło? :) JA juz praktycznie nic... zdrowie siadło...od paru lat staram sie przerzucić na jakies army chociaż (chociaż cortex m0+ :) ) i tez mam z tym problem - bo sie zastanawiam - czy assembler... Czy może C (chyba odpuszczę) - czy moze jakiś zdechły micropython... Niestety lata lecą - myślenie juz nie...
W zasadzie program do testowania wymaga tylko kilku zmiennych. A więc napisany w assemblerze mógł by się zmieścić w rejestrach procesora a więc nie używać ani jednego bajta pamięci RAM.
(at)Freddie Chopin No to dosc latwo ominąć No i zobacz ile trzeba się nakombinować, żeby uzyskać coś co wcale nie jest lepsze niż startup w assemblerze, który już masz (; Bo definitywnie nie jest to w czystym C. No ale co kto lubi, jak ktoś czuje potrzebę napisać startup w C to w istocie na Cortex-M się da to zrobić (pod pewnymi warunkami). Po prostu...
Faktycznie było napisane. Sorki ale natłok informacji jakie trzeba przetrawic na raz aby uruchomic to środowisko jest dosyc spora. Po wykonaniu wspomnianych czynności log po kompilacji wygląda następująco: **** Build of configuration Default for project stm32_blink_led **** cs-make all 'Assembling file: startup.s' arm-none-eabi-gcc -x assembler-with-cpp...
Ściągnij sobie z mojej strony przykład dla Cortex-M3 i zobacz jakie dodatkowe parametry są potrzebne w pliku assemblerowym, bo "trochę" Ci jeszcze brakuje. Pozatym do linkowania TRZEBA używać gcc, a nie ld. P.S. Co to za moda na assembler dla ARMów? 4\/3!!
Gdzieś wyczytałem, nie wiem gdzie, że w Cortex'ach funkcje obsługi przerwań mogą być użyte jako zwykłe funkcje. Odwrotnie - funkcje przerwań mogą być zwykłymi funkcjami, bez żadnych dziwactw, bez atrybutów, bez assemblera. Ale jak jest przerwanie to skąd procesor "wie" że wychodząc z przerwania ma nie odtwarzać LR bezpośrednio tylko to ma inicjować...
Skoro nie działa, zakładam że gdzieś jest błąd. W celu jego rozwiązania napisałem tutaj. Wynik kompilacji: [syntax=c] make all Assembling file: startup.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math -g -ggdb3 -Wa,-amhls=out/startup.lst -DSTM32F4XX -MD -MP -MF out/startup.d -I. startup.S...
Assembler na STM no szacun... Jakich padów używasz? Ps2 czy może klawiatura tylko? Do czego wykorzystujesz usb? A może zamiast vga jakiś wyświetlacz graficzny? I było by pseudo psp.
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...
Jakie zagadnienie realizujesz, że tak stawiasz temat ? To taki hobby project. Tworzę go już z przerwami od dłuższego czasu. Generalnie chodzi o sprzętowy symulator układów/modułów. Chodzi o to, aby reakcje systemu były jak najszybsze, ale i aby były z tym samym, a przede wszystkim znanymi opóźnieniem, co pozwala np. układowi dostosować się do różnych...
Więc stąd moje pytanie w tym wątku: Czy ładować sieci (Ethernet, Canopoen) do jednego procka czy rozdzielać to na różne mikrokontrolery. Z tego co mi kolega wyjaśnił to o Linux itp lepiej zapomnieć. Przecież to nie jest zależne od samego sprzętu (no dobra, może troszkę), tylko od tego jak dobry kod napiszesz. Czy to będzie pod Linuxem na Cortex-A15,...
Wszystkie te których używam (sqrtf(), powf(), acosf()) są liczone przez FPU? Niekoniecznie. W Newlib (czyli libm.a) nie ma implementacji specjalnie dla tego koprocesora, jednak jeśli masz włączoną optymalizację, skonfigurowane FPU (opcje kompilacji) i dodaną flagę -ffast-math, to kompilator niektóre z nich potraktuje jako funkcje inline i zastąpi odpowiednimi...
Nie do końca rozumiem co masz na myśli. Cała magia RISC-V to skalowalność. Najpierw musisz kogoś nauczyć co to jest procesor i co to jest komputer. Potem trzeba pokazać jak działa procesor, w jaki sposób są budowane instrukcje i jak przebiega proces ich wykonywania. Dalej - jak to wszystko tworzy język maszynowy, na bazie którego powstał asembler,...
W sumie gdy przeczytałem Twój post uzmysłowiłem sobie, że ten startup to i tak w większości assembler, bo korzysta mocno z wstawek... Zaczynam wątpić w sens tego przedsięwzięcia [; W zasadzie to taka sama kwestia dotyczy tablicy wektorów w C - o ile te dla Cortex-M3 są sensowne (bo to tablica adresów funkcji), to dla ARMv4 już nieszczególnie... /; Czyżbym...
Hej, Do tej pory zabawiałem się mikrokontrolerami '51 przy użyciu języka assemblera i C. Do mojej pracy inżynierskiej chciałbym jednak wykorzystać coś bardziej zaawansowanego i pomyślałem o Cortexie-M3 a konkretniej płytce ewaluacyjnej Butterfly. Mam tylko pytanie, jaki podręcznik mogli byście mi polecić? Znalazłem książkę Paprockiego opartą o blibiotekę...
Na pewno masz: http://obrazki.elektroda.pl/3055062900_1... Wychodziłoby tutaj, że jedna linia Twojego kodu zajmuje mniej niż 2 bajty, więc w przypadku ARM Cortex jedna linia kodu przekłada się na mniej niż jeden rozkaz assemblera. Przyznasz że jest to dosyć dziwne... Też jestem w stanie absolutnego podziwu. Taki projekt (18.000l) i 32k....
Zainstalowałem Coreutils oraz toolchain linaro. W Eclipse zmieniłem właściwości projektu GNU Elf Parser na nowy toolchain. Niestety projekt nadal się nie kompiluje: cs-make all Assembling file: startup.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math -g -ggdb3 -Wa,-amhls=out/startup.lst...
Chociaż w komentarzach na tej stronie co podałeś ktoś zauważył że zapis do rejestrów systemowych nie powinien być na to wrażliwy. Ale jakie to ma znaczenie? Dołożyłeś jedną instrukcję i ta jedna instrukcja wystarczyła. Na końcu przerwania jest zawsze jeszcze co najmniej kilka instrukcji assemblera (co najmniej jedna - powrót, zwykle dwie jeśli przerwanie...
witam, Dzięki za odpowiedź. Zmieniłem w Makefile na -STM32L1xx_MD i teraz mam coś takiego: cs-make all System nie moľe odnale«† okre?lonej ?cieľki. 'Assembling file: startup.S' arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m3 -mthumb -g -ggdb3 -Wa,-amhls=startup.lst -MD -MP -MF startup.d -I. -Ilib startup.S -o startup.o ' '...
Chodzi o procesor ST32F103 z rdzeniem Cortex-M3. Wykonuje na przykład dodawanie dwoch liczb wielokrotnej precyzji (n-bitowej i m-bitowej). Liczby zapisane sa w systemie o podstawie 2^32. W assemblerze realizuje tylko czesc operacji na slowach. # IntLongWord ulFastMathAdd (IntWord uxA, IntWord uxB) .global ulFastMathAdd .thumb_func ulFastMathAdd:...
Przerwania, w odróżnieniu od starych ARMów są w całości zarządzane przez ARM'a czyli CortexMx. W dokumentacji ARM znajdziesz opisy rejestrów i jako to działa. Każdy producent, taki jak ST zmienia znaczenie linii przerwań, definiując je po swojemu za wyjątkiem kilku pierwszych zarezerwowanych przez ARM. Ponadto, Cortex'y mają możliwość nadania przerwaniom...
Moim zdaniem problem jest znacznie prostszy niż się wydaje. Mikrokontrolery mają znacznie okrojone zasoby sprzętowe. Skupmy się na pamięci. C bez używania bibliotek umożliwia napisanie programu z narzutem na pamięć FLASH porównywalnym z assemblerem. Z ich użyciem (startup, printf itp) to kilkanaście kb (dla rzeczonego Cortexa) C++ podobnie ale tylko...
witam uklady wyykonawcze to uklady z rownolegla szyna danych (8 bitow) - tylko do zapisu (odczytanie tych rejestrow zawsze zwraca 0x00) tak wiec piszac aplikacje obslugi tych ukladow trzeba operowac na pamieci ram i wyniki transferowac do rejestrow - w ten sposob zawsze moge sprawdzic co bylo i jest w danym rejestrze. uklady posiadaja tez rownolegla...
Cóż dużo popularnych ARMów też ma architekturę Harvardzką: https://en.wikipedia.org/wiki/ARM_Cortex... Udają tylko w dokumentacji Von neumann'a :D Michalko12, super że wrzuciłeś tego typu listę to mi podsunęło pewną myśl. A mianowicie: AVR nie są łatwiejsze niż inne uC, gdyż wykorzystanie ich możliwości (lub ominięcie ograniczeń) wymaga wiedzy porównywalnej...
Rzeczywiście, domyślnie stos ten ustawiony jest na 0 :) Wersja wtyczki to 5.0.2... (at)vonar, GDB z Raisonance został już wykasowany z systemowego PATH. Wgrałem chwilowo Eclipsa v.Mars.2 i tu przynajmniej mogłem dołączyć "ilg.gnuarmeclipse.repository". Ale problem z Debugerem też jest. Jednak z wielu powodów chcę pozostać przy starej wersji Eclipsa....
to jest ten kod od freddiego nie robi i w tej chwili nic Dodano po 1 [syntax=basic4gl]11:45:25 **** Build of configuration Release for project disc **** make all Building file: ../main.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g -std=gnu11 -MMD...
Problem jest do obejścia, ale myślę, że lepiej zajrzeć w kod assemblera i zobaczyć po pierwsze jakie instrukcje zostały wygenerowane, a po drugie - jakie są wartości owych stałych _bss i _ebss. (hint: arm-none-eabi-objdump -S plik.o) Tak swoją drogą, to te stałe (_etext, _ebss, _bss itp.) to po prostu wartości, a traktowane są jak konkretne zmienne...
https://sourceware.org/binutils/docs-2.1... "This directive specifies that the following symbol is the name of a Thumb encoded function. This information is necessary in order to allow the assembler and linker to generate correct code for interworking between Arm and Thumb instructions and should be used even if interworking is...
No skoro nagle wszystkie ARM7 mają jakiś VIC, no to faktycznie problem nie istnieje :] Ale z tego co pamiętam, to nie wszystkie procki ten VIC mają... Dwie najpopularniejsze rodziny - LPC2xxx i AT91SAM7 - mają takie kontrolery, a pytanie z tematu było dodatkowo o w miare popularny i rozbudowany układ, więc... Pewnie znajdzie się jakiś egzotyczny ARM7...
Hello Sir, please help me in compiling lpc4330_led_blink code downloaded from freddiechopin.info compiling through the arm tool chain. Assembling file: startup_ARMv7-M_E_.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math -g -ggdb3 -Wa,-amhls=out/startup_ARMv7-M_E_.lst -DCORE_M4 -DCMSIS_BITPOSITIONS...
OMG co za herezje... Co to ma do rzeczy jakich instrukcji assemblera użyje kompilator? Kod w C ma ZAGWARANTOWANE, że ZAWSZE działa tak jak go widzisz - nie ma żadnych "myków" działających między wywołaniami tej samej funkcji... Żaden kompilator i żaden rdzeń nie ma jakiegokolwiek "bankowania rejestrów" w którym mógłby odzyskiwać wartości z poprzedniego...
assembler darmowy assembler cortex firmware cortex przerwania
sprzęganie wokalu pionowo drukarka zabezpieczenie elektryczny rozdzielnia
frania podgrzewanie siemens siwamat
Sprężarka wyłącza się po minucie - przyczyny i rozwiązania Jak wyłączyć tryb programowania Navilink A59?