Mam kilka innych archaicznych procesorów, gdybyś był zainteresowany ;-) 1. Spokojnie wystarczy, ale gdybyś chciał to nawet 2708 lub MM1702 gdzieś wygrzebię. 2. Assembler to : http://sourceforge.net/projects/crasm/. Zgodne są z Motorolą 3. Z powodu 2 chyba nieaktualne. Albert
myślę że to powinno Ci odpowiadać http://www.fortech.lo.pl/
Tak, wersja instalacyjna dostępna obecnie na w/w stronie zawiera asembler ASEM-51 V1.3 oraz kompilator C - SDCC 2.6.1.
Może trochę nie na temat ale po co kombinujesz z jakimiś dziwnymi kompilatorami kiedy Microchip dostarcza MPLAB'a w którym możesz pisać w asemblerze bez problemu.
Czym różni się dla kompilatora obliczenie zmiennej R przed warunkiem IF i takie samo działanie matematyczne ale w warunku IF? Zawsze można w if sprawdzać R zamiast powtarzać operację odejmowania. Aby być pewnym jak zinterpretował to kompilator można zobaczyć jakie instrukcje assemblera wygenerował. Moje przypuszcenie - całe wyrażenie zawiera stałą...
assembler. Z tego co wyczytałem to instrukcje 8080 są takie jak w 8085. Odwrotnie. 8085 miał instrukcje z 8080, to był następca 8080 i odpowiedź Intela na Z80. Natomiast drugi plik wynikowy moj.obj zawiera: :040100007F78797A11 :00000001FF Przekształcam sobie w TotalCommanderze na Hex'a i tam ani widu ani słychu instrukcji, które mam w programie. Czy...
Witam.... Pisze program w assemblerze na 51, uzywam Keila 3 v3.30a i nagle pojawil sie problem z ograniczeniem 2kb <mam wersje domo!> :/ , moze ktos by mi pomogl uporac sie z tym problemem, doradzic jak przerzucic caly projekt do innego programu, albo cos innego :) Jesli ktos chce zaproponowac "cos innego" niech napisze na priv :) Bede wdzieczny...
Czy nie prościej przejść na wersję z ISP i mieć możliwość programowania w układzie np. 89s52 ( 8kb) jeżeli to nadal za mało pamięci to są wersje 16 , 32 kB . Można wykorzystać wersję 89C52 ale to z kolei wymaga wyjmowania układu oraz programatora równoległego , ponadto obie wersje posiadają możliwość tak jak 8052 podłączenia dodatkowej pamięci 16 bitowy...
A po co nam dajesz źródła pliku C? Sprawdź co generuje kompilator w plikach wynikowych *.map. Tam masz cały kod z C przerobiony na assemblera i od razu widać co się dzieje. Tak jak kolega zauważył - jak kompilator coś za bardzo zoptmalizuje (np. funkcję delay, bo stwierdzi, że jej działanie nic nie zmienia w wyniku) to nagle się okazuje, że czasowe...
To wszystko prawda, aczkolwiek wydaje mi się, że różnie to widzą różne kompilatory. Ofszem Acc jest nazwą rejestru SFR i można ją używać jak każdej innej zmiennej czyli w rozkazach z adresowaniem bezpośrednim (direct). Oczywiście jeśli to możliwe to lepiej jest korzystać z rozkazów wykonywanych na akumulatorze. Ale czy każdy kompilator zrozumie inc...
Pisząc w C tego nie wiesz i wiedzieć nie będziesz (chyba, że zajrzysz w wygenerowany przez kompilator kod assemblera - co swoją drogą jest czasami przydatne). Nie wiem jak daleko działa REGISTER, ale prawdopodobnie kompilator patrzy bardziej na to jak na mocną sugestię niż 100% wymuszenie, bo co by zrobił gdybyś zrobił 20 zmiennych int jako REGISTER?...
Ja mam takie zdanie że rzekoma "prostota" assemblera PICów wcale prostotą nie jest. Raz że instrukcji jest mało i żeby zrobić byle co to trzeba to poskładać ze 100 innych instrukcji (choćby mnożenie), to jeszcze jest wąskie gardło w postaci chyba tylko jednego pełnosprytnego rejestru (taki akumulator). Na AVR masz bogaty zestaw instrukcji (np. jest...
http://www.atmel.com/dyn/resources/prod_... http://www.atmel.com/dyn/products/tools_...
A co nie działa na win7? Tryb zgodności próbowałeś? Jak działa na xp to w czym problem?
OCR0=0x20; /// podobno mozna zjechac do 0 i otrzymac fck/2 Zjechać może i można, ale chyba tylko do sprzętowego przełączania pinu. bo obsługa przerwania w 1 cyklu jest niemożliwa. void timer0_comp_isr(void) { PORTC ^= BIT(0); } Wrzuć co kompilator wyrzuca do assemblera do kompilacji. W sumie na obsługe jest 32 takty razem...
tylko nie sądzę, żeby kompilator chciał wyrzucać błędy przy próbie przypisania innych wartości a nawet jeśli to jaki to ma sens? na etapie kompilacji to dane zawsze można poprawić, a chyba chodzi o kontrolę w czasie działania programu..? Kompilator może rzucić błędem i takie rzeczy stosuje się właśnie do kontroli podczas pisania programu. Jak ktoś...
Jaki możecie mi zaproponowac fajny, dobry i łatwy w obsłudze kompilator assemblera, przydał by się jeszcze jakiś symulator też łatwy i dobry !!!
gdzie mozna dorwac instrukcje assemblera dla arm 7 oraz kompilator
to skoro padła odpowiedz jak poradzić sobie z problemem to powiem co poszło nie tak. w językach kompilowanych, na przykład C oprócz zwykłej tablicy istnieje także statyczna czysta tablica. [syntax=c]const char tablica[liczba][/syntax] gdzie liczba to naprzykład [syntax=c]#define liczba 100[/syntax] podczas przejścia preprocesora jak kompilator widzi...
z tego co ostatnio liczyłem to taka pętla: Dodano po 1 A no i bez nop'a kompilator przy pewnych ustawieniach wytnie Tobie całą pętlę.
Wiesz programowanie w "C" to wystarczy że znajdziesz odpowiedni kompilator żeby zapisał Tobie program zapisany w "C" na język maszynowy. Ja niestety Tobie w tym nie pomogę bo osobiście wolę Assembler'a. Jak będziesz miał już plik *.hex (w języku maszynowym po kompilacji) to wgrasz to sobie do uC. Podałem Tobie rozwiązanie z AtMega bo w sumie do "C"...
0xGH już wogóle wygląda...innowacyjnie :P Te dwa rejestry co wymieniłeś to nie są komórki pamięci. Rejestry które deklarujesz w plikach nagłówkowych to są już *(adresy w pamięci) , dlatego jest mozliwość postawić tam wskaźnik. A da się postawić wskaznik na np. R2? Spróbuj...;] Procesor ma rejestry robocze , nie wmapowane w pamięć, na których wykonuje...
Uff, dużo tego. Każdy program w procesorze składa się z tego co Ty napiszesz oraz potencjalnych bibliotek. Jedno i drugie powinno być skompilowane z tymi samymi opcjami (w naszym przypadku obecność koprocesora i używany przez niego format danych). Inaczej linker się pluje i ma rację. Twórcy yagarto uznali, że arm966e-s ma koprocesor (może taki mieli),...
A gdybym chciał się zając mikrokontrolerami, czego bym potrzebował?? Mikrokontroler (jaki?) programator (jaki?) kompilator na kompie (jaki?) hmm.. coś jescze???? _emes Na początek polecam zacząć od mikrokontrolerów rodziny AVR. Nie daj się nabrać na początki w '51 - owszem, może to i "sztandarowy" mikrokontroler, tak jak Pascal w językach programowania,...
Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie wykonywanie instrukcji w "jednym" cyklu zegara.......
Chyba faktycznie zaczne sie uczyc assemblera bo ten mikropascal nie ma wogóle żadnej pomocy Wiesz, powiem Ci, że aby zacząć programować w asemblerze wystarczy znać nazwy najważniejszych rejestrów, wiedzieć za co odpowiadają i mieć pod ręką listę rozkazów dla danego procka. W porównaniu z Micropascal, Microbasic, BASCOM lub nawet z C, w przypadku programowania...
Do edycji źródeł od dłuższego czasu używam darmowego programu Crimson Editor. Obecnie jest kontynuowany jako Emerald Editor. Rozpoznaje składnie, umożliwia zaznaczanie kolumn tekstu, ogólnie posiada wszystkie potrzebne do tej pracy funkcje. Instalujesz Crimson Editora, rozpakowujesz ASEM'a do dowolnego katalogu, nie polecam spacji i polskich literek...
Poszukuję kompilatora assemblera lub C na procesor DSP56003 Motoroli, posiadam kit do tego procesora lecz nie posiadam żadnego oprogramowania.
Postanowiłem jednak ten przykład własnego assemblera odpalić, aby zweryfikować czy to w ogóle działa i jak mam dane w pamięci interpretować. Przykład kodu w assemblerze: .global _start .section .text _start: li $t0, 0 loop: addi $t0, $t0, 1 nop nop j loop Najpierw wyzerowanie rejestru t0 Dodanie liczby 1 do rejestru. Dwa nopy nic nie robiące....
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,...
Teraz w sumie przetestowałem jak kod będzie działał z -O3 i co ciekawe kompilator chce kod zoptymalizować poprzez użycie memset i memcpy, których z faktu nie używania standardowych bibliotek nie mamy. Rozwiązaniem na taki problem jest dodanie opcji kompilatora -ffreestanding. Rozmiar kodu maleje prawie dwukrotnie a sama dioda mruga znacząco szybciej...
:arrow: zumek Wiem, że potrafi to wygenerować kompilator assemblera. Listing z mojego poprzedniego postu to CYTAT z wypowiedzi kolegi jony15 . A moje pytanie wynikło stąd, że też ten kompilator wydał mi się kiepski, i chciałem się dowiedzieć jaka to wersja. Sorry za nieprecyzyjne pytanie. Ja używam (a raczej używałem, teraz jeśli już piszę na '51, to...
(at)Elektroonik Dzięki trocszke tego jest i troszke potrwa zanim to przerobie :D. -------EDIT--------- OK. A możecie mi tylko jeszcze podać jakiś kompilator assemblera dla AVR bo wiem że dla windows jest NASM\TASM a pod AVR??
Są zastosowania w których przekaźniki jeszcze długo nie będą wyparte przez SSR :) Zgadzam się. Podobnie jak lampy elektronowe. Jednak ich popularność zdecydowanie spadnie a pozostaną jedynie w tych bardzo wyspecjalizowanych zastosowaniach. W elektronice od początku jej istnienia naturalnym jest dążenie do eliminacji elementów mechanicznych na rzecz...
Do tego abyś mógł pisać w C(ponieważ z winavr jest avr-gcc) . AvrStudio to generalnie kompilator assemblera do którego można dołączyć możliwość kompilacji kodu napisanego C.
Polecam coś ze stajni microchipa - na przykład PIC18F4550. Bardzo fajne procesorki, pod unix-y masz SDCC do pisania w C i kompilator assemblera GPASM. USB oczywiście tylko od strony klienta, Nie znajdziesz raczej mikrokontrolerów prostrzych niż ARM z hostem USB.
Jeśli chodzi o kompilator assemblera , to jest on taki sam może trzeba jeszcze dodeklarować dodatkowe rejestry w programie Co do programatora , to program pod windę można było ściągnąć kiedyś ze strony producenta ... Ale wydaje mi się że potrzebna będzie jakaś przejściówka dla zestawu z ST6225 do proca ST6265 , bo chyba ma programowanie na innych pinach......
to ja nic nie rozumie. zamieszczasz listing i wyniki działania- pytasz czemu nie działa. konstrukcja typu:xram unsigned char test1 Powiem tak: "bajki opowiadasz" :) Kompilator generuje kod(startup) , który robi to , co ty chcesz robić "ręcznie".I nie ważne czy to Keil, czy SDCC.Natomiast napewno tego nie robi , kompilator ... assemblera ;) Dowody w...
Witam! W trybie pilnym potrzebny jest mi kompilator assemblera do procesorow 8051 8751 8951 (krotko mowiac seria mcs-51), a takze jakis programator z oprogramowaniem do niego. Problem w tym ze caly soft MUSI BYC FREEWARE, zadne crack'owane dema i sharewary nie wchodza w gre. W sieci znalazlem tylko wersje demo i shareware :-( Chodzi mi o soft pod windowsa...
witam. Zamierzam zrobić projekt na atmedze początkowo chcę spróbować z bascomem, teraz moje pytanie. Czy można używać w kompilatorze bascoma - assemblera albo C? Projekt chciałbym zrobić w C albo w Asmie ale coś czuje ze mnie to może przerosnąć z braku czasu i na razie chciałbym spróbować w Bascomie, ewentualnie potem krokowo "zamieniać" bascomowe polecenia...
Jakieś dwa tygodnie szukam czegoś na czym mógłbym zacząć naukę. Próbowalem z 89C2051 ale programatory sa skomplikowane i drogie. Interesuje mnie programowanie a assemblerze i jak najprostrze programowanie układów. Ten temat może pomóc ludzią którzy podobnie jak ja chcieliby zacząć naukę programowania mikrokontrolerów. Moje pytania to: Jaki układ - tani,...
Witam ponownie, mam problem ze sprzętowym TWI w ATmega128, przeczytałem już wszystkie posty na forum dotyczące TWI i notę katalogową ATmegi ... To przeczytaj notę jeszcze raz , ze szczególnym uwzględnieniem przestrzeni I/O oraz o ograniczeniach rozkazu IN , OUT wynikających z jego opcode (10111AArrrrrAAAA) , czyli max 5-bitowy adres rejestru I/O. "Normalny"...
Pilnie poszukuję kompilatora assembler-a do mikrokontrolerów z rodziny LPC2000. Pozdrawiam
Darson55, czy Ty naprawdę nie umiesz czytać? Przecież Light'I wyraźnie napisał w swoim pierwszym poście, że AVRStudio to taki kombajn (zintegrowane środowisko) do kompilatora assemblera avrasm2. Oczywiście, możesz sobie ściągnąć samego avrasm2.exe i kompilować programy z linii poleceń (ja tak czasem robię jeśli nie mam pod ręką Linuksa) albo możesz...
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...
ja polecam kompilator FASTAVR, obsluguje jezyk bardzo podobny do bascoma tylko ze generuje o wiele mniejszy kod wynikowy, jak twierdza autorzy FASTAVR nawet piszac w czystym assemblerze trudno byloby uzyskac mniejsza objetosc programu. Dodatkowo kompilator ten tlumaczy kod napsiany przez w basicu do assemblera dzieku czemu jesli ktos bardzo chce moze...
Dyrektywa $ASM jest używana razem z dyrektywą $END ASM, podczas tworzenia bloków kodu w języku asembler, umieszczanych jako wstawki w programach języka BASCOM BASIC. Zamiast używać tych dyrektyw, można także przed każdą linią zawierającą mnemonik postawić znak !. Większość mnemoników asemblera nie potrzebuje przedrostka !, gdyż są one rozpoznawane...
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)...
Również uważam, że Python na Arduino to bardziej ciekawostka niż użyteczne narzędzie. Python jest językiem skryptowym, do działania potrzebuje określonego środowiska, które może zapewnić system operacyjny o zdecydowanie większych zasobach niż Arduino. Bałbym się w tym środowisku uruchamiać coś co zawiera więcej niż kilkadziesiąt linijek kodu. Do tego...
odpal kompilator g++ z opcją -S
davciu, prosilem byś przeczytal DOC-a do MetaLink'a. Wiedzialbys wszystko juz po kwadransie. Podstawowa sprawa to ściągnięcie pełnej wersji kompilatora wraz z dokumentacją i plikami, w których są zdefiniowane przez "fabrykę" nazwy symboliczne i odpowiadające im adresy rejestrów i bitów mikrokontrolera. Te pliki mają nazwy zaczynające się od "MOD" i...
Oczywiście że chodzi mi o optymalizację wprowadzoną przez kompilator, na optymalizację algorytmu przez użytkownika zawsze w jakimś stopniu chronią UT. Ja miałem problem właśnie z volatile, jakimś cudem kompilator zoptymalizował zmienną w dość niefortunny sposób co powodowało wywalenie się kodu. Co ciekawsze było to w examplu od ST a kompilowane pod...
Mógłby mi ktoś wytłumaczyć co muszę zrobić aby móc z niej korzystać? ? 1. Użyć assemblera, aby przetłumaczyć plik z kodem assemblerowym na język maszynowy. 2. Użyć kompilatora, aby przetłumaczyć plik z kodem w C na język maszynowy. 3. Użyć linkera, który skonsoliduje oba porzednio utworzone w 1 program. Na pewno zadziała. I z Eclipse i bez. Nawet jak...
assembler w avr-gcc ma niewiele wspólnego z normalnym assemblerem. Nie ma czegoś takiego, jak "normalny" assembler. Tak jak "normalnego" kompilatora c pod windows. Normalny to jest ten, do którego się przyzwyczaiłeś. To że musisz dopisywać-0x20 wynika z faktu że komilator assemblera nie radzi sobie. To wynika z tego, że nie chciało mi się poszukać...
Ludzie proszę podpowiedzcie mi: Czy lepiej pisać programy pod mikroprocesory w C czy w assemblerze? Prawidłowo zadane pytanie powinno brzmieć: Czy lepiej zaczynać pisanie programów pod uC od C czy od assemblera? W mojej opinii lepiej jest zaczynać od assemblera, nawet pisząc rozbudowane programy (30k kodu). Oczywiście zgadzam się z opinią rzysiek_k1984...
Freddie Chopin: A który kompilator wybrać ? bo jak wybieram CROSS_GCC to nie chce spompilować assemblera w startup.S a jak Summon ARM to nie widzi reguły all
Implementacja volatile w znacznym stopniu zalezy od kompilatora. W avr-gcc mowi kompilatorowi, ze zmienna moze zostac zmieniona niezaleznie od sekwencji wykonywania programu - np. w przerwaniu, albo sprzetowo - np. rejestry IO procesora. W efekcie kompilator przy kazdym odwolaniu do takiej zmiennej raczej zaladuje ponownie jej zawartosc niz skorzysta...
Co znaczy nie działa? Tego typu trywialne kody należy symulować z intensywnym wykorzystaniem okna podglądu assemblera - kompilator tak optymalizuje kod, że z oryginalnego niewiele zostaje i podgląd w C może być mylący. Często objawia się to tym, że pozornie nic się nie dzieje. Pamiętaj, że symulator nie działa tak szybko jak prawdziwy CPU - opóźnienie...
Klasyczny temat, zawsze taki temat będzie się ciągnął. Dzisiaj w pracy padło stwierdzenie że programista w python to oksymoron. A ja się z tym nie zgodzę, to że ja lubię grzebać w czystym C, na pograniczu assemblera (i o dziwo nadal jest w tym praca), nie oznacza że to jest ten jedyny wspaniały język a reszta to dziadostwo. Najważniejszym pytaniem jest...
Bo są zoptymalizowane i kompilator wygenerował kod ich nie uwzględniający. Włącz podgłąd assemblera i wtedy analizuj wykonanie funkcji.
Ok. Już wszystko jest jasne. Jednak mam problem w stronę odwrotną, a dokładniej: Mam zadeklarowaną stałą w C, w assemblerze chciałbym wyciągnąć jej adres w pamięci. Robię dokładnie tak jak podane w przykładzie podanym przeze mnie (czyli w assemblerze dodaję .extern), kompilator podmienia nazwę zmiennej na jej adres, ale jest mały problem. Adres ten...
W programie C++ deklarujesz zmienną w specjalny sposób: extern "C" int wynik=0; extern "C" powoduje że zmienna ma nazwę taką jak podałeś, ale z dodatkowym prefiksem: _wynik. Bez tego zmienna będzie zawierała w nazwie typ zmiennej plus różne dziwaczne znaki, a całość będzie zawsze inna w różnych kompilatorach. Standard "C" zawsze (i tylko)...
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...
-8259 (sterownik przerwań) Tylko nie skonfiguruj przetrwań jak w PC (zboczem) co jest wyjątkowo chorym pomysłem, tylko poziomem co umożliwi bezproblemowe podłączenie do jednej linii kilku urządzeń. Zobaczę jak to będzie. Mam aktualnie tylko radzieckie odpowiedniki 8259, które podobno nie są w pełni zgodne z oryginałem. Przyznam, że zbocze wydaje się...
A jaki jest twój kod? Jeżeli urządzenia mają różne adresy, to możliwe, że wysyłasz informacje do wszystkich urządzeń (jest taka możliwość - adres urządzenia == 0000000 to powoduje). To by tłumaczyło dlaczego dostajesz odpowiedź od każdego z nich i wszystko działa ok tylko jak jest jedno urządzenie na szynie. Najlepiej sprawdź w kodzie assemblera (listingu)...
No mialem oczywiscie na mysli C, te plusy to z przyzwyczajenia. Nazwy rejestrow owszem nie zmieniaja sie, ale polecenia kompilatora owszem. Do tego w C nie musisz pamietac o wielu rzeczach, o ktorych w przypadku assemblera pamietac musisz (np. o tym ze nie wszystkie komorki pamieci mozna adresowac bezposrednio, a nawet w ogole ich nie musisz adresowac,...
Popełniłeś jeden błąd logiczny, a mianowicie wejścia portu D podciągasz do plusa, no więc musisz je zwierać do masy aby był jakiś efekt, a co za tym idzie musisz sprawdzać czy pin jest zgaszony a nie ustawiony, np. zamiast: cpi r18,0x40 ; czy jest przyciśniety SW4 ;0b01000000 breq Przycisk_4 ; tak - to skocz do Przycisk_4 powinno być: cpi r18,0x23 ;...
Przerwanie nie modyfikuje SP (z punktu widzenia przerwanego kodu). Wartość SP po powrocie z przerwania jest taka sama, jak przed wywołaniem. I tu właśnie problem, bo też tak myślałem, dlatego pisałem wcześniej że błędu w logice nie ma. Mój kod nie jest błędem. Dodałem brakujące CLI i kod od godziny chodzi bez zarzutów. Spójrz na to: zapamiętaj SREG...
... zrobiłem to celowo by kod był możliwie najkrótszy choć tak naprawdę można byłoby go jeszcze skrócić pisząc w asm bo kompilator dodaje prolog i epilog ISR...robiw Nie trzeba assemblera - wystarczy ISR_NAKED: http://www.nongnu.org/avr-libc/user-manu...
Dodatkowo przecież i tak musisz zaufać kompilatorowi - skąd wiesz że to co napisałeś w asemblerze to jest to co masz później w pliku hex lub bin. Może coś zostało dodane albo odjęte - w końcu jesteś w rękach tych co ten kompilator (z asemblera) napisali. Trzeba ręcznie plik hex (kolega kamyczek już sie chwalił że jak zabyskać diodą to on prosto do...
Ten kto pisał kod nie musiał wcale wiedzieć co gdzie jest. Jeśli korzystał z kompilatora to kompilator robił to za niego, a jeśli z assemblera to assembler. Zmienne też nie są skracane do prostych znaków. Po prostu są zastępowane adresami. A skoki albo adresami bezwzględnymi, albo względnymi. Procesor też nie musi wiedzieć gdzie są dane, a gdzie kod....
Witam,takich tematów widziałem już sporo ale niestety żaden nie dotyka interesującej mnie tematyki więc niestety musiałem stworzyć kolejny. Jestem początkującym programistą uC, a raczej chciałbym takim być. Po przerobieniu kursu "mikrokontrolerowa ośla łączka" zachęcony "niemiłymi" opiniami na temat bascomu, kolegów elektroników postanowiłem przerzucić...
szczerze mówiąc taki hardware-owy kompilator można złożyć samemu za około 15zł i wędrówke na złom! To nawet ciekawe bo ludzie wyrzucają całkim dobre i szybkie procki :) a jako µkontroler polecam '51
Popularność wynika sam nie wiem z czego. Taki u nas ten ATMEL popularny a tu patrz ;p LPCxxxx mają DACe, ale może nie wszystkie. 128bitów to ma szyna dostępu do FLASHa, co pozwala pobrać 4 rozkazy w ciągu jednego cyklu odczytu. Układ MAM się tym zajmuje. Freddie Chopin wyjaśnił to parę postów wyżej. Proste programy na ARMie zajmą mniej więcej tyle co...
Dzięki Panowie, zdecydowałem się na ICD2 z allegro, trochę drogi ale to w końcu jednorazowy wydatek. Mam kolejne pytanko, jakie środowisko do programowania tego mikrokontrolera wybrać i czy lepiej skierować naukę w stronę języka C czy Assemblera. Dla ICD2 to praktycznie wchodzi w grę tylko MPLAB, ew można kompilować dowolnym narzędziem i wgrywać tylko...
używasz skrótów do GDB które są w najnowszym przykładzie? Komendy do OpenOCD wyłączają profilaktycznie PLL i MAM po resecie. Bez tego miałem dokładnie taki sam problem jak opisujesz (oraz kilka innych, jeszcze bardziej kosmicznych). Assemblera znam niezbyt wiele, zwykle nie ma się po co go uczyć, bo nikłe szanse abyś był lepszy niż kompilator w 99%...
Nie dowiesz się tego. Zależy to od warunku (co innego jest porównanie liczb zmiennoprzecinkowych, co innego stałoprzecinkowych, co innego liczb które pobiera z jakiejś struktury/klasy itd itd itd) jak i tego co wykonuje się dookoła tego warunku (np. czy dane są w pamięci czy musi je ściągnąć z niej). Nie ma sensu analizowanie poszczególnych linijek...
#define LCD_DATA_WR (*(unsigned char *)(0x02fff2)) to masz stałą kompilatora.. on wstawi tą wartość do wszytskich plików które przetworzy.. kompilator gcc nieprzetworzy plików asm a więc tam tego niewstawi.. plik asm jest łączony z plikiem C (oba w formie object file) dopiero na poziomie linkera.. p.s. 0xfff2h fajnie to wygląda.. "0x.." to jest znacznik...
Obstawiam, że kompilator "zoptymalizował" całą inicjalizację kontrolera pamięci, który z tego powodu nie zostaje włączony/skonfigurowany. Bo w tych dwóch kawałkach kodu raczej za wiele by mu się nie udało pomieszać, choć dla pewności można porównać instrukcje assemblera wygenerowane dla tych dwóch funkcji w tych dwóch przypadkach (z/bez optymalizacji)....
dokladnie przeczytalem twoj post, nie sadzilem, ze PICC jest takie lewe, ze ma tez innego assemblera zamiast uzywac MPASM. miej swiadomosc, ze moze tego po prostu sie NIE DA zrobic, bo ten kompilator nie pozwala ci na zapisanie czegokolwiek pod tym adresem, poniewaz tam pakuje on odnosnik do swojego inicjalizatora... 0x41 0x56 0x45!!
Doświadczenia nie mam, ale pobieżny przegląd dokumentacji pokazuje, że co najmniej linkowanie musi być lokalne. Także z preprocesorem nawet w trybie pump jest wiele obwarowań. To łacznie z koncepcją gcc jako programu wywołującego odpowiednie progamy narzędziowe (preprocesor, kompilator, assembler, linker) wymusza jego instalację lokalną. Może być więc...
o ile masz dostęp do maszyny która programuje bo drukarki to raczej tylko czytają i wzorowanie sie na ich transmisji nie da Ci całego obrazu poza tym czy przypadkiem nie programuje się to jednym pinem (transmisja szeregowa i trzeba przy programowaniu całość wgrać i skąd w takim razie wziąć tą całość jesli powiedzmy chip w kałamażu jest tego typu że...
Dodam od siebie małe sprostowanie do całości, bo jak czytam to jeśli kolega bakardi miałby sie tu wszystkich słuchać to raczej straciłby chęć do nauki czegokolwiek. Po pierwsze: W uC korzysta się głównie z języka C! Czemu? Ze względu, że jest stosunkowo łatwo przyswajalny oraz jak się dobrze postarać to program napisany w języku C można uruchomić na...
To prawda, nie jestem w stanie porównać nawet tego co działo się w roku 2000 w tej dziedzinie i na pewno prostota uruchomienia układu i rozpoczęcie programowania miało ogromne znaczenie, dziś w dobie gotowych płytek gdzie podłączamy USB i jedziemy z programowaniem, to są to rzeczy dla mnie abstrakcyjne. Języki się rozwijają i są coraz trudniejsze do...
Witam Hmmm jak dla mnie to nie napiszesz dokładnie tego samego w C co w assemblerze chyba ze zrobisz wstawkę assemblerowską, pozatym wyłącz sobie optymalizacje w AVR studio to wykonanie 1 obiegu pętli z 11 cykli wzrośnie Ci do około 29 ;) Jak dokładniej chcesz zobaczyć jak kompilator tłumaczy Twój kod na assemblera to kliknij sobie view i dissasembler,...
Koledzy będąc złośliwy napiszę wam tak każdy wasz kod da się zapisać w asemblerze ,bo każdy plik hex da się zapisać w asemblerze a jak się z niego da wywalić 1 rozkaz to będzie krótszy kod asemblera . Może więc zamiast dorabiać sobie ideologię do pisania w c przyjmiecie do wiadomości ,że każdy język jak i mikrokontroler ma swoje wady i zalety i nie...
Wracając do tematu. Aż dziwne, że nikt nie wspomniał o instrukcjach ldrex oraz strex, które są przydatne przy tego typu operacjach. Jak ktoś nie używa przedpotopowego kompilatora (to jest zgodnego z C11) to ma to wszystko zaimplementowane: http://en.cppreference.com/w/c/atomic Jest to oczywiście również fajna sprawa, ale... nie działa na ARM Cortex-M0,...
Ile problemów robi adresowanie tablic w Bascomm od 0? Tyle co użycie dyrektywy CONFIG BASE=0 ... w MATLABie tablice też są indeksowane od 1. Jakoś nie bardzo widzę problem w tym jaki indeks ma pierwszy element tablicy. Co to zmienia czy ma 0, 1 czy 123? Jak jest przenośność C a jako Basic? Dałem konkretny przykład, w C kilka godzin roboty, w Basic...
:arrow: rabbit2 Twój pierwszy programik napisany w assemblerze wyglądałby tak: .deviceAT90S1200 .org0x00 ;Config Portb = &B11111111 ldiR16,0b11111111 outDDRB,R16 ;Portb = &B11111111 ldiR16,0b11111111 outPORTB,R16 ;Config Portd = &B1111100 ldiR16,0b1111100 outDDRD,R16 ;Portd = &B1111111 ldiR16,0b1111111 outPORTD,R16 ;Do Etykieta: ;If Pind.0 = 0 Then...
Jeżeli będzie obsługa większości AVR i PICów, kompilator C i asm, porządny symulator i wszystko ładnie działające i zintegrowane, to osobiście mógłbym za to zapłacić ~200zł Chyba zjadło ci jedno zero w cenie :) I nie zł tylko $. Zobacz ceny komercyjnych kompilatorów C i całych IDE dla uC (Hitech, IAR, Keil). Nie wierzę żeby komuś opłacało się tworzyć...
Do uczenia się C lepsza jest dobra książka i wcześniej lepiej jeszcze nauczyć się assemblera na uP, bo spędzisz kilka dni żeby odkryć, że kompilator wygenerował kod taki że mimo iż v jest zadeklarowane jako long 4y bajty z dowolnej ksiązki o C dowiemy się że sposób obliczania wyrażenia nie zależy od tego do jakiego typu zmiennej zostanie potem przypisana...
Uczę się dopiero assemblera bięc nie bijcie. Windows xp x86, amd phenom 4x x64, system plików ntfs, kompilator nasm. org 100h start: mov ah, 3Ch ; nowy plik mov dx, nazwa ; nazwa pliku xor cx, cx ; atrybuty int 21h jc b_utworzenie ; sprawdzenie bledu mov [uchwyt], ax ; zapis uchwytu (...) mov ah, 40h mov cx, 1 mov dx, [zmienna]...
Z językiem programowania, to jest tak: zależy na ile wystarczy ci cierpliwości, bo przykładowo temat assemblera wymaga duuuużo ćwiczeń, ale daje fantastyczne rezultaty (jak pokonasz pewien próg umiejętności pisania złożonych programów). Jeżeli chodzi o rodzinę, to mogłabym ci z czystym sumieniem polecić mikrokontrolery AVR. Produkuje je ATMEL (www.atmrl.com)....
Używam zamiennie Bascoma AVR i FastAVR. Ten drugi generuje mniejszy kod dla uC poniżej 2K pamięci i obsługuje więcej graficznych LCD, ale nie radzi sobie z liczbami czterobajtowymi. Teraz przyglądam się C++. Zaletą Bascoma jest napewno współpraca z peryferiami. Nie chciałbym na początku musieć pisać od podstaw sterowania do I2C czy UART'u. Wcześniej...
Modyfikacja biosu prostą nie jest, wiem że na linuxa jest program o nazwie "flasrom" który to pozwala na wgranie dowolnego wsadu do kosci pamięci. Po prostu robi programator z PC, w dokumentacji jest lista wspieranych Chipsetów i chipset do T5730 jest wspierany. Trzeba by było dorobic jakoś gniazdo na BIOS i na działającym terminalu przełożyć kości...
Poczytaj tutaj: http://www.ibiblio.org/gferg/ldp/GCC-Inl... Do zmiennej odwołujesz się jako %0, %1 itp: const int c = 55; __asm__("movl %0, %%eax;\n\t" : /* bez operandów wyjściowych */ : "r"(c) /* c jest załadowane do dowolnego rejestru przed asm */ : "%eax" /* wartość EAX jest...
niemniej jednak warto skorzystac z czyichs doswiadczen i wlasnie tego chcialbym dokonac To ja Ci dam praktyczną radę: Optymalny sposób przekazywania parametrów do funkcji zależy od konstrukcji uC i jeżeli chcesz go poznać to musisz podejżeć jak to robi kompilator C (napewno jakiś mądry człowiek to wymyślił). Często jest tak że skoro do funkcji najczęściej...
Pewnie w STM jest ten sam powód (nie sprawdzałem bo to raczej nie ma już żadnego znaczenia, chyba, że próbujesz "wydusić" z STM'a tyle ile fabryka dała + 50%). Prędzej ktoś chce być sprytniejszy niż kompilator i do tego jeszcze nie zna assemblera którego chce wykorzystać. optymalizacja 0 out = in ^ 0xFFFFFFFF; 80001a8:f240 0300 movwr3, #0 80001ac:f2c2...
Niektóre języki takie jak Shakespeare, BeFunge, Whitespace wyglądają jak żart lub ciekawostka, ew. eksperyment i pokazanie, że można zrobić coś inaczej niż popularne rozwiązania. Mamy jeszcze : https://pl.wikipedia.org/wiki/Brainfuck a także BrainFuck wielowątkowy : https://pl.wikipedia.org/wiki/Brainfork :-) Co do pytania z tematu .. to może chronologicznie:...
ehh, pytanie, kto bedzie chcial to programowac w C#?:) inny problem to taki, ze kompilator C#->asm musialbys robic dla KAZDEGO mikroprocesora (a jest ich multum, nawet tych podstawowych jest sporo i kazdy swoje odmiany ma) Ewentualne rozwiazanie to zrobic kompilator C#->C, w ten sposob moglbys kazdy mikroprocek zaprogramowac z poziomu C#... ale.. to...
nauka assemblera kompilacja assemblera programowanie assemblera
alpine kostki blokada ustawić unitra ws432
Jak dobrać rezystor do rozładowania kondensatora przy 230V? Bezpieczna rezystancja przy dotyku fazy 230V