msp430 gcc: Auf externe C Variable zugreifen

Gast #5001074
Lesenswert?

Hallo!

Ich habe ein C Projekt und möchte zusätzlich eine Funktion in Assembler 
ausprogrammieren. Dazu muss ich auf mehrere Variablen, die im C Code 
deklariert sind zugreifen.

Jetzt habe ich diese als ".extern my_var" im Assemblercode definiert. 
Jedoch scheitert jeder Versuch, auf diese zuzugreifen mit einem 
"undefined reference to `my_var'".

So mache ich das:
1
#include <msp430.h>
2

3
.section .data
4
.extern my_var
5

6
.section    .text
7

8
.global my_func
9
.type my_func, @function
10
my_func:
11
CLR &my_var

Kann mir jemand weiterhelfen? Danke!
Persönliche Seite #5001151
Lesenswert?

Oft werden die Symbolnamen von C-Compilern mit einem vorangestellten 
Unterstrich versehen, so daß Deine Variable "my_var" für den Linker 
"_my_var" heißt.

Mit dem Tool nm (Bestandteil der binutils) kannst Du Dir u.a. die 
Namen der Symbole in einer Objektdatei (*.o) ansehen.

Lass' das auf das *.o-File los, das aus Deinem C-Sourcefile erzeugt 
wird, in dem Du die Variable definiert hast.

https://sourceware.org/binutils/docs/binutils/nm.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren