VisualDSP: calling assembly subroutines from C

Gast #913972
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:
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
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

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