Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 lut 2025, o 21:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 33 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 8 kwi 2014, o 14:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

zapraszam:

Obrazek

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 14:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Juuuuuuuż??? Ja jeszcze pierwszej części nie zacząłem :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 14:21 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

LogTeam napisał(a):
Juuuuuuuż???


:lol: zrobiłem to podstępnie i "znienacka" :lol:

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 14:56 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

No Mirku spadłeś z nieba mi. Tak mi się nie chciało pisać dzisiaj pracy inż a teraz mam wymówkę :D :D

I Pamiętajcie najważniejsze są priorytety :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 15:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

@Wilu88, no ba! Są rzeczy ważne i ważniejsze ;)

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 15:16 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3216
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Wilu88 napisał(a):
Tak mi się nie chciało pisać dzisiaj pracy inż a teraz mam wymówkę


Tak, żeby chociaż chciano honorować wytłumaczenia: "Nie mogłem bo oglądałem Kardasia"...

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 16:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

mirekk36 napisał(a):
LogTeam napisał(a):
Juuuuuuuż???


:lol: zrobiłem to podstępnie i "znienacka" :lol:

... następnym razem nas ostrzegaj, żeby nie było takiego zdziwienia :P
Nie no, ale fajnie fajnie ;) Dziś postaram się nadrobić zaległości :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 17:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

ja już wymiękam..... znowu jakieś procenty....

%1 %0.... %2 :lol:

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 17:19 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

Sonix napisał(a):
ja już wymiękam..... znowu jakieś procenty....

%1 %0.... %2 :lol:


Obejrzyj do końca - bo najpierw dla porównania pokazałem koci sposób z procentami :lol: (chociaż czy zawsze te procenty są takie złe ? ... np fajnie jak jest parę procent w soku jabłkowym :lol: )

a dalej pokażę jak bez procentów :lol: sobie radzić

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 17:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

haha Mirku z tym "SRAM" to mało ze stołka nie spadłem :)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 17:41 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

developer85 napisał(a):
haha Mirku z tym "SRAM" to mało ze stołka nie spadłem :)


hahaha ja też ;) dlatego się hmm poprawiłem :lol:

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 18:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lip 2013
Posty: 420
Lokalizacja: Kraków
Pomógł: 17

Jejku język C w porównaniu do assembler jest prościutki.. assembler to magia ;)

_________________
GreenBook i BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 18:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

mirekk36 napisał(a):
Sonix napisał(a):
ja już wymiękam..... znowu jakieś procenty....

%1 %0.... %2 :lol:


Obejrzyj do końca - bo najpierw dla porównania pokazałem koci sposób z procentami :lol: (chociaż czy zawsze te procenty są takie złe ? ... np fajnie jak jest parę procent w soku jabłkowym :lol: )

a dalej pokażę jak bez procentów :lol: sobie radzić



aaaaaa tam... co za różnica.... :lol: :lol: :lol: :lol:

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 21:29 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Jak pierwszy raz tknąłem wstawek asemblerowych (miesiąc czy dwa temu), za diabła nie mogłem zrozumieć zasad definiowania i używania operandów. Znacznie łatwiej było wpisać tę wstawkę w plik .S. No ale z tym poradnikiem jakieś światełko w tunelu się pojawiło :-)

Przy okazji: wspomniane w poradniku opcje -ffunction-sections i -fdata-sections - w pluginie 2.4.1 są już klikalne:

Obrazek

...połowicznie niestety, bo -Wl,--gc-sections wciąż trzeba wpisywać z palucha.

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 22:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

xor napisał(a):
Przy okazji: wspomniane w poradniku opcje -ffunction-sections i -fdata-sections - w pluginie 2.4.1 są już klikalne:


no dokładnie ale nie w całości a w opcjach linkera chyba w ogóle nie ma ...

