m32def.inc:49: Error: expected comma after "SIGNATURE_000"

OP #3506901
Lesenswert?
• ▲
▼
Hallo zusammen.

Ich wollte gerade die Verbindung vom uc zu 7 Segment-Anzeigen 
ausprobieren und habe deshalb das erste Programm von 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige 
in den Editor kopiert.

Die Entwicklungsumgebung ist AVR-Eclipse. In einem .c Quellcode wird 
7-seg.asm includiert. In 7-seg.asm wird m32def.inc includiert.

Der Assembler-Aufruf mit den ersten Fehlermeldungen:
1
avr-gcc -x assembler-with-cpp -g2 -gstabs -mmcu=atmega32 -MMD -MP -MF"7-seg.d" -MT"7-seg.d" -c -o "7-seg.o" "../7-seg.asm"
2
m32def.inc: Assembler messages:
3
m32def.inc:49: Error: expected comma after "SIGNATURE_000"
4
m32def.inc:50: Error: expected comma after "SIGNATURE_001"
5
m32def.inc:51: Error: expected comma after "SIGNATURE_002"
6
m32def.inc:60: Error: expected comma after "SREG"
7
m32def.inc:61: Error: expected comma after "SPL"
8
m32def.inc:62: Error: expected comma after "SPH"
9
m32def.inc:63: Error: expected comma after "OCR0"
10
m32def.inc:64: Error: expected comma after "GICR"
11
m32def.inc:65: Error: expected comma after "GIFR"

Die entsprechenden Zeilen in m32def.inc:
1
; ***** SPECIFY DEVICE ***************************************************
2
.device ATmega32
3
#pragma AVRPART ADMIN PART_NAME ATmega32
4
.equ  SIGNATURE_000  = 0x1e
5
.equ  SIGNATURE_001  = 0x95
6
.equ  SIGNATURE_002  = 0x02
7

8
#pragma AVRPART CORE CORE_VERSION V2E
9

10

11
; ***** I/O REGISTER DEFINITIONS *****************************************
12
; NOTE:
13
; Definitions marked "MEMORY MAPPED"are extended I/O ports
14
; and cannot be used with IN/OUT instructions
15
.equ  SREG  = 0x3f
16
.equ  SPL  = 0x3d
17
.equ  SPH  = 0x3e
18
.equ  OCR0  = 0x3c
19
.equ  GICR  = 0x3b
20
.equ  GIFR  = 0x3a

Die Datei m32def.inc stammt von http://avr.8b.cz/inc/m32def.inc vom 
2011-02-09.

Weiß jemand, wie die Fehlermeldungen auszuräumen sind?

Gruß

Frank
OP #3507207
Lesenswert?
• ▲
▼
Ich wollte zuerst mit C uc's beschreiben und hatte deshalb AVR-Eclipse 
eingerichtet. Im Laufe der Voruntersuchungen kam ich dann aber zum 
Schluss, das ich lieber Assembler lernen möchte, was ja auch kein 
Problem sein sollte, da ja .asm in .c includiert werden können.
Jetzt scheint aber ein Kompatibilitätsproblem von m32def.inc zu 
bestehen, was mich zu folgenden grundsätzlichen Fragen führt:

1. Ist es möglich, in AVR-Eclipse mit .asm-Code uc's erfolgreich zu 
beschreiben?
2. Wie wird dann m32def.inc eingeführt?
3. Oder wie ist m32def.inc um zu formen, damit sie akzeptiert wird oder 
gibt es schon eine andere Datei, die das entsprechende Format hat?

Gruß
Frank
OP #3507921
Lesenswert?
• ▲
▼
So, ich habe erstmal die 7-seg.asm in 7-seg.sx umbenannt. Das hat 
erstmal die Anzahl der Fehler reduziert.

m32def.inc scheint eine falsche Fährte gewesen zu sein. Hatte ich aus 
einem Tutorial, das ich gerade durcharbeite. Habe wohl eine andere 
Entwicklungsumgebung.

Die richtige Einbindung der Definitionsdatei erfolgt durch 
-mmcu=atmega32, oder auch #include <avr/iom32.h>.

Das bringt aber leider immer noch eine ganze Reihe von Fehlern. Hier ein 
Auszug:
1
avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=4000000UL -MMD -MP -MF"avr-sammlng-2.d" -MT"avr-sammlng-2.d" -c -o "avr-sammlng-2.o" "../avr-sammlng-2.c"
2
In file included from ../avr-sammlng-2.c:7:
3
../7-seg.sx:9: error: expected identifier or '(' before '.' token
4
../7-seg.sx:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Handler'
5
../7-seg.sx:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
6
../7-seg.sx:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'initialisieren'
7
../7-seg.sx:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'temp1'
8
../7-seg.sx:23: error: stray '$' in program
9
../7-seg.sx:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Anzeige'
10
../7-seg.sx:23: error: stray '\303' in program
11
../7-seg.sx:23: error: stray '\244' in program

Die entsprechenden Zeilen im Code, beginnend mit Zeile 9:
1
.def zero  = r1
2
.def count = r16
3
.def temp1 = r17
4

5
.org 0x0000
6
           rjmp    main                ; Reset Handler
7
;
8
main:
9
           ldi     temp1, HIGH(RAMEND)
10
           out     SPH, temp1
11
           ldi     temp1, LOW(RAMEND)  ; Stackpointer initialisieren
12
           out     SPL, temp1
13

14
;
15
           ldi     temp1, $FF        ; die Anzeige hängt am Port D
16
           out     DDRD, temp1       ; alle Pins auf Ausgang
17
;
18
           ldi     count, 0          ; und den Zähler initialisieren

Ich weiß nicht, wo hier ein Fehler sein könnte, kann jemand 
weiterhelfen?

Gruß
Frank

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.