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