Integracja asemblera z C w Keil: kompilacja do HEX i debugowanie bez *.SRC
Asm+c+keil
From: "mud" <mr_mud_at_nospam_poczta.onet.pl>
Subject: Asm+c+keil
Date: Fri, 26 Oct 2001 13:57:26 +0200
Jak "wkręcić" asemblera do c (w Keil`u) aby tego asm`a nie zapisywal do
*.SRC ale kompilowal do hex, a najlepiej jesczesz zeby mozna to bylo
debugowac?
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Asm+c+keil
Date: Fri, 26 Oct 2001 14:02:53 +0200
Jak "wkręcić" asemblera do c (w Keil`u) aby tego asm`a nie zapisywal do
*.SRC ale kompilowal do hex, a najlepiej jesczesz zeby mozna to bylo
debugowac?
Mozesz nieco jasniej? Co chcesz osiagnac?
--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektroników)
From: "mud" <mr_mud_at_nospam_poczta.onet.pl>
Subject: Re: Asm+c+keil
Date: Fri, 26 Oct 2001 14:21:13 +0200
Mam program w C. Potrzebuje wsadzić do tego programu asembler.
1.Problem w kompilowaniu - asm`a wsadzal do src a nie kompilowal, doszedlem
do tego ze kompiluje.
2.Problem z debugowaniem - w trybie debug wywoluje adres 0x0000, niby ok ale
ten adres zawiera nop`y, zatrzymuje sie, w konsoli error:"no execute/read
permission"-
Bajty startowe sa puste.
Jak skopilowac to juz wiem:
w 'options for' pliku w workscpace enable :Generate Assembler Src
File
Assemble SRC file
w źrodle
#pragma ASM
....
#pragma ENDASM
ale jak to teraz zdebugowac?
From: "megaraptor" <megaraptor_at_nospam_wp.pl>
Subject: Re: Asm+c+keil
Date: Fri, 26 Oct 2001 14:35:50 +0200
Użytkownik mud <mr_mud_at_nospam_poczta.onet.pl> w wiadomości do grup dyskusyjnych
napisał:9rbis5$1nt$1_at_nospam_news.tpi.pl...
Jak "wkręcić" asemblera do c (w Keil`u) aby tego asm`a nie zapisywal do
*.SRC ale kompilowal do hex, a najlepiej jesczesz zeby mozna to bylo
debugowac?
Strasznie to pokręciłeś.
Ale Keil robi to w następujący sposób.
W pliku <nazwa>.c trzeba dać dyrektywę #pragma src (nazwa.ext).
Oczywiście parametr nazwa.ext można pominąć. Wtedy wygeneruje
plik o takiej samej nazwi jak plik w c ale z rozszerzeniem src.
Trzeba pamiętać, że dyrektywa #pragma src musi się znajdować na
początku pliku jeszcze przed dyrektywami #include.
Po wygenerowaniu pliku src trzeba go poprostu przepuścić przez asembler.
Jeżeli pisząc program w C chcesz go umieścić w pamięci od dowolnego adresu
trzeba dołączyś plik startup.a51 i w pliku tym wpisać własny adres przed
etykietą
?C_STARTUP: LJMP STARTUP1
I pamiętaj o dyrektywie DEBUG. Wtedy można debugować na poziommie kodu
źródłowego.
Pozdrawiam
D.D.
From: "Radek" <radecek_at_nospam_poczta.fm>
Subject: Re: Asm+c+keil
Date: Sat, 27 Oct 2001 21:23:41 +0200
Cześć:
Staram się unikać asemblerowych procedur w Keilu, ponieważ zdarzyło mi się
że program błędnie działał w połączeniu z procedurami asemblerowymi. A
konkretnie to chodziło o wywoływanie funkcji za pomocą wsakźników do
funkcji. Kompilator realizował skok do początku programu, zamiast pod adres
gdzie znajdowała się funkcja i tu był błąd. W kompilatorze Franklin Software
działało to poprawnie.
Radek
"mud" <mr_mud_at_nospam_poczta.onet.pl> wrote in message
news:9rbis5$1nt$1_at_nospam_news.tpi.pl...
Jak "wkręcić" asemblera do c (w Keil`u) aby tego asm`a nie zapisywal do
*.SRC ale kompilowal do hex, a najlepiej jesczesz zeby mozna to bylo
debugowac?
From: Wojciech Markowski <wmr_at_nospam_krakus.top.pl>
Subject: Re: Asm+c+keil
Date: Sun, 28 Oct 2001 15:26:00 +0100
echhhh - uzywacie jakichs dziwolagow - to wszystko mozna zawsze zrobic o wiele
prosciej - podajcie tylko problem (najlepiej na priv i na liste). - pzdr.-wmr
Radek wrote:
Cześć:
Staram się unikać asemblerowych procedur w Keilu, ponieważ zdarzyło mi się
że program błędnie działał w połączeniu z procedurami asemblerowymi. A
konkretnie to chodziło o wywoływanie funkcji za pomocą wsakźników do
funkcji. Kompilator realizował skok do początku programu, zamiast pod adres
gdzie znajdowała się funkcja i tu był błąd. W kompilatorze Franklin Software
działało to poprawnie.
Radek
"mud" <mr_mud_at_nospam_poczta.onet.pl> wrote in message
news:9rbis5$1nt$1_at_nospam_news.tpi.pl...
Jak "wkręcić" asemblera do c (w Keil`u) aby tego asm`a nie zapisywal do
*.SRC ale kompilowal do hex, a najlepiej jesczesz zeby mozna to bylo
debugowac?