avrcgg und embedded asm



  • hi leute.
    ich habe da einen kleines verstehproblem:

    wenn ich embedded ASM über volatile asm( ... ) in einer funktion benutze und den übergabe parameter der funktion im asm (LDS r30,parameter) verwende bekomme ich immer beim binden die meldung, dass der parameter nicht existiert.
    wenn ich aber diese variable außerhalb der funktion als globale var benutze funktionierts.
    wisst ihr, wiso das nicht funktioniert?
    kompiler = avrgcc



  • funktionsparameter sind nach dem kompilieren keine eigenständigen symbole mehr. demzufolge kannst du im assmbler text nicht über ihren C namen auf sie zugreifen. Schau am besten mal ins gcc manual, abschnitt 5.35ff - googlen mt 'gcc inline assembly' o.ä. findet auch nützliche links - allerdings meist für x86 assembler.


Anmelden zum Antworten