Łączenie kodu C z procedurą a51 w KEIL - jak rozwiązać błędy kompilacji?

KEIL - Łączenie kodu w c i a51





Poprzedni Następny
Wiadomość
Spis treści
From: "Igor" <zbynekgo_at_nospam_poczta.onet.pl>
Subject: KEIL - Łączenie kodu w c i a51
Date: 31 Jan 2004 21:47:45 +0100


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



--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: =?iso-8859-2?Q?Re:_KEIL_-_=A3=B1czenie_kodu_w_c_i_a51?=
Date: Sat, 31 Jan 2004 22:51:16 +0100


Użytkownik "Igor" <zbynekgo_at_nospam_poczta.onet.pl> napisał w wiadomości
news:74a0.000007da.401c1470_at_nospam_newsgate.onet.pl

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.

Poszukaj w "C51 primer":
http://www.esacademy.com/automation/docs/c51primer/c51prim.htm
a w szczególności rozdz 14 "Assembler Interfacing To C Programs"

--
Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')

"pl.misc.elektronika" podlega zasadom usenetu i Netykiety:
http://kni.ae.krakow.pl/html/netykieta/net_00.html
Nie zmieniaj tematu. CYTUJ (ale OSZCZĘDNIE). Pisz POD cytatem!


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "swiniaczek" <swiniaczek_at_nospam_buziaczek.pl>
Subject: Re: KEIL - Łączenie kodu w c i a51
Date: Sun, 1 Feb 2004 13:44:07 +0100


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" <zbynekgo_at_nospam_poczta.onet.pl> napisał w wiadomości
news:74a0.000007da.401c1470_at_nospam_newsgate.onet.pl...
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



--
> Wysłano z serwisu OnetNiusy: http://niusy.onet.pl