Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Miksowanie kodu C i asemblera przy użyciu AVR-GCC

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Miksowanie kodu C i asemblera przy użyciu AVR-GCC

Postautor: Ania30 » 13 wrz 2018, o 13:27

Jak się usuwa ten post ,niechce więcej drażnić pająka.
Niech pająk usunie ten post,ja nie wiem jak.

Post do usunięcia bo pająkowi się niepodoba.
Ostatnio zmieniony 14 wrz 2018, o 13:06 przez Ania30, łącznie zmieniany 4 razy.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Re: Miksowanie kodu C i asemblera przy użyciu AVR-GCC

Postautor: pajaczek » 13 wrz 2018, o 14:42

Miksować to można muzykę... albo desery... ale żeby kod?

maciek.mr
-
-
Posty: 2
Rejestracja: 20 wrz 2018, o 07:45

Re: Miksowanie kodu C i asemblera przy użyciu AVR-GCC

Postautor: maciek.mr » 20 wrz 2018, o 16:11

Czy chodzi o to?

https://www.p-programowanie.pl/cpp/pola ... era-i-cpp/ ?

Albo na poziomie linkowania

M.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Miksowanie kodu C i asemblera przy użyciu AVR-GCC

Postautor: r-mik » 20 paź 2018, o 10:37

Łączenie kodu C z ASM nie jest łatwe. Wymagana jest dobra znajomość zarówno C jak i ASM oraz specyfikacji kompilatora. Ekspert od ASM znający słabo C, jaki i ekspert od C słabo znający ASM niewiele zrobi. Do tego dochodzi konieczność dokładnej znajomości dokumentacji kompilatora. To jest chyba najtrudniejsze, bo wstawka w asm może zawieszać program c w przypadkowy sposób. Autorka postu nie zna podstaw żadnego z tych języków. O kompilatorze nie wie praktycznie nic. Nie wie nawet, gdzie znajduje się plik *lss. Łączenie kodu może zrobić na poziomie dodanie instrukcji "nop", ale już nie przekazywania i zwracania parametrów do/z funkcji w asm. Nie poradzi sobie z prosta wstawką aby poinformować kompilator jakie rejestry zostały zmienione przez wstawkę asm co może a praktycznie na pewno będzie powodowało nieprzewidywalne zachowanie się programu, tak jak gdy się zapomni o zapamiętaniu w przerwaniu stanu rejestrów, które są w nim modyfikowane.

Pani Ania30, czy rozumie Pani to co napisałem w ostatnim zdaniu?
Wie Pani, które rejestry przez AVR-GCC są zarezerwowane i do czego?
Kiedy trzeba zapamiętać rejestr stanu w przerwaniu a kiedy nie trzeba tego robić?
Ile rejestrów jest odkładane na stos po wejściu w przerwanie przez uC aby mógł później wrócić do wykonywania programu głównego ?
Jeśli odpowie Pani poprawnie na te pytania dam materiały na temat łączenia kodu C z ASM.


Jest gotowy artykuł na temat łączenia C z ASM. Jeśli będzie zainteresowanie (e-mail'e do redakcji) zostanie on opublikowany na łamach EP.

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Majestic-12 [Bot] i 21 gości