[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