Czy programowanie w tym języku dla ARM jest podobne do AVR ??? Są duże różnice - mamy podział na dwa tryby wykonywania instrukcji Thumb i ARM. Oprócz tego w trybie ARM mamy do czynienia z wykonywaniem instrukcji warunkowo czego w AVR-ach nie uświadczysz. Pamiętaj także że ARM7tdmi to jest rdzeń...
Witam. Przedstawiam projekt konsoli/odtwarzacza mp3 z wyjściem VGA. Konsola zbudowana jest na procesorze z rdzeniem Cortex-M4 i umożliwia uruchamianie programów z karty mikro SD. Projekt powstał ponieważ chciałem poeksperymentować z softwarowym generowaniem sygnału VGA. Podstawowe parametry: -...
No tak to wygląda mniej więcej, co nie zmienia faktu, że operacją PUSH od razu mi to na aktualny stack leci i mam wolne r0. A tak w ogóle to w Cortex-M3 context switch się robi inaczej - w przerwaniu PendSV. Zalet tego rozwiązania jest kilka. Jakie? Co skłoniło Cię do stworzenia własnego...
Hej ! Dzięki za serdeczne odpowiedzi . A więc , kiedy zaczynałem swoją przygodę z rodziną AVR poznałem dokładnie asemblera , razem z wbudowanymi peryferiami . Używałem w tym celu ksiązki R.Baranowskiego :" Mikrokontrolery AVR ATmega w praktyce" która niby jako przetłumaczony datasheet ale nie ma to...
Witam Posiadam plytke Embest LPC1700 na NXP1766. Jako srodowisko uzywam Keil MDK. Interesuja mnie programowanie w czystym asemblerze. Mam dwa problemy: 1. Kompilowanie w Keil. Zauwazylem, ze tam parametry kompilacji sa niezmienne poza obszarami pamieci. W czym problem. Chce skompilowac taki program: ...
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...
No niestety, ale zakomentowanie linii main.c powoduje błędy w czasie kompilacji: **** Build of configuration Debug for project LPC17_CAN_LedControl **** make all Building file: ../src/main.c Invoking: MCU C Compiler arm-none-eabi-gcc -D__REDLIB__ -D__BUILD_WITH_EXAMPLE__ -DDEBUG -D__CODE_RED...
Dosyć długo uznawałem tylko 51 i asembler, rzeczywistość jest jednak inna i wymaga rozwoju :) Padło przede wszystkim na C, głównie ze względu na to aby nie męczyć się robieniem wszystkich procedur od podstaw, uwolnić się od 8 bitowych wartości. Do asm na pewno kiedyś trzeba będzie się ukłonić,...
Freddie: pierwsze pytanie tutaj to: czy konsolidator obsługuje taki rodzaj relokacji, jaki jest potrzebny dla bitband RAM. Przy peryferialach adres jest stały, więc konsolidator nie ma nic do roboty. Przy RAM konsolidator musiałby umieć obsługiwać relokację "razy 32", a potem jeszcze ktoś (asembler)...
Chciałbym coś doprecyzować, bo nie do końca rozumiem mechanizm działania LDREX i STREX. Patrzyłem na stackoverflow: i do samego ARMa, gdzie jednak tlumacza to wszystko nieco inaczej Mam zmienną number, używana jest i w przerwaniu i w reszcie programu. Chciałbym zapewnić atomowość dostępu, przykładowo...
No tutaj widać że masz zarezerwowane miejsce na stosie dla przekazywanych parametrów i nic nie jest "nadpisywane". Szczerze powiem nie wiem o co Ci chodzi. W swojej funkcji jak byś spojrzał dalej poza te 4 pierwsze parametry to byś zobaczył że on "przeskoczy" te 4 bajty z powodu złożenia na stosie...
Nie chodzi o MIPS, a o DMIPS, czyli instrukcje "znormalizowane" (a więc realną wydajność obliczeniową) Jedna instrukcja Cortex to 0.84..1.25 tej "znormalizowanej", podczas gdy w AVR zgaduję, że jakieś 0.2..0.35 (może się mylę, ale chyba niewiele). Już z tego wynika, że przy tej samej częstotliwości zegara...
czywiście są ARMy, które to mają, ale może się okazać, że niekoniecznie wyjdą taniej niż dedykowany 8-bitowiec. Czyli to o czym pisałem, w Farnellu >>30 zł. Dedykowane 8-bitowce są tańsze. Dodano po 3 IMHO jakakowiek generalizacja, że dany MCU/rodzina MCU jest najlepsza jest bez sensu....
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.
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...
(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...
Stąd pytanie czy ktoś z was pisze całe programy w asm czy tylko wstawki asm w C ? Ja pisze prawie całe programy w asemblerze. Prawie całe ponieważ inicjacje mam w C ze względu na IDE w jakim pracuje - LCPXpresso. Funkcja main natomiast jest już w całości napisana w asemblerze. Pisze głównie dla...
dzięki za podpowiedzi, mam jeszcze w związku z tym pytania (dot. asemblera): według specyfikacji CORTEX-M3, funkcja mogła by wyglądać tak: ROL R0,1 ROR R0,31 dają identyczny wynik. Pytanie brzmi: co jeśli moja zmienna jest 16 bitowa, a rejestr na którym będzie realizowana operacja ROR jest...
Pytanie 1: CORTEX nie koniecznie wykonuje czynności w spodziewanej kolejności czy w spodziewany sposób, przekonałem się o tym dobitnie po kilku dniach nieustającej próby napisania tego w c/c++ bez podglądu na wygenerowany kod (tzn algorytm działał jednak występowały jittery nie spowodowane przerwaniami...
Z tego co mi wiadomo jest już dostępna beta LPCXpresso pod linuksa. Co do asemblera ja stosuje wywołanie funkcji i dorzucam plik z rozszerzeniem .s do projektu. A w pliku w którym wywołuje tą funkcje wstawiam coś takiego: extern int clock_init(); a później w wybranym miejscu w pliku...
Obecnie programuje mikrokontrolery LPC111x w asemblerze. Wcześniej próbowałem pisać soft dla LPC210x niestety zrąbałem płytkę ale mam pewną wiedzę o różnicach między tymi rodzinami mikrokontrolerów. Jeżeli dokładnie chodzi o różnice to prezentuje się to tak: -GPIO - jest totalnie inaczej zrealizowane...
Witam, Próbuję skompilować bibliotekę helix w środowisku CoIDE 1.7.1 i gcc 4.7 2013q. Dodałem do projektu pliki .c i .h lecz potrzebne są jeszcze pliki z asemblerem i tu pojawia się problem jak tylko dołączę te pliki asmmisc.s i asmpoly_thumb2.s to otrzymuję dużą ilość błędów złych instrukcji z tych...
Po pierwsze, ten temat zszedł na bok jak tylko się dało. Żyjemy w demokracji i każdy ma wolny wybór ;) Ja wybrałem asemblera ,bo denerwowało mnie ciągłe poprawianie i debugowanie programów w celu usunięcia błędów ,które często były winą kompilatora C . Teraz po debuger sięgam znacznie rzadziej i...
Jak widzę bardzo ciężko jest trafić w gust odbiorcy. Jestem programista uC i to zarówno tych mały AVR jaki tych przerażających niektórych Cortex-M3, -M4. Zupełnie nie rozumiem opinii o niektórych pozycjach i aż z ciekawości wypożyczyłem dwie książki wychwalanego tutaj p. Kardasia. Może zobaczę różnicę....
Hehe, widzę że koledze to chyba ktoś płaci za reklamowanie tego Cortex'a :wink:. Nie uważam bynajmniej że rdzeń '51 (AVR) jest szybszy od Cortex'a czy ARM7. Zresztą takie porównywanie nie miałoby sensu. Każdy rdzeń ma swoją listę rozkazów ASM i każda ma ponad 80% z nich wykonywanych w jednym cyklu. ...
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 sam sobie odpowiedziałeś, ale wrzucę swoje 3 grosze :) Według mnie pisanie startup'u w C za pomocą wstawek...
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...
No a mają one możliwość generowania kodu dla opisu za pomocą grafu ? Są darmowe narzędzia, które przekształcają graficzny graf (kółka, strzałki etc) na pełny opis HDL jako FSM (Finite State Machine), jest tego pełno. Ja tam preferuje ręczny coding maszyny. Jeśli chodzi o uC to mają większe możliwości...
A co tu rozpoznawać? Cortex-M3 czy Cortex-M4 to z punktu widzenia programisty jedno i to samo, chyba, że chcesz bawić się w asemblerze.
Witam, czy jest może jakiś zestaw do kupienia (lub osobno): płytka ewaluacyjna, programator, książka dedykowana dla konkretnej płytki i skupiająca się na programowaniu w C/C++? Mowa oczywiście o AVR. Szukałem, ale nie znalazłem nic takiego, jedynie pod asemblera lub BASCOM-a. Za to znalazłem takie rzeczy...
Upakowanie kodu na Cortex jest zwykle sporo lepsze niż w uC 8-bitowych, za to wszelkie biblioteki, których powszechnie się używa oraz beztroski sposób korzystania z nich (wypełnianie pól zmiennych - struktur), marnują dużo pamięci. Mam parę dużych projektów na Cortexach,. największy, ze skompilowanym...
Za namową kolegi (at)excray postanowiłem, że zacznę jednak w ASM A gdzie ta rada się pojawiła? W tym temacie widać tylko: Kolego skoro całe życie pisałeś w asemblerze to nie mam pojęcia dlaczego zabierasz się za HAL. Pisz na rejestrach, będzie Ci łatwiej. To oznacza, aby nie używać HAL, ale operacje...
Tak, peryferia uC 32-bitowych są strasznie skomplikowane, tak strasznie, że nie da się ani przeczytać ich opisu, ani napisać kodu je obsługującego inaczej, niż biorąc gotowy przykład z HAL i modyfikując parametry. W takim prostym AVR do uruchomienia SPI potrzeba tylko trzech zapisów rejestrów, a w STM32...
Większość systemów wbudowanych opartych na mikrokontrolerach jest wyposażona w oprogramowanie układowe napisane w asemblerze, C lub C++. Ale jak wspomniano w artykule opublikowanym w 2000 roku zatytułowanym „Punkt widzenia: Lisp jako alternatywa dla Javy”, funkcjonalne języki programowania,...
Najlepszą metodą znalezienia błędu w przypadku jak nic nie pomaga jest analiza kodu w asemblerze jaki został wygenerowany z twojego programu i porównanie go z działającym programem. Pamiętaj że rdzeń cortex-m0 w przeciwieństwie do cortex-m3 jest znacznie prostszy i analiza asemblera nie jest aż tak skomplikowana...
Czy ty czytasz co piszesz? Narzekasz, że na studiach masz ARM, a pytasz o... ARM. ARM 51 w porównaniu do st32 (cortex m3 )to wielka różnica całkiem inne instrukcje i struktura rdzenia .W 51 jest asembler bardzo prosty lecz już w ST32 THUMB i THUMB2 dużo bardziej wszechstronne w porównaniu z ASEMBLEREM...
I teraz nie wiem czy mikrokontroler wykonuje moja funkcję SystemInit czy tą "standardową" ? Podglądnij kod asemblera :) Wystarczy, że wrzucisz przed main Jeśli konsolidator nie krzyczy, to znaczy, że widzi jedną funkcję SystemInit. Jeśli oryginalna zstała zadeklarowana jako WEAK, to podłączył...
FFT dla Cortex-a róweniez zostala napisana w asemblerze a wyniki pochodza z posta autora tej biblioteki zamieszczonego na forum ST pz
Chcecie uzyc za mocnych mikrokontrolerów - przeciez to takie proste :) Nawet '51 bez problemu dekoduje MPEG2 :] ;] Ale z AC3 juz by sobie chyba nie dał rady. Dlatego lepiej zastosować mege8 :D:D:D bascom chyba ma taka funkcje decodeMPEG2 tylko nie pamietam jakie są parametry... :) a...
Rozmowa schodzi na znany już nam kierunek;) W każdym razie, śmiem zaryzykować stwierdzenie że jednak CORTEX M3 pobiłby AVR i program napisany w asemblerze;) Trzeba by sprawdzić;)
Kondensator przepustowy to jest dobry do m.cz. i zasilania w.cz. ale nie do wyprowadzania sygnału w.cz. !!! Pojemność tego kondensatora i indukcyjność uzw. wtórnego da nam obwód rezonansowy i już mamy ładna "dziurę" w charakterystyce wyjściowej. Jeśli już to niech to będzie "czysty przepust", czyli...
Avr da spokojnie radę. Może i da radę ale ARM'y są stworzone do takich systemów jaki buduje autor postu. Duży graficzny LCD, bitmapy, mini system operacyjny, SD, jakieś USB na interfejs, etc., to idealne zadanie dla jakiegoś STM'a lub LPC'ka z rdzeniem cortex M3. Na AVR'erze to będzie "wyciskanie...
A nawet jest to dość rygorystycznie wymagane. Niektóre źródła podają, że brak natychmiastowego resetu po włączeniu zasilania może uszkodzić sterownik LCD. Także czytałem kiedyś coś takiego - zresztą na elektrodzie chyba były tematy jak ludzie uwalili sobie wyświetlacze właśnie w taki sposób. Napisałem...
No właśnie jeśli chodzi pisanie programów, to chyba pozostaje asembler. Też gdzieś wyczytałem, że wykorzystywanie tego SPIN'a może dość znacznie spowalniać program, tzn kod nie jest tak lekki jak pisany bezpośrednio w asm, co jest logiczne :] Fakt, może i są procki bardziej znane, jak chociażby jakieś...
Od dziś na stronie Atmela dostępna jest wersja beta STUDIA 6. Atmel ® Studio 6 to zintegrowane środowisko programistyczne (IDE) do tworzenia i debugowania oprogramowania mikrokontrolerów z rodzin Atmel ARM Cortex-M i Atmel AVR ®. Atmel Studio 6 IDE to także płynne i łatwe w obsłudze środowisko...
Jak ustawiasz zegar APB ? Jeśli chodzi o rejestr PCLKSEL0 to ustawiam go tak żeby nie dzielić wartości zegara. Oto mój kod: Poprawiłem dobór języka w tagu syntax. Proszę na przyszłość używać tagu ] do wklejania kodu w asemblerze... /syntax] . LordBlick
Opisy mikrokontrolerów z rdzeniami ARM są na ogół całkiem przyzwoite, tylko szukaj USER MANUAL albo REFERENCE MANUAL, a nie Data Sheet (chyba, że w TI). Procesory ARM programuje się niemal wyłącznie w C, a ARM Cortex daje się programować w c bez ani jednej instrukcji asemblerowej. Praktycznie nie ma...
Witam Powoli przesiadam się z 8051 na ARM Cortex-M0, a dokładnie LPC 1114. Pierwsze programy przy użyciu bibliotek w C mam za sobą. Gdzieś przeczytałem, że jeśli LPC 1114 jest taktowany 48 MHz, chcąc zrobić opóźnienie 1 us muszę wykonać w pętli 32 nop'y, a dla 12 MHz 8 * nop. Coś mi nie pasuję,...
AVR - jak z nimi zaczynałem w 2007 roku to bazowałem głównie na publikacji EdW wdrażającej w programowanie w języku bascom. Mieszkam w małej miejscowości, gdzie nie widziałem nigdy prasy elektronicznej, dopiero jak do domu doprowadziło się sieć internet to odkryłem magiczny świat µC. 8051 -...
Mam podobny problem jak w Teraz dostaje cały czas ten sam komunikat("Unable to communicate. (transmit/receive)"). Z tego co zaobserwowałem to mam możliwość wgrywania programu za każdym razem ale jak widać nie mam zbyt dużo pamięci do dyspozycji(na pozycji 100h już nie da się nic wgrać). Próbowałem...
Czy zależy Ci na poborze prądu, czy nie, Coertex-M4 nie jest następcą M0 – o to mi chodziło. M0 w Neumanna a M3, M4 już w Harvardzka? Tak, ale podczas nauki to niezbyt istotne. Ważniejsze są różnice w zestawie instrukcji, ale rdzenie Cortex-M są zgodne "w górę", więc kod dla M0 będzie działał...
(at)miro340 Zacznę od końca - kol. (at)Jasia30 otrzymał już wystarczającą pomoc w pierwszym poście kol. (at)niveasoft . Nie tylko wskazał mu stronę z informacjami, ale sam się także zaoferował z pomocą. Na tym temat właściwie został wyczerpany. Reszta odpowiedzi, to prawda, nie ma wiele wspólnego...
tadzik85: "gwarantuje ze następna będzie wykonana po zakończeniu wszystkich operacji zapisu odczytu" Powtarzasz innymi słowami to samo, co napisałem. Zauważ, że peryferiale leżą w Cortex w przestrzeni "strong ordering", co oznacza, że dwa kolejne zapisy do peryferiali będą wykonane w takiej kolejności,...
Nie możesz załadować w ciemno dwóch bajtów do bufora UART. Przerwanie jest zgłaszane, gdy jest wolne miejsce w buforze - na jeden bajt. Piszesz o cyklach procesora i instrukcjach na poziomie asemblera - obejrzyj początek i koniec procedury obsługi przerwania napisanej w C i skompilowanej na AVR -...
Kamyczku, gdybyś wyjrzał ze swojej AVRowo-asemblerowej norki na świat, zobaczyłbyś, że jest on inny, niż Ci się wydaje. ARMa w asemblerze programować nie ma sensu, bo przeciętny kompilator generuje lepszy kod maszynowy od niezłego programisty, a tani Cortex programowany w C będzie min. 10x szybszy od...
(at)dondu Ale wiesz, że ta grafika pochodzi z portalu utrzymywanego przez AVT Korporacja? Zapytaj Chińczyków albo Amerykanów co jest dla nich istotne. Odpowiedzi będą zupełnie inne. Nie dlatego, że nie patrzą na ceną czy narzędzia, ale dlatego, że mają zupełnie inne wymagania projektowe. Różnice w...
(at)kamill_94 Jest dużo osób, które radzą sobie z programowaniem uC. ARM, AVR, PIC, 'C51 czy inny rdzeń, to tylko inny zestaw rozkazów. O ile nie piszesz w asemblerze, a dzisiaj to już rzadkość, to naprawdę nie ma większej różnicy. Więcej różnic zauważysz w peryferiach, ich obsłudze i możliwościach...
Zasadniczo RISC ma niewiele prostych rozkazów (ale dużo trybów adresowania). No to rzeczywiście pora już zapomnieć o tych sądach. W 21 wieku RISC mają od cholery prostych i złożonych instrukcji - mało strawnych dla człowieka. Ruszanie asemblera poza jakimiś bardzo specyficznymi sytuacjami jest "lekko"...
8 kwietnia, to już nie tydzień, a 9 dni temu. ; ) Trochę o nim zapomniałem - pewnie wypadło coś innego pilnego do zrobienia - dzięki za przypomnienie. Sprawdziłem, kompiluje się (na Ubuntu nie znalazłem pakietu 'qt5-sdk' polecanego przez "Compiling LabTool Application" - jest 'qt-sdk'). Spróbowałem...