Jak obejrzysz i dotrwasz do końca to daj znać czy cokolwiek przydał się ten poradnik ... bo widzę, że jednak będzie chyba bardzo wąskie grono odbiorców takich poradników - a nie wiem czy udało mi się cokolwiek jakoś przekazać żeby było przydatne - czy tylko się naględziłem ? .... no nie zawsze musi mi się wszystko udać - zdaję sobie z tego sprawę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 22:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Ja myślę że poradnik jest przydatny może na razie
jeszcze tego nie wykorzystuje (wstawek) ale jak
Mirku zaczniesz znowu poradnik o MagicLedach
to na pewno nie jedna osoba sobie szybko przypomni
o poradniku ze wstawkami asemblerowymi.
Ja jeszcze za mało umiem działać w "C" żeby potrzebować wstawki ale kto wie
może pewnego razu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 22:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

mam za to nadzieję - że przynajmniej po tym poradniku, dla tych osób dla których na razie asembler to jeszcze czarna magia - będzie już mocno inaczej gdy kolejnym razem spotkają się z jakimś kodem ze wstawkami ... wtedy się okaże - że O! ... coś już tu kojarzę ;) coś już wiem .... zaczyna mi coś świtać

a później jakoś samo pójdzie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 22:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

Mirku, ostatnio oglądałem thriller pt. AVR - wskaźniki, struktury w 4 częściach, niezła porcja wiedzy, aż czacha paruje ;). Tutejsze wstawki asm wydaja się być przy tym dość proste do opanowania, a co ważne pokazałeś jak i gdzie można ich używać, gdzie szukać wiedzy, jak się tego uczyć. To jak dla mnie, totalnego amatora w zakresie asemblera duża pomoc i mega światło w tunelu. Poza tym dodatkowe opcje dotyczące optymalizacji kodu w kompilatorze, tez bardzo przydatne.

Generalnie kolejny raz bardzo dziękuje za przekazaną wiedzę i jestem wdzięczny za tworzenie takich poradników.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 23:01 
Offline
Nowy

Dołączył(a): 29 mar 2014
Posty: 6
Pomógł: 0

Panie Mirku jestem Panu naprawdę wdzięczny za kursy wideo. Mimo ,że bawiłem się trochę w Bascomie
i miałem jakieś drobne efekty , to muszę przyznać że dużo wiedzy brałem z Pana projekcji wideo, a teraz kupiłem blue booka i uczę sie C. Przekazuje Pan wszystko w taki jasny i prosty i sposób,że aż nie mogę sie doczekać następnego odcinka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 08:37 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

dokumentacja dla atmel gcc jest w C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\doc\avr-libc

poradnik video bardzo dobry ;) o nie których rzeczach nie wiedziałem



a tu jest pare podpowiedzi jak zmniejszyc o pare bajtów kod
http://www.tty1.net/blog/2008/avr-gcc-o ... ns_en.html



Ostatnio edytowano 9 kwi 2014, o 08:49 przez karolek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 08:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

karolek napisał(a):
dokumentacja dla atmel gcc jest w C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\doc\avr-libc


a no rzeczywiście - dzięki za przypomnienie ścieżki ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2014, o 19:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

Chyba znów nikt zadania domowego nie odrobił :)

Stworzyłem taką funkcję do rolowania w prawo:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jej odpowiednik z użyciem wstawki ASM:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod wynikowy funkcji po kompilacji:
Składnia: [ Pobierz ] [ Ukryj ]
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wszystko działa prawidłowo, teraz użyłem instrukcji lsr (przesuwania bitów w prawo) i kompilatror nic w tym wypadku jak widać nie ruszył.

Mirku, na filmiku wspomniałeś, że przy próbie budowy funkcji mk_roll_right(), należy zastąpić lsl na ror lub lor (jeśli dobrze usłyszałem), ale takiej instrukcji nie znalazłem w tabelce, dlatego zaproponowałem taki jak wyżej sposób :)

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2014, o 19:31 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

matw napisał(a):
Mirku, na filmiku wspomniałeś, że przy próbie budowy funkcji mk_roll_right(), należy zastąpić lsl na ror lub lor (jeśli dobrze usłyszałem), ale takiej instrukcji nie znalazłem w tabelce, dlatego zaproponowałem taki jak wyżej sposób


