no such instruction 'sei'

Gast #2675829
Lesenswert?
• ▲
▼
Hallo,


ich versuche eine S-Function in Matlab zu bauen die mir den Zugriff auf 
µC-Komponenten ermöglicht.
Als Compilereinstellung verwende ich : "Cygwin -mno-cygwin".

Wenn ich das Ganze kompilieren will erhalte ich folgende Fehlermeldung:
1
C:/DOCUME~1/ADMINI~1/MYDOCU~1/DOWNLO~1/TWI_OH~1/avr.c:27: warning: `signal' attribute directive ignored
2
C:/DOCUME~1/ADMINI~1/MYDOCU~1/DOWNLO~1/TWI_OH~1/avr.c:89: warning: `signal' attribute directive ignored
3
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/cc7HVDj6.s: Assembler messages:
4
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/cc7HVDj6.s:232: Error: no such instruction: `sei'
5
 
6
  D:\PROGRA~2\MATLAB\BIN\MEX.PL: Error: Compile of 'C:\DOCUME~1\ADMINI~1\MYDOCU~1\DOWNLO~1\TWI_OH~1\avr.c' failed.

Kann jemand damit was anfangen??
Danke für jede Hilfe!
Gruß
GoldenEyes
#2675836
Lesenswert?
• ▲
▼
Probiers mal mit STI - so heisst nämlich der entsprechende Befehl beim 
PC-Prozessor. ;-)

Soll heissen: Du compilierst/assemblierst vermutlich grad für den PC, 
nicht für den AVR, und der PC kann mit den AVR-Befehlen im Code nichts 
abfangen. Mag eine falscher Einstellung sein, oder es werden die 
falschen Programme aufgerufen.
Gast #2675857
Lesenswert?
• ▲
▼
Hier das Options file:

1
->    Options file           = C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2012a\mexopts.bat 
2
      MATLAB                 = D:\PROGRA~2\Matlab 
3
->    COMPILER               = gcc 
4
->    Compiler flags: 
5
         COMPFLAGS           = -c -DMATLAB_MEX_FILE -mno-cygwin  -D"__AVR_ATmega328P__" 
6
         OPTIMFLAGS          = -O3 
7
         DEBUGFLAGS          = -g 
8
         arguments           =  -IC:\GNUMEX -I\ -I\ -ID:\PROGRA~2\WINAVR\AVR\INCLUDE -IC:\DOCUME~1\ADMINI~1\MYDOCU~1\DOWNLO~1\TWI_OH~1 
9
         Name switch         = -o 
10
->    Pre-linking commands   =  
11
->    LINKER                 = D:\PROGRA~2\Matlab\sys\perl\win32\bin\perl.exe C:\gnumex\linkmex.pl 
12
->    Link directives: 
13
         LINKFLAGS           = -mno-cygwin -mwindows -LC:\DOCUME~1\ADMINI~1\APPLIC~1\MATHWO~1\MATLAB\R2012a\gnumex 
14
         LINKDEBUGFLAGS      = -g  -Wl,--image-base,0x28000000\n 
15
         LINKFLAGSPOST       =  
16
         Name directive      = -o test_02.mexw32 
17
         File link directive =  
18
         Lib. link directive =  
19
         Rsp file indicator  =  
20
->    Resource Compiler      = D:\PROGRA~2\Matlab\sys\perl\win32\bin\perl.exe C:\gnumex\rccompile.pl --unix -o mexversion.res 
21
->    Resource Linker        =

Evtl. hilft dies jemanden???
Gast #2676995
Lesenswert?
• ▲
▼
Rolf Magnus schrieb:
> goldeneyes1987 schrieb:
>> ->    COMPILER               = gcc
>
> Also wie vermutet: Du compilierst für den PC, statt - wie du anscheinend
> beabsichtigst - für den AVR.
>
> goldeneyes1987 schrieb:
>>          COMPFLAGS           = -c -DMATLAB_MEX_FILE -mno-cygwin
> -D"__AVR_ATmega328P__"
>
> Statt da irgendelche defines reinzupfuschen, wäre es besser, mit -mmcu
> deinen Prozessor anzugeben.

Klar hast du recht Rolf, aber verwende ich den avr-gcc (mit Pfad) und 
übergebe dem "-mmcu=atmega328p" dann erhalte ich folgende Fehlermeldung:
1
test_02.c:93:22: error: \/simstruc.h: Invalid argument 
2
test_02.c:95: error: expected ';', ',' or ')' before '*' token 
3
test_02.c:105: error: expected ')' before '*' token 
4
test_02.c:143: error: expected ')' before '*' token 
5
test_02.c:153: error: expected ')' before '*' token 
6
test_02.c:160: error: expected ')' before '*' token 
7
test_02.c:165: error: expected ')' before '*' token 
8
test_02.c:171: error: expected ')' before '*' token 
9
test_02.c:179: error: expected ')' before '*' token 
10
test_02.c:195: error: expected ')' before '*' token 
11
test_02.c:199:62: error: \/simulink.c: Invalid argument 
12
 
13
  D:\PROGRA~2\MATLAB\BIN\MEX.PL: Error: Compile of 'test_02.c' failed.

Ich habe mir die simstruc.h angeschaut und herausgefunden das dort 
weitere Matlab spezifische Dateien eingeladen werden wie z.B. die 
Simulink.h , in der eigentlich hauptsächlich Definitionen drin stehen, 
wie auch in allen anderen includierten-Dateien!?!?!
Aber die Fehlermeldung kann ich mir dennoch nicht erklären.
Hat jemand ne Idee?
Gast #2677024
Lesenswert?
• ▲
▼
Johann L. schrieb:
> Schau in test_02.c, Zeile 93, Spalte 22 sowie Zeile 199, Spalte 62.


In Zeile 93 steht die Include-Anweisung für simstruc.h und in Zeile 199 
die für simulink.h. Datei test_02.c, simstruc.h und simulink.c sind im 
Anhang!

Ich sehe da nichts was mir den Fehler erklären würde.
Aber ich bin auch mehr oder weniger neu auf diesem Gebiet!
Evtl. entdeckt Ihr was??
Angehängte Dateien:
Gast #2677150
Lesenswert?
• ▲
▼
A. K. schrieb:
> Beitrag "Re: no such instruction 'sei'"

Das Options-File sieht so aus:

1
->    Options file           = C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2012a\mexopts.bat 
2
      MATLAB                 = D:\PROGRA~2\Matlab 
3
->    COMPILER               = avr-gcc 
4
->    Compiler flags: 
5
         COMPFLAGS           =  -c -DMATLAB_MEX_FILE    -mmcu=atmega328p 
6
         OPTIMFLAGS          = -Os 
7
         DEBUGFLAGS          = -g 
8
         arguments           =  
9
         Name switch         = -o 
10
->    Pre-linking commands   =  
11
->    LINKER                 = D:\PROGRA~2\Matlab\sys\perl\win32\bin\perl.exe C:\gnumex\linkmex.pl 
12
->    Link directives: 
13
         LINKFLAGS           =  -mno-cygwin  -mwindows -LC:\DOCUME~1\ADMINI~1\APPLIC~1\MATHWO~1\MATLAB\R2012a\gnumex 
14
         LINKDEBUGFLAGS      = -g  -Wl,--image-base,0x28000000\n 
15
         LINKFLAGSPOST       =  
16
         Name directive      = -o .mexw32 
17
         File link directive =  
18
         Lib. link directive =  
19
         Rsp file indicator  =  
20
->    Resource Compiler      = D:\PROGRA~2\Matlab\sys\perl\win32\bin\perl.exe C:\gnumex\rccompile.pl --unix -o mexversion.res 
21
->    Resource Linker        =

Nachdem ich das ganze auf avr-gcc umgestellt habe is da nix mit 
argruments??

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.