mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP VisualDSP: calling assembly subroutines from C


Autor: Unit* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
[Error ea1007] ".\dotprod_func.asm":3 [column 1] Syntax Error at ".global".

[Error ea1040] ".\dotprod_func.asm":6 '_my_asm' not in a section:
A valid directive defining a section must precede any label.
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:
...
extern int my_asm( int );

...

void main()
{
  ...
  out = my_asm(in);
  ...
}
im asm-File muss stehen:
.section asm_sect;
.global _my_asm;

_my_asm:
  
  ...

_my_asm.end:


Ich komme einfach nicht weiter... Kann mir jemend helfen?

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab auf die Schnelle nur einen alten Code von mir gefunden:
.section/DOUBLE32 program;
_foo:

// ...

._foo.end:
.global _foo;

Hab das Manual leider nicht hier...

Edit: Dem Linker ist deine section bekannt?

Autor: Unit* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.