AVR: Laczenie programow napisanych w C i assemblerze

Witam! Mam sobie pare procedur napisanych w assemblerze (glownie procedury obslugi przerwan). Natomiast glowna czesc programu napisana jest w C. Pytanie brzmi - jak polaczyc jedno z drugim? Wiem, ze mozna przez asm volatile, problem w tym, ze te procedury w asm sa bardzo dlugie (ok. 2kB kodu), w dodatku optymalnie by bylo, zeby mozna bylo ten sam plik wykorzystywac do zainkludowania w C i w innych programach w ASM (to jakby oddzielny modul). Zasadniczo program w C i procedury w ASM sa zupelnie oddzielne, komunikuja sie razem za pomoca paru wspolnych zmiennych, nic wiecej. Wiec w sumie wystarczyloby to tylko w jakis sposob zlinkowac razem, a w C zdefiniowac owe zmienne jako extern. Ma ktos moze pomysl jak to zrobic? Pozdrawiam, T.M.F.

Reply to
T.M.F.
Loading thread data ...

tez nad tym myslalem swego czasu - przykakladowe rozwiazanie masz w sofcie do popularnego YAMPPa cale biblioteki napisane w asm (CF,usb,MMC) sa wlaczone w kod jako funkcje w C. Potrzeba oprocz tego zmodyfikowac makefile'a zeby je widzial, nie wnikalem za bardzo w szczegoly, dziala bez problemu

Reply to
Greg(G.Kasprowicz

Dnia Thu, 07 Sep 2006 10:36:48 +0200, T.M.F. napisał(a):

W makefile'u dodajesz:

ASRC = moj_plik_w_asm.S

Robisz plik naglowkowy z deklaracjami extern zmiennych i funkcji. Dołączasz plik nagłówkowy do pliku C i prawie już.

Ja się uczyłem na przykładzie - biblioteki obsługi i2c autorstwa Petera Fleury'ego.

Pozdrawiam Marcin Stanisz

Reply to
Marcin Stanisz

Dzieki za pomoc. Przegladalem ta biblioteke, rzeczywiscie takie laczenie wydaje sie proste. Mam tylko jeszcze dwa, mysle, ze proste, pytania:

  1. Jesli definiowana jest funkcja z parametrami/zwracajaca wartosc - skad wiadomo w ktorym rejestrze jest jaki parametr? Domyslam sie, ze to jest jakos z gory predefiniowane...
  2. Jak zdefiniowac handler dla przerwania? extern SIGNAL.... czy moze raczej to linker powiaze moja procedure z odpowiednim wektorem? Tylko jak? Na podstawie nazwy?

Dzieki z gory i pozdrawiam, T.M.F.

Reply to
T.M.F.

T.M.F. napisał(a):

formatting link

formatting link
w.

Reply to
Wojtek Kaniewski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.