VisualDSP: calling assembly subroutines from C

Gast #913972
Hallo,


wollte mit dem ADSP-21369 Simulator die Aufgaben des Tutorials im 
VisualDSP++ 5.0 Getting Started Guide lösen, aber mit der zweiten 
Aufgabe habe ich ziemlich viel Stress. Dort wird gezeigt, wie man 
assembly-Funktionen im C-Code aufrufen kann. Das Tutorial ist für 
Blackfin Prozessoren gedacht. Ich benutze einen SHARC (hab den Simulator 
auf meinem SHARC umgestellt), aber das sollte eigentlich kein Problem 
sein...
Wenn ich die Beispielfiles ins Projekt importiere, und das ganze builden 
will, kommt folgende Fehlermeldung auf:
1
[Error ea1007] ".\dotprod_func.asm":3 [column 1] Syntax Error at ".global".
2

3
[Error ea1040] ".\dotprod_func.asm":6 '_my_asm' not in a section:
4
A valid directive defining a section must precede any label.
5
Attempting error recovery by creating section '.dummyCode'.

Ich habe die entsprechenden Seiten im Compiler Manual durchgelesen, und 
das Program ist so aufgebaut, wie es sein soll, d.h.

im C-File muss stehen:

vor dem Calling die asm-Funktion als function prototype deklarieren:
1
...
2
extern int my_asm( int );
3

4
...
5

6
void main()
7
{
8
  ...
9
  out = my_asm(in);
10
  ...
11
}
im asm-File muss stehen:
1
.section asm_sect;
2
.global _my_asm;
3

4
_my_asm:
5
  
6
  ...
7

8
_my_asm.end:

Ich komme einfach nicht weiter... Kann mir jemend helfen?
Gast #914761
Hi T.H.,


danke für die schnelle Antwort. Nee, die section ist dem Linker nicht 
bekannt. Aber diese Fehlermeldung liefert der Compiler.
Ansonsten wenn ich den Expert Linker öffne (um die section da 
einzutragen), stürzt VisualDSP ab, obwohl es nicht gehackt oder 
manipuliert ist ;-) Die Updates habe ich auch alle installiert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.