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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.