Forum: Compiler & IDEs Str9ComStick


von EmbeddedUser (Gast)


Lesenswert?

Hallo,

ich habe ein kleines makefile geschrieben mit dem ich zunächst nur zwei 
Assemblerdateien und eine C Datei kompilieren möchte. Das makefile wird 
mit MingGw32-make.exe in Eclipse gestartet.
1
PROJECTNAME  = Test
2
PROJECTDIR   = C:\Hitex\HITOP54-STR9-comStick\Examples\STR9\Hitex-STR912\Test
3
TOOLCHAINDIR = C:\Program Files (x86)\Hitex\GnuToolPackageArm\bin
4
LIBRARYDIR   = C:\Hitex\HITOP54-STR9-comStick\Examples\STR9\Hitex-STR912\Test\library
5
6
ASSEMBLER= $(TOOLCHAINDIR)\arm-hitex-elf-as.exe
7
COMPILER = $(TOOLCHAINDIR)\arm-hitex-elf-gcc.exe
8
9
INCLUDEPATH := $(addprefix -I,$(PROJECTDIR)\ $(LIBRARYDIR)\inc $(LIBRARYDIR)\src)
10
LINKERSCRIPT = $(PROJECTDIR)
11
        
12
ASSEMBLER_OPTIONS:= -m armv4t -gdwarf2 -mthumb-interwork    
13
COMPILER_OPTIONS := -mcpu=arm9tdmi -c -gdwarf-2 -MD -Wall -O1 -mthumb-interwork -mapcs-frame -fsigned-char -xc -mlittle-endian -marm  
14
15
16
1_Assembler:
17
  $(ASSEMBLER) $(ASSEMBLER_OPTIONS) .\startup_generic.o .\startup_generic.s
18
              
19
2_Compiler:
20
  $(COMPILER) $(COMPILER_OPTIONS) $(INCLUDEPATH) main.c

Folgende Fehlermeldung erscheint in Eclipse wenn ich die 
Assemblerdateien übersetzen lasse:
1
C:\MinGW32\mingw32-make.exe 1_Assembler 
2
C:\Program Files (x86)\Hitex\GnuToolPackageArm\bin\arm-hitex-elf-as.exe -m armv4t -gdwarf2 -mthumb-interwork     .\startup_generic.o .\startup_generic.s
3
      2 [main] arm-hitex-elf-as 8884 _cygtls::handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
4
    606 [main] arm-hitex-elf-as 8884 open_stackdumpfile: Dumping stack trace to arm-hitex-elf-as.exe.stackdump
5
mingw32-make: *** [1_Assembler] Error 35584

Was könnte hier die Ursache sein ? Müsste ich gegebenfalls cygwin 
verwenden anstatt mingw32-make ?

von Karl H. (kbuchegg)


Lesenswert?

Nicht das ich jetzt die Lösung wüsste.

Aber:
Bist du sicher, dass du hier
1
$(ASSEMBLER) $(ASSEMBLER_OPTIONS) .\startup_generic.o .\startup_generic.s
dem Assembler als erstes File den Namen der Output Datei (und das völlig 
ohne irgendwelche Command Line switches) angeben musst?

Das kommt mir schon etwas seltsam vor. Einen Aufruf ala
(prinzipskizze um den argumentativen Punkt zu zeigen)
1
  assemble test.o test.s
hätte ich jetzt nicht erwartet.

Wenn schon, dann eher in der Reihenfolge  'Source Datei' 'Ergebnis 
Datei'. Also
1
  assemble test.s test.o
bzw. mit einem Command Line Switch. Irgendwas in der Form
1
  assemble -O test.o test.s
oder auch gar keine Angabe
1
  assemble test.s
und der Assembler weiß selber, dass die Ausgabedatei den gleichen Namen, 
nur mit der Endung .o haben soll.



Wie gesagt: Ich kenne den Assembler nicht. Verzeih wenn ich da jetzt 
Blödsinn rede und das bei diesem Assembler tatsächlich so ist. Aber 
seltsam kommt es mir doch vor - weil es nicht logisch ist.


Das der Assembler dann in weiterer Folge ins Gras beißt, wenn er 
versucht eine Object Datei als Assembler Input zu verarbeiten, würde 
mich ehrlich gesagt nicht besonders wundern.

von EmbeddedUser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Karl Heinz,

auch wenn ich folgendes ausführe
1
$(ASSEMBLER) $(ASSEMBLER_OPTIONS) .\startup_generic.s
erscheint diese Fehlermeldung.

von EmbeddedUser (Gast)


Lesenswert?

Weiß nun nicht was ich noch machen könnte, damit ich die Sourcen 
compilieren kann.

von EmbeddedUser (Gast)


Lesenswert?

Es muss doch möglich sein diese Dateien zu übersetzen. Ich weiß nicht 
was ich noch machen kann.

von Karl H. (kbuchegg)


Lesenswert?

Das erste was ich tun wurde ist, mich genau an das PDF zu halten.

D.h. exakt die gleiche Toolchainversion und exakt dasselbe Commando
1
arm-hitex-elf-as.exe -m armv4t -gdwarf2 -mthumb-interwork -o .\[ObjectPath]\[outputname].o .\[SourcePath]\[sourcename].s               
2
                                                           ^
3
                                                           |
4
                                                           |
5
                                                  hier steckt das -o
6
                                                  für die Angabe der
7
                                                  Output Datei.


wenn das nicht hilft, dann schau halt mal in die *.s Datei rein. Ist ja 
schliesslich auch nur Text.
Fällt da im File was auf? Sind da irgendwelche textuellen 
Besonderheiten? Zeilenumbrüche die seltsam aussehen, hört der Text 
einfach mitten im Satz auf oder sonst irgendwelche Sachen in der Form, 
die einem Spanisch vorkommen.
Vielleicht auch selber mal ein Minimal-Assembler File schreiben und 
nachsehen, ob eventuell der Assembler in der Toolchain beschädigt ist.

Aus meiner Sicht bleibt dir jetzt nicht viel anderes übrig als möglichst 
viele Dinge durchzuprobieren und zu überprüfen, die nach dem Muster 
laufen: Ich glaubs zwar nicht, aber möglich wärs - also lass es mich 
checken. Und du wirst auch ein wenig Glück brauchen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.