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.
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ń 32 bitowy więc dochodzi ci dodatkowo coś takiego jak wyrównanie....
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: - CPU STM32F415 - 8bit VGA, 320x240 - 16bit stereo DAC -...
Zacznij zatem od porzucenia Bascoma i przesiadki na C, skoro zależy Ci na wydajności. Przy okazji możesz wziąć procesor tańszy od AVR i z 10 razy szybszy, np. jakiegoś Cortexa.
Zacząłem od pisania programu, który ustawia P0_0 jako wyjście w stanie niskim (zapala diodę LED) i zatrzymałem się na tym, że sam program to nie wszystko, że istnieją (jakieś tam) pliki linkera i asemblerowy startup i w zasadzie nie wiem co dalej. #include"lpc17xx.h" int main() { LPC_GPIO0->FIODIR |= (1<<0); LPC_GPIO0->FIOSET...
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) musiałby wygenerować w pliku pośrednim takie relokacje....
Wydaje mi się, że lepszą opcją na początek byłoby przestudiowanie jak działa jakiś inny RTOS. FreeRTOS jest naprawdę prosty i dosyć czytelny, więc spokojnie można poprzeglądać. W Twoim CS brakuje jeszcze sporo, choćby zachowywania PC, LR i SP oraz modyfikacji stosu PRZERWANIA lub informacji "powrotnych" (bez tego po jego zakończeniu powrócisz do wątku...
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ć....
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: STACK_TOP EQU 0x20002000 ; constant for SP starting...
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 rejestru r7, kiedy będzie czytał parametry 5,6. Tak...
odważna teza, bo do obrony tylko wtedy, gdy złożoność programu nie pozwoli go dopracować jak należy w assemblerze. Dowód przeciwnej tezy jest banalnie prosty - wszystko, co da się napisać w C/C++ da się napisać w assemblerze, ale nie na odwrót. trzy kwestje: 1. Nawet w procesorach RISC (jak Cortexy dla przykladu) pomimo ich "ograniczonej" listy rozkazów,...
Moim zdaniem nauka sama w sobie assemblera nie ma sensu, w czystym assemblerze już raczej nikt nie pisze, co innego intrinsics które są namiastką assemblera i bez nich nie da się wyciągnąć pełnych możliwości niektórych architektur (np cortexy m3 w górę). Inna sprawa analiza assemblera, to już warto znać gdyż kompilator (zwłaszcza przy optymalizacji)...
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 jak "papierowa" czytanka . Również myślałem tak zacząć...
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 -D__USE_CMSIS=CMSISv1p30_LPC17xx -I"C:\Users\...\Documents\lpcxp...
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ć, ale raczej jako uzupełnienie kody napisanego w C. Platforma......
Ogólnie programator do AVR jest tylko trochę droższy od płytki uruchomieniowej z mikrokontrolerem Cortex-M i programatorem/debuggerem do niego umieszczonym na tej samej płytce, którego można również używać do debugowania i programowania własnych płytek. ;) Przyjrzyj się modułom np. STM32F0DISCOVERY, STM32F4DISCOVERY, Freescale FRDM, NXP LPCxpresso i...
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 działa toto tak: [syntax=cpp] volatile int number...
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. Bo w zastosowaniach embedded mamy tyle wąskich specjalizacji, że...
Wymagane • Bardzo dobra znajomość języka C - 30 lat pracy, w tym głównie tworzenie programów, najczęściej w C; • Praca z mikrokontrolerami z rdzeniem ARM Cortex – głównie z rodziny - miałem do czynienia z kilkoma różnymi, pisałem na nie kod w asemblerze; • Doświadczenie z systemami czasu rzeczywistego np. FreeRTOS, RTEMS, Zephyr RTOS - odrobinę liznąłem;...
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...
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 - aż trzech. To samo z UART, czyli tragedia po...
Wysypuje masę błędów w pliku asemblerowym. Oryginalny plik asemblerowy wygląda następująco: [syntax=asm] ;***************************************... ; uC/OS-II ; The Real-Time Kernel ; ; (c) Copyright 1992-2006, Micrium, Weston, FL ; All Rights Reserved ; ; Generic ARM Port ; ; File : OS_CPU_A.ASM...
(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...
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.
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ł bez modyfikacji na M4 (choć liczba cykli może się różnić)....
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...
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 asemblerowych jest mało sensowne. C występuje tu w roli...
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 między cortex-ami (we wszystkich cortex-ach gpio...
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 układów z rdzeniem Cortex-M0 (LPC111x) ponieważ ten rdzeń...
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,...
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 gdy idzie o rozbudowę softu, dodanie jakiś skomplikowanych...
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ę. Mnie książki takiego wydawcy jak BTC kilka lat...
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 potrzeby używania asemblera, zresztą kompilator C...
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 do pisania, tworzenia i debugowania aplikacji...
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 pod ARM (Cortex-M0 i Cortex-M3 STM32), ale nie...
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 sterowaniem obiektem, złożonym urządzeniem USB i...
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 realizować przez operacje bezpośrednio na rejestrach....
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 32 bitowy ? O tych rotacjach w asemblerze dot. tego kontrolera...
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
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 z rozszerzeniem C daje coś takiego: clock_init(); Jeśli...
Witam! :) Zanim wejdę w szczegóły chciałbym zapytać, gdzie znajdę jakiś kurs/poradnik tłumaczący od podstaw czego i dlaczego potrzebuję przy nowym projekcie ARM? Moje dotychczasowe obserwacje, to w miarę rozumiem: - CMSIS = ogólnie definicje dla rdzenia ARM - StdLib = biblioteki dla peryferiów dostarczane przez producenta, można korzystać lub nie ;)...
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ć...
Kompilacja pliku asemblerowego oraz linkowanie wyglądają jak poniżej. Handler dla systicka jest obecny. Building file: ../startup/startup_stm32f030x6.S Invoking: Cross ARM GNU Assembler arm-none-eabi-gcc -mcpu=cortex-m0 -march=armv6-m -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -ffunction-sections -fdata-sections -Wall -Wextra...
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, takie jak Lisp lub Scheme, mogą oferować krótsze...
FFT dla Cortex-a róweniez zostala napisana w asemblerze a wyniki pochodza z posta autora tej biblioteki zamieszczonego na forum ST Aha, dzięki za sprecyzowanie. Myślałem że Cortexy-M3 są nieco wydajniejsze, ale tak to jest jak się próbuje w procesorze 32-bitowym stosować instrukcje 16-bitowe. Ale w sumie pewnie wydajność Cortexa-M3 jest nieco większa...
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 mam czarno na białym co robi mój mały krzemowy przyjaciel...
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 plików. [syntax=c] [cc] C:\CooCox\CoIDE\workspace\msdl\helix\rea...
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 a przewidywanie stanu licznika zależało od ustawionego...
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 oczywiście na początku wyda ci się to...
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ś LPC z rdzeniem Cortex M0, które mają wydajność >...
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ł Twoją. Pewnie nie krzyczy dlatego, że w pliku system_LPC13xx.h...
Wykorzystałem poniższe instrukcje do ustawiania i zerowania linii portu [syntax=c] GPIOB->BSRR = GPIO_Pin_12; GPIOB->BRR = GPIO_Pin_12;[/syntax] Natomiast do odczytu stanu portu [syntax=c]GPIOB->IDR & GPIO_Pin_14[/syntax] Poprawiło to znacznie szybkośc działania. Wynik deasemblacji to 3 instrukcje asemblerowe dla ustawienia bitu [syntax=c]STR R2,[R1]...
konieczność sięgnięcia po 32 bity w prostych sterownikach bez ekranu graficznego sięga 0% Coś takiego. To ja chyba błąd robię, że tam gdzie poprzednio używałem AVR-ków, teraz ładuję Cortexy M0. Są tańsze i równie dobre, a nieraz lepsze. Szerokość słowa nie ma większego znaczenia dla łatwości programowania. Dla mnie wzorem przyjaznej konstrukcji rdzenia...
Co do kodu i innych wyborów, które pomogą ograniczyć pobór prądu. 1. Jak najniższe napięcie zasilania, ważne jeśli jest dodatkowy stabilizator. 2. Wewnętrzny generator RC - bo wybudzanie z Power Down trwa 6 cykli a dla rezonatora kwarcowego 16 tysięcy cykli. 3. Praca z jak największą częstotliwością, ale należy dobrać częstotliwość do napięcia zasilania,...
Jedynym przypadkiem, gdy opóźnienie bez timera ma ew. jakiś sens, jest procedura inicjująca działanie systemu. Można z grubsza przyjąć, że instrukcja nie będąca skokiem wykonuje się na Cortex 1 cykl zegara (jest to prawdą w przypadku instrukcji nie odwołujących się do pamięci, z dokładnością do czasu oczekiwania na pobranie instrukcji). W miarę dobre...
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 - wpierw nie były czymś przyjemnym. Popularny DSM-51 poznałem...
Liczniki to możesz zwiększać jak masz sterować kociołkiem o ogromnej stałej inercyjnej ale nie w przypadku np. filtra gdzie tego typu "rady" są mocno nie wskazane. Branie jak najmniejszego procesora przypomina mi trochę propozycję, żeby jeździć "silnikodmuchawą" F126p mogąc jeździć Mercedesem i to praktycznie w tej samej cenie. To są realia cenowe rynku...
Powtórzę jeszcze konkretniej: na 100 MHz Cortexie jakoś powinno się to dać zrobić, chociaż całkiem łatwo nie będzie. Zbieranie danych po wejściu SPI to jedyna szansa na podejście do tego na ATmega, przy zmniejszeniu częstotliwości próbkowania i bardzo uważnym programowaniu w asemblerze.
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 załadować do LPC-Link2 przez boot_lpcscrypt - "dfu-util...
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 już procedurę obsługi tego wyświetlacza i będę...
(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 systemu jako całości. To nie jest tak, że ARM pozwala...
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" bez sensu. A już początkującym to jest najbardziej...
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 odpowiednio wyprofilowany element izolacyjny lub ceramiczny...
eeeh nie udało mi się na razie okiełznać uip :( ale za to, na bazie stosu z tuxgraphics, z pełnym powodzeniem odpalam skrypty PHP na werwerze www wraz z pięknym przekazywaniem parametrów do nich ;) ... teraz jeszcze pracuję nad tym aby móc odbierać odpowiedzi w procku po odpaleniu skryptu PHP a tak z ciekawości to co to za asembler w tej funkcji przerobionej?...
Cześć, od niedawna przesiadłem się na programowanie mikrokontrolerów ARM z AVR i natrafiłem na dziwne zachowanie mikrokontrolera, którego nie potrafię sobie wytłumaczyć. Korzystam ze środowiska CrossWorks for ARM oraz biblioteki standardowej (niestety - zanim się zorientowałem ilość pracy, którą musiałbym włożyć w napisanie kodu od nowa znacznie przekroczyłaby...
Freddie napisał chyba wszystko więc podpowiedź byłaby powtórką. Generalnie na początku układ musi mieć zainicjalizowany któryś ze stosów i chociaż część wektora przerwań żeby działał. Podpowiem tylko, że Twój typ nauki wymaga sięgania do źródeł, tzn dokumentacji. Bo raczej tutoriala nie znajdziesz. Moja "teoria trawy" polega na tym, że błądzisz w dżungli,...
Mając procesor 32-bitowy nie będziesz musiał myśleć o bankach i ich przełączaniu, a operacje na adresach będą wykonywane w jednej instrukcji, a nie w 3..8 jak w Xmega. nie rozumiem tego katowania się 8-bitowcami w aplikacjach, w których przestrzeń adresowa musi przekraczać 64 KiB. Weź dowolnego Cortexa - wyjdzie prościej, taniej i ze 20 razy szybciej...
Myślę, że najodpowiedniejszym wyborem na początek będzie jakiś mikrokontroler z rodziny AVR z tego względu, że nie są to bardzo skomplikowane układy i pozwolą ci poznać podstawy .Do tego polecam dobrą książkę i tutaj mogę zaproponować: "AVR i ARM7. Programowanie mikrokontrolerów dla każdego" autorstwa Pana Pawła Borkowskiego .Według mnie dla zupełnie...
Kamyczek: nie te asemblery, nie te kompilatory. Programowanie nowych architektur w asemblerze jest mało sensowne, bo kod generowany przez kompilator jest na ogół lepszy niż kod asemblerowy średniego programisty. Zdziwiłbyś się, jak krótki i sprytny kod generuje kompilator dla wielu instrukcji i konstrukcji języka wysokiego poziomu. Sztuka programowania...
Sprzętowy stos powrotów jest częścią systemu przewidywania skoków i występuje chyba we wszystkich współczesnych procesorach do "normalnych" komputerów, z długimi potokami i wielopotokowych, w tym wszystkich x86 do PC. Nie sprawdzałem, co mają w środku nowe Cortexy A, ale spodziewam się, że przynajmniej te mocniejsze z nich, jeśli nie wszystkie, taki...
Trochę na temat, ale praktycznie... Procedura ze stosu uip (w załączniku) dla Cortexa-M3, kod w C, napisana w asemblerze i skompilowana przez gcc. Kilka takich poprawek w tym stosie i w efekcie strony otwierają się natychmiast. Nie realne jest pisanie takiego stosu w asemblerze ale wsparcie go asemblerem jest jak najbardziej wskazane. Ciekawostka......
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 lat 80. Gotowca nie potrzebuję ale jak mam coś co...
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 - zajmie to więcej cykli, niż potrzebuje Cortex. Dodaj...
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 teraz na powaznie: JESLI CHCESZ zrobic to co opisałeś, to sprawa wyglada...
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ć;)
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 siódmych potów" jak LCD ma wyświetlać płynnie ikony,...
To jest zwykły asembler Thumb2. Jako że to jest rozbiegówka, to kod musi zapisać odpowiednie liczby w odpowiednie miejsca, i to jeszcze w odpowiedniej kolejności. Cały proces rozbiegania rdzenia CortexM3 jest dostępny w dokumentacji do CortexM3, którą można pobrać ze [url=]strony ARM. Ja tej procedury nie pamietam, bo nie jest mi to na codzień potrzebne...
To co zdecydowanie przemawia za AVR to jednak darmowe świetne środowisko, ze świetnym symulatorem i debuggerem. Musisz przyznać, że ARM tego nie ma, te wszystkie nibydarmowe środowiska oparte na eclipse to jednak są niedoróbki, co nawet oficjalnie przyznają przedstawiciele, np. Freescle a propos CodeWarriora. Dużym atutem AVR jest też mnogość przykłądów...
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 szukać w internecie na temat tego błędu i znalazłem...
(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 z tematem. Ale... wątek czyta nie tylko autor, ale także...
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, w jakiej występują w programie. Pomimo to ST ostrzega...
Obsłuży przy 16 MHz i programowaniu w asemblerze lub wstawkach i NAKED. Czyli - jak się dobrze nagmnastykujemy, to może uda nam się uzyskać to samo, co na każdym Cortexie mamy bez asemblera, bez problemów i taniej, z dużym zapasem mocy obliczeniowej. Ponadto ATmega jeśli obsłuży te 260 k przerwań UART czy SPI, to nie może obsłużyć żadnego innego przerwania,...
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 droższego od niego 8-bitowca programowanego w asemblerze...
(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 koszcie układu, które są liczone centach nie są nic...
1. Normalizować w tym przypadku nie trzeba bo mozna zapisać bajt.2 2. Porównywanie instrukcji Cortexów mija się z celem - bo są one bardziej rozbudowane (np to mnożenie mogę zrobić od razu z dodawaniem i odejmowaniem wartości), dużo bogatszych trybów adresowania itp. Tak samo jak pipeliny powodują że niekoniecznie czas wykonania operacji następujacych...
Jest interfejs SWD, tak że nie trzeba jakiegoś egzotycznego programatora. To duży atut. W wielu rozwiązaniach potrzebne do uruchomienia środowiska wygibasy są przeszkodą przy ograniczonym czasie. Fajnie, że idą w tę stronę :) To jest "gratis" wynikający z użycia rdzenia Cortex M. Nie było sensu wymyślać czegoś swojego, więc kompatybilność dostaliśmy...
Tylko że mowa jest nie o konsolach czyli skomplikowanych sprzętach tylko o prostych sterownikach typu termostaty czy sterowniki np robotów kuchennych (bez internetu) gdzie w zupełności wystarcza dowolny 8 bitowiec a pakuje się 32 bitowe arm-y, (wiem bo akurat taki naprawiam dla siostry) czy np sterowniki pralek, suszarek. A jest tak bo ruski wyciągają...