no bo jak się robiło w takich asemblerach tzn procesorów jak:

Z80
8051
8086
PIC

i ostatnio AVR

to myślisz że nie można się pomylić ;)

pewnie w którymś z powyższych asemblerów było ror i dlatego to mi przyszło na język ;) ale przecież tabelka do której się odnosiłem pokazuje wyraźnie jaki jest ten rozkaz w AVR ;)

-----------------------------------------------------------------------

przede wszystkim to BRAWO !!! za odrobienie zadania domowego - SUPER! ... a już mnie ludzie w mailu pytają ... teraz mogę tylko podać linka do forum z rozwiązaną pracą domową przez jednego z szanownych widzów

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2014, o 22:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Witam,

Napisałem to samo Mirkowi na blogu, ale tutaj chyba jest lepsze miejsce.

Powód dlaczego w poradniku w czasie analizy programu w asemblerze zamiast lsl widzimy add ma proste, a wręcz banalne, wytłumaczenie. Cytując naszego klasyka "wystarczy zajrzeć do odpowiedniego pdf-a" :lol:
8 bitowe AVRy nie mają rozkazów LSL, ROL, CLR, TST, SBR, CBR i większości rozgałęzień (branchów) podawanych w dokumentacjach procesora. Tak na prawdę rozkaz asemblerowy "LSL Rd" jest bitowo dokładnie tym samym kodem (opcode) co rozkaz "ADD Rd, Rd".
Dla "LSL Rd" opcode wygląda następująco:
    0000 11 d4 d4 d3 d2 d1 d0 d3 d2 d1 d0

a dla "ADD Rd, Rr" mamy opcode:
    0000 11 r4 d4 d3 d2 d1 d0 r3 r2 r1 r0

więc jak Rr będzie równe Rd, to opcode będą identyczne.
Tak samo z rozkazami "ROL Rd" który jest zgodny z "ADC Rd, Rd" oraz innymi pozostałymi parami.
AVRy to procesory RISC (Reduced Instruction Set Computers), więc z założenia mają mało instrukcji a dzięki sztuczce "marketingowej" użytkownik dostaje dodatkowe rozkazy w asemblerze (także dzięki temu nie musi się skupiać na podstawach matematyki i pamiętać że ADD Rd, Rr przy Rr = Rd to jest LSL Rd a może zająć się programowaniem).

I dlatego deasemblerowany kod zawiera podstawowe znaczenie danego opcode (bo przecież skąd deasembler ma widzieć jakiego mnemonika chciał autor użyć).

Poniżej komplet "sztucznych" instrukcji:
    SBR Rd,K -> ORI Rd, K
    CBR Rd,($FF - K) -> ANDI Rd, K
    TST Rd -> AND Rd, Rd
    CLR Rd -> EOR Rd, Rd
    LSL Rd -> ADD Rd, Rd
    ROL Rd -> ADC Rd, Rd
    wszystkie instrukcje rozgałęzień (branch) -> BRBS, BRBC


Wszystko to można znaleźć (sprawdzić) w Atmelowym pdfie http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 50 minutach ]

mirekk36 napisał(a):
no bo jak się robiło w takich asemblerach tzn procesorów jak:

Z80
8051
8086
PIC

i ostatnio AVR


Nie mów tylko, że ominąłeś asembler na najlepszym procesorze wszech czasów - 6502, używanym w 8-bitowym Atari :evil:

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2014, o 07:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

rskup napisał(a):
Nie mów tylko, że ominąłeś asembler na najlepszym procesorze wszech czasów - 6502, używanym w 8-bitowym Atari


No właśnie motorolek nigdy nie miałem okazji dotknąć .... a słyszałem że są pod względem asemblerka smakowite że tak powiem ;)

