Integracja asemblera z C w Keil: kompilacja do HEX i debugowanie bez *.SRC

Asm+c+keil





Poprzedni Następny
Wiadomość
Spis treści
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?



Poprzedni Następny
Wiadomość
Spis treści
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)




Poprzedni Następny
Wiadomość
Spis treści
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?



Poprzedni Następny
Wiadomość
Spis treści
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.




Poprzedni Następny
Wiadomość
Spis treści
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?





Poprzedni Następny
Wiadomość
Spis treści
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?