Podmineny preklad C a ASM

Pavel_t pavel_t na centrum.cz
Neděle Listopad 28 18:15:52 CET 2010


Zdravim,

dekuji za reakce a omluovam se, ze reaguji az tak pozde...

> zkuste v h souboru napsat
> #define IC_ENABLE 1
> a v asm souboru
> .if IC_ENABLE
> l.ori r10,r10,(SPR_SR_ICE)
> .endif
> Je to brané pro GCC.

Bohuzel toto je jedna z prvnich veci, kterou jsem zkousel. Musim mu rici 
ze prepinac je externe definovan ale i pak to skonci s jinou chybou:
"ERROR (407) Forward referenced/external label(s) not allowed in this 
expression"
kterou vyhlasuje asembler a linker uz se pak omezi jen na to ze 
prislusny .obj nema k dispozici.
Podle teto chyby soudim, ze zrejme kombinace prepinace v asm a c neni 
mozna...

> Ak v danom prekladacom komplexe nie je moznost samostatneho spustenia
> preprocesora...

To by melo byt mozne, vse jsou samostatne programy, ktere IDE vola. Ale 
to je jednodussi upravit makefile resp. pridat doplnujici direktivy v 
projektu. Ale vsim tim se ztraci moznost prepsat na jednom miste jednu 
konstantu a mit tak zkompilovany firmware pro jinou variantu zarizeni.

Nakonec to vyresim tak, ze tu asm cast tam dam 2x z jinymi labely a 
podminene budu kompilovat volani z C. Ta funkce ma cca 30 radku takze 
cca 100byte navic me nezabije.

Jestli budu mit nekdy naladu tak zkusim sesmolit anlicky dotaz do 
jednoho specializovaneho fora a nebo rovnou na support.

Pavel



Další informace o konferenci Hw-list