Wszystko opisane jest w standardach dostępnych na stronach firmy ARM - m.in. AAPCS - Arm Architecture Procedure Calling Standard. 4\/3!!
1. Napisz to sobie w C (łątwiej), 2. Użyj godbolt i sobie zobacz jak to siętłąmaczy na asembler na Twój mikrokontroler. Tu masz przykład dla Cortex-M4, avr, x66, mips i RISC-V 32 bit https://godbolt.org/z/PxvPfz85s
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ć....
(at)oscil, Jako że asembler to mój pierwszy 'język' od którego zaczęła się moja przygoda, to taki sposób dla łatwiej zrozumieć. Kod asm wklejany w kodzie programu c nie jest uniwersalny, kompilatory c mają ińne skladnie
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...
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. Zacznij zatem od sensownego udzielenia odpowiedzi na jego pytanie. Może jeszcze ARM i frytki do tego? Nie wiesz, nie pisz. Dawid88: Zagadnienie bardzo interesujące, bo sam wiem...
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...
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....
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...
(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...
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,...
na początek zakupiłem 2 e-book'i autorstwa tmr i myślę, że moje pytania o podstawy się skończą :) do BlueDraco jeśli zajdzie konieczność rozwijania projektów to na pewno zainteresuję się CORTEX'ami dzięki wszystkim temat zamykam
Witam Jeśli chodzi Ci o rdzeń Cortex M-3 poszukaj tego: http://margines.pl/index.php?ukey=produc... http://tinymicros.com/wiki/Cortex_M0/M3 oraz dokumentacja rdzenia na stronie ARMa.
Ja klepię własne interpretery bajtkodu - od dawna już ;] Takich rozwiązań uzywam do odgrywania melodyjek, efektów na LEDach, odtwarzania sekwencji, klasyfikacji zdarzeń, ...i wiele innych. W sumie napisałem jeden silnik i metodą copy'ego-paste'a kod lazi z jednego projektu do drugiego i jest modyfikowany na miarę. "Kompilatory", a raczej translatory,...
Zajmuje się programowaniem w asemblerze procesorów ARM a dokładnie programuje układy oparte na rdzeniu Cortex-M0 (LPC111x) ale swój kod przenosiłem także na rdzeń Cortex-M3 (LPC13xx) taki sam jak w procesorach którymi ty jesteś zainteresowany (STM32). Postaram się teraz udzielić odpowiedzi na twoje pytania: 1. Wie w jaką dokumentacje trzeba się zaopatrzyć...
FFT dla Cortex-a róweniez zostala napisana w asemblerze a wyniki pochodza z posta autora tej biblioteki zamieszczonego na forum ST pz
Kolego, czy słyszałeś kiedyś o debugowaniu mikrokontrolerów przy użyciu debuggera na PC? Mam wrażenie, że nie. Otóż technika, jaką się posługujesz, wyszła z użycia jakieś 10..20 lat temu. Podejrzewam, że programuję komputery i mikrokontrolery nie krócej niż Ty, również pisałem w kilkunastu różnych asemblerach, od ok. 10 lat pracuję z Cortexami i przez...
czywiście są ARMy, które to mają, ale może się okazać, że niekoniecznie wyjdą taniej niż dedykowany 8-bitowiec. [url=http://www.nxp.com/products/microco... i inne... http://www.kinetis.pl/node/265
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...
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ć;)
http://obrazki.elektroda.pl/8863584300_1... 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:...
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,...
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...
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,...
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ść >...
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.
Pytanie 1: http://infocenter.arm.com/help/index.jsp... 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...
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...
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...
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....
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...
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)...
Czy kompilator źle policzył, a może ja ? Jest też trzecia opcja - tak ma być i to działa dobrze. Naprawdę - nie podążaj drogą sugerowania, że jest błąd w kompilatorze... Wziąłem pierwszy lepszy program i również mogę zaprezentować tego typu rozbieżności. Program działa prawidłowo. Obstawiam, że w pierwszym przypadku PC nie jest podzielne przez 4, a...
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......
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...
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...
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;...
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...
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ć...
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...
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...
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...
(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...
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...
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. http://en.cppreference.com/w/c/atomic Ewentualnie C++11 i użyć nagłówka <atomic> - co kto lubi. GCC obsługuje te funkcjonalności. 4\/3!!
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...
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...
Dziś jest wolny, jutro jest zajęty - obyś się nie przejechał. Wiem, że jest wolny bo to jest pierwsza rzecz wykonywana po wejściu w Systick-a a na początku hardwarowo jest zrzucana stack frame (a w niej jest r0 akurat) więc już go mam wolnego chyba(no tak mi się wydaje, nie widzę możliwości, żeby tam coś było wartościowego) w momencie wykonywania tej...
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.
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ą...
Odstęp nie będzie miał ściśle określonego czasu, a ani jednego bitu więcej w ramkę nie upchniesz, nawet gdyby miał określony czas, bo nie zmienisz wartości bitu startu ani stopu UARTa. Te 30% "wolnego" czasu procesora zajmie kodowanie danych do transmisji. Ciekawe, czy się wyrobi... - niekoniecznie moim zdaniem, zwłaszcza, że występują tu i dane 12-bitowe...
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ę...
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...
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...
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ąć...
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=http://infocenter.arm.com/help/inde...
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...
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]...
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...
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...
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,...
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,...
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...
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...
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...
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....
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...
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...
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...
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ć)....
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...
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...
Szanowni koledzy ja na pewno się nie obrażę jeżeli ktoś próbuje dać jakieś cenne rady, ale proszę mnie nie traktować jak nowicjusza. Syntezę AD9851 testowałem na różne sposoby i wersji generatora też było pewnie ze sześć. Poniżej przedstawiam zdjęcie trzech płytek które jeszcze nie zostały wyrzucone do kosza chociaż nie wiem dla czego. http://obrazki.elektroda.net/18_12817267...
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,...
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...
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 ;)...
Wektory ? Zachodzą jakieś wyjątki ? Cyklicznie co około sekundę jest wywoływane przerwanie od timera które wysyła dwa bajty danych i mruga diodą. Oto kod tego: Poprawiłem dobór języka w tagu syntax. Proszę na przyszłość używać tagu ] do wklejania kodu w asemblerze... /syntax] . LordBlick
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...
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...
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?...
https://obrazki.elektroda.pl/8989501300_... 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...
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...
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...
https://obrazki.elektroda.pl/8663544600_... We współpracy z TME testujemy i uruchamiamy nowe Integracja Pico2 z Arduino jest bardzo prosta, otwieramy File > Preferences -> Additional Boards Manager URLs i dodajemy url https://github.com/earlephilhower/arduin... https://obrazki.elektroda.pl/1149548700_...
(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...
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...
(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...
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...
Mam podobny problem jak w http://obrazki.elektroda.pl/4282602400_1... 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...
http://obrazki.elektroda.pl/8784060300_1... 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ć,...
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...
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...
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...
cortex firmware cortex przerwania cortex manager
wekta centrala ustawienie prądu spawania czujnik biegu wstecznego
philips senseo sterownik ładowarki akumulatora
Jak zwiększyć moc w Fiacie Grande Punto 1.4 8V 77 KM? Schemat instalacji sterowania silnikiem Mercedes W207 Coupe