KEIL - Łączenie kodu w c i a51

Jan 31, 2004 2 Replies

Cześć,



Mam następujący problem:



Chciałbym połączyć swój program w C razem z małą procedurką napisaną w a51. Jeśli po prostu dodam oba pliki (*.c, *.a51) do targetu, wyskakuje mi błąd.



Próbowałem #Pragma src, #pragma asm i #pragme endasm. Jest może inna metoda?



Z góry dzięki



Użytkownik "Igor" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news: snipped-for-privacy@newsgate.onet.pl

Poszukaj w "C51 primer":

formatting link
w szczególności rozdz 14 "Assembler Interfacing To C Programs"

Są odpowiednie dyrektywy linkujące i trzeba je używać i przećwiczyć ich działanie Przykład połączenia plików w asm i c:

//---------------------------TO JEST PLIK W C---------------------- unsigned char zmienna1; unsigned char zmienna2; extern void Moja_funkcja(void);

void main(void){

zmienna1=1; zmienna2=2; Moja_funkcja(); // wywołanie funkcji z pliku Moj_kod.a51

++zmienna1; ++zmienna2; while(1); } //------------------------------------------------------------------------- ;---------------------To jest plik Moj_kod.a51---------------------------- NAME Moj_kod PUBLIC Moja_funkcja EXTRN DATA (zmienna1) EXTRN DATA (zmienna2)

Moj_kod SEGMENT CODE

RSEG Moj_kod

Moja_funkcja: MOV A,zmienna1; MOV A,zmienna2; ret;

end; ;---------------------------------------------------------------------------

----

pozdrawiam: radek

Użytkownik "Igor" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news: snipped-for-privacy@newsgate.onet.pl...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required