Skocz do zawartości

[Kurs] Programowanie mikrokontrolerów AVR w języku assembler - część 5


kermit

Pomocna odpowiedź

11 minut temu, ethanak napisał:

Rozumiem że masz wyłączoną optymalizację i zaglądasz do kodu asemblera wygenerowanego przez gcc?

Ani jedno ani drugie...kodu asemblera nie mam bo to arduino IDE...(nawet prubowalem ostatnio bawic sie w te pliki lss ale jakos nie moglem dojsc do ladu z tymi programami...🙄 (a pare testowalem)) a optymalizacja? Hmm..da sie to w arduino ide wylaczyc? chociaz moze to juz przegiecie i nie ma sensu zebym to ruszal...tym bardziej ze nie do konca zdaje sobie sprawe z ewentualnych problemow etc...

Link do komentarza
Share on other sites

No to nie rób takich rzeczy w Arduino IDE. Optymalizację można wyłączyć ale globalnie, a nie dla jednego szkicu.

A nie możesz jak człowiek przez avr-gcc -S cośtam.c (czy analogicznie z C++)? Bo takie "testy" jak teraz robisz to się do niczego nie nadają.

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

No w sumie moglem sie domyslic ze z arduino IDE to roznie moze byc...no trzeba bedzie sie zebrac w sobie i przerzucic sie na cos innego...mam VS code i zainstalowane platformio, ale jakos mi tam cuda sie dzialy i za cholere nie moglem dojsc do ladu, wiec z automatu sie zniechecilem...🙃 ale trzeba bedzie podejsc do tematu jeszcze raz...poki co dzieki za odpowiedzi😉

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

12 minut temu, ethanak napisał:

BTW ciekawe jak Ci się udaje używać Arduino IDE bez avr-gcc...

Uwierz albo nie ale wiedzialem ze mnie za slowo zlapiesz...😅haha nie no ja wiem ze avr-gcc jest zawsze uzywane...wkoncu to kompilator a bez tego to chyba ciezko...😉 chodzilo mi o to ze nigdy nie mialem okazji korzystac z niego w "wersji golej" z pominieciem ide...

Link do komentarza
Share on other sites

19 godzin temu, farmaceuta napisał:

...czemu jeden warunek zajmuje 1cykl a drugi 6??

 

19 godzin temu, farmaceuta napisał:

//*********************** TCNT1 = 0; if (flaga1) { // flaga1 = 0; } f1 = TCNT1; //*************************** TCNT1 = 0; if (flaga2) { flaga2 = 0; } f2 = TCNT1;

Przecież jeden if jest pusty. Więc jak gcc przejdzie do SSA, to będzie jak na dłoni, że ten "basic block" w "flow control graph" jest pusty i można zoptymalizować.

Jeśli chcesz liczyć cykle to musisz rozumieć jakie optymalizacje gcc będzie stosował w różnych przypadkach. 

PS: przepraszam za wstawki angielskie, ale nie znam prawidłowych nazw tych pojęcieć po polsku. 

Edytowano przez pmochocki
  • Pomogłeś! 1
Link do komentarza
Share on other sites

12 minut temu, pmochocki napisał:

Przecież jeden if jest pusty.

Zgadza sie tylko jak wspomnialem mi sie wydawalo ze zawartosc w klamrach jest bez znaczenia bo i tak nie wykonuje tego kodu a jedynie sprawdzam warunki ktore sa nieprawdziwe..(ify sie nie wykonuja) wiec na logike oba przypadki powinny zajmowac tyle samo czasu bo warunki sa identyczne...

 

15 minut temu, pmochocki napisał:

Jeśli chcesz liczyć cykle to musisz rozumieć jakie optymalizacje gcc będzie stosował w różnych przypadkach

a no widzisz...tego nie wiedzialem ze w takich przypadkach jak wyzej moze to wygladac roznie dla kompilatora...😉

Pozatym w pierwszym if byl tez return i tez zajmowalo 1cykl...(warunek = false) ale to nie jest dla mnie istotne...poprostu mierzylem odcinki kodu timerem i przypadkiem zauwazylem ze warunki o tej samej budowie(z pominieciem zawartosci klamer)  zajmowaly rozne czasy, i mnie to zaintrygowalo...😉 dziekuje za odpowiedz🙂

Link do komentarza
Share on other sites

@farmaceuta jeśli takie zagadnienia i schodzenie do pojedynczych cykli zegara naprawdę Ciebie interesują, to podszedłbym to tematu troszkę inaczej. Zacznij pod poznania kompilatorów. Wejdź na stronę LLVM i pogrzeb w materiałach. Pooglądaj video z konferencji. Napisz najprostrzego passa. Zrób dummy back end. 

Jest to pomysł nie tylko na edukację, rozwój umiejętności programowania i poznania różnych architektur. Jest to też pomysł na rozwój w kierunku specjalistycznej kariery zawodowej. 

Edytowano przez pmochocki
  • Pomogłeś! 1
Link do komentarza
Share on other sites

5 minut temu, pmochocki napisał:

@farmaceuta jeśli takie zagadnienia i schodzenie do pojedynczych cykli zegara naprawdę Ciebie interesują, to podszedłbym to tematu troszkę inaczej. Zacznij pod poznania kompilatorów. Wejdź na stronę LLVM i pogrzeb w materiałach. Pooglądaj video z konferencji. Napisz najprostrzego passa. Zrób dummy back end. 

Paaanie...to juz za ambitne na mnie chyba..😉 bo szczerze to nie wiele zrozumialem, a w zasadzie nic..😅

 

Link do komentarza
Share on other sites

11 minut temu, farmaceuta napisał:

Paaanie...to juz za ambitne na mnie chyba..😉 bo szczerze to nie wiele zrozumialem, a w zasadzie nic..😅

Wszystko wydaje się trudne, gdy się tego nie zna. Jedynym wyzwaniem może być brak literatury z języku polskim. Więc jeśli publikacje w języku angielskim nie są Tobie straszne, to wystarczy... zacząć. 

Edytowano przez pmochocki
Link do komentarza
Share on other sites

13 minut temu, pmochocki napisał:

Wszystko wydaje się trudne, gdy się tego nie zna.

Zgadzam sie...to cale programowanie to byl jakis totalny kosmos dla mnie bez skladu i ladu, pare lat temu, a dzis cos w tym logiki widze i malymi kroczkami do przodu😉

 

15 minut temu, pmochocki napisał:

Jedynym wyzwaniem może być brak literatury z języku polskim. Więc jeśli publikacje w języku angielskim nie są Tobie straszne, to wystarczy... zacząć. 

Magiczne slowo..."translator" i 95% informacji idzie zrozumiem😅

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.