[elektro] atmel raven + firmware + kibogarászás -> káosz
DemonBob
demonbob at freemail.hu
Tue Dec 8 19:48:55 CET 2009
Ahhh...
Ok, köszi :]
Moczik Gabor írta:
> DemonBob wrote:
>
>> A kérdés az lett volna hogy a headerben deklarált függvényt miképp köti
>> össze egy ránézésre (forráskód alapján) köze nincs hozzá c fájl
>> függvényéhez. Egyikben sincs hivatkozás a másikra, csak a függvény neve
>> azonos, így valószínűsítem arról van szó.
>>
>
> A függvény neve + a paraméterek és a visszatérési értékek típusából
> képzett ún. szignatúra alapján azonosítja a linker. A fordító
> megelégszik azzal hogy deklaráltad a függvényt, tudja szintaktikailag
> ellenőrizni és a megfelelő paraméter átadáshoz előkészítheti a stack-et.
> A call utasítást is legenerálja, de a címet nem tölti ki. Az így
> elkészített félkész bináris fájl a tárgykód (object), minden
> forrásfájlból készül egy-egy.
>
> Ezután a linker dolga hogy a tárgykódokban lévő függvényeket a kész
> binárisban elhelyezze, majd a szignatúra alapján a végleges címeket
> beillessze a call és egyéb utasításokhoz.
>
>
> Egyébként ha sikeresen include-olod a deklarációt, de nem fordítod hozzá
> a forrást ami a definíciót is tartalmazza, akkor nem a gcc fog
> hibaüzenetet adni hanem a linker (undefined symbol).
> Ha a definícióban más a paraméterek típusa mint a deklarációban, akkor
> is a linker fog jelezni (singatures do not match).
>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
>
More information about the Elektro
mailing list