a tak przy okazji (na blogu już tobie odpowiedziałem) ale i tu podziękuję za TAKIE fajne doprecyzowanie tematu .... miło jest działać z takimi ludźmi co lubią dzielić się wiedzą

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2014, o 12:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Akurat nie znam Assembly dla AVR spojrzałem komendy i mogę zaproponować takie uproszczenie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie wiem czy zadziała, nie mam za bardzo czasu to sprawdzić, jak ktoś ma układ uruchomiony to niech sprawdzi i da znać.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2014, o 06:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Panie Mirku,

Ja mam taką małą sugestię co do tego poradnika. To tylko tak z mojego punktu widzenia. Poradnik na pewno SUPER. Może warto wskazać w jakich sytuacjach, przypadkach powinno się używać wstawek asemblerowych. Wiem, że jeden z przykładów gdzie trzeba ich użyć to diody rgb WS... Ale może jeszcze jakieś inne przypadki gdzie powinniśmy myśleć o zastosowaniu wstawek.

Pozdrawiam

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2014, o 07:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

step_m napisał(a):
Może warto wskazać w jakich sytuacjach, przypadkach powinno się używać wstawek asemblerowych. Wiem, że jeden z przykładów gdzie trzeba ich użyć to diody rgb WS... Ale może jeszcze jakieś inne przypadki gdzie powinniśmy myśleć o zastosowaniu wstawek.


Ja generalnie mam taką zasadę, że im mniej wstawek asm tym lepiej .... nie po to korzystam z dobrodziejstw C aby wracać do ASM ;) .... dlatego wstawki asm - TYLKO tam, gdzie to niezbędne i konieczne bo inaczej się nie da .... dlatego nie widzę wielu takich sytuacji ...

Dlatego ciężko byłoby mówić tzn podawać przykłady zastosowań ... trzeba byłoby brać dość trudne przypadki i je rozważać ... ale to już jakby rozważania na caaaałkiem oddzielny temat ew poradnik ;) .... może kiedyś

Zauważ że w Greenbook'u przerobiłem specjalnie odtwarzacz WAV autorstwa elm-chan, który miał wstawki asm .... na czysty kod w 100% w C ;) dało się ? dało .... ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 kwi 2014, o 12:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Witam ponownie,

Powtórzyłem dokładnie ten sam kod co w poradniku z uwzględnieniem optymalizacji kompilatora. Po porównaniu, z funkcją napisaną w C kod zajmuje mi 184 bajty natomiast z funkcją asemblerową 190 bajtów. Czyli efekt jest odwrotny - z wstawką ASM kod jest większy o 6 bajtów. Jest na to jakieś wytłumaczenie?

Pozdrawiam

------------------------ [ Dodano po: 2 minutach ]

Jedyną różnicą jest wykorzystanie Portu B Atmegi 32 zamiast Portu A do świecenia diod.

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 kwi 2014, o 13:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

step_m napisał(a):
Jest na to jakieś wytłumaczenie?


pewnie że jest - tam gdzie tylko możesz używaj języka C ;)

żeby napisać optymalniejszy kod w asm niż wygeneruje ci program w C zwykle trzeba bardzo dobrze znać asm no i sporo się nagimnastykować - a skoro w tym drobnym przykładzie oczekujesz rewolucji po kompilacji i nie wiadomo jakich oszczędności to znaczy że dokładnie nie słuchałeś co mówiłem w poradniku ;) ale przypomnę

to jest tylko 'PRZYKŁAD DYDAKTYCZNY" a nie super zoptymalizowany kod w asm ... jakbym pokazał super zoptymalizowany to mało kto by się nauczył i zrozumiał - i szkoda że często widzowie nie pamiętają o tym ;)

panowie - w tym prostym przykładzie nie ścigamy się z C o to kto wygra i kto wygeneruje kod o kilka bajtów krótszy

a poza tym - gdybyś kompilował dokładnie TAKI sam kod jak ja w poradniku i na TEJ SAMEJ wersji toolchaina to wyszło by ci tak samo - a jeśli wychodzi inaczej to no widać jak na dłoni że są jakieś inne warunki ... coś innego robisz .... Więc i to miej na uwadze gdy realizujesz przykłady ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 33 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO