PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO macht nicht was er soll!



Jacob2
31.05.2007, 18:50
Hallo,
Ich habe meinen ASURO jetzt soweit startklar und auch der IR-Tranceiver funktioniert jetzt. Dann wollte ich mal ein erstes Programm flashen (wie in der Anleitung mit "StatusLED(RED);"). Flashen ging auch gut. Nach dem aus und wieder einschalten des ASUROs leuchtete die LED aber grün und es blieb egal was für Befehle ich in das Programm schrieb auch dabei. :(
Wurde vielleicht das falsche compiliert?

radbruch
31.05.2007, 19:07
Hallo

Ob du die richtige Datei geflasht hast, siehst du z.b. am Datum/Uhrzeit der Datei, die du sendest. Soweit ich weis, darf man das Speichern vor dem Compilieren nicht vergessen.

Hast du auch die Funktion Init() aufgerufen? Welche Farbe hat die LED bei StatusLED(GREEN); ? Funktioniert eine andere LED, z.B. FrontLED(ON); ?

Bei Programmfragen immer den Code mitposten!

Gruß

mic

adrisch
01.06.2007, 12:04
Ich hatte am Anfang genau das selbe Problem...
Wenn du Programmers Notepad verwendest, immer bevor du make ausführst Speichern!

Jacob2
01.06.2007, 14:42
Hallo,
Es lag am Speichern!
Wenn man nachträglich darüber nachdenkt ist es ja auch logisch!
Aber weils in der Anleitung nicht drin steht, hab ichs übersehen.
Danke für die Tipps!
MfG Jacob

ehenkes
01.06.2007, 18:45
Ja, das stimmt, das macht man selbst nach Übung immer noch verkehrt. Ist ein Schwachpunkt des Programmer's Notepad.

radbruch
01.06.2007, 20:22
Ich verwende KamAVR (http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_id=632).

ehenkes
01.06.2007, 21:33
Prinzipiell ist programmer's notepad o.k. Man muss nur auf das Speichern achten. Als IDE kann auch DevC++ verwendet werden.

damaltor
02.06.2007, 19:37
also ich screibe (llerdings unter linux) die programme mit vi bzw. vim, kompiliere mit avr-gcc von hand und flashe dann mit asurocon... es ist eine reine gewohnheitssache =)

Bääääär
10.06.2007, 22:37
mmh. ich habe das selbe problem, nur hilft speichern rein gar nichts. Nach der Boot-Phase leuchtet die statusLed grün auf, aber mein Programmcode wird nicht ausgeführt. Wenn ich jedoch den selftest flashe, wird der auch durchgeführt. Meine programme sind IMMER 24 pages groß, egal, was drinsteht. Ich vermute also, es liegt am compillieren. Ich weiß echt nicht mehr, was ich falsch mache...

ehenkes
10.06.2007, 22:55
Kannst Du mal ganz genau schildern, wie Du arbeitest.
Betriebssystem, Editor, Compiler, Linker, Version der Asuro-LIB.
Beim Compilieren/Linken mit Programmer's Notepad erhalte ich ein Protokoll, hier ein Beispiel, wenn sich nichts geändert hat:


> "C:\ASURO_SRC\AsuroLib\examples\FirstTry\Test-all.bat"

C:\ASURO_SRC\AsuroLib\examples\FirstTry>make all
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
test.elf :
section size addr
.text 2590 0
.bss 54 8388704
.stab 876 0
.stabstr 132 0
.debug_aranges 224 0
.debug_pubnames 719 0
.debug_info 2555 0
.debug_abbrev 1309 0
.debug_line 3484 0
.debug_frame 512 0
.debug_str 736 0
.debug_loc 316 0
Total 13507


avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex test.elf test.eep
c:\WinAVR\bin\avr-objcopy.exe: there are no sections to be copied!
c:\WinAVR\bin\avr-objcopy.exe: --change-section-lma .eeprom=0x00000000 never used
make: [test.eep] Error 1 (ignored)
Size after:
test.elf :
section size addr
.text 2590 0
.bss 54 8388704
.stab 876 0
.stabstr 132 0
.debug_aranges 224 0
.debug_pubnames 719 0
.debug_info 2555 0
.debug_abbrev 1309 0
.debug_line 3484 0
.debug_frame 512 0
.debug_str 736 0
.debug_loc 316 0
Total 13507


Errors: none
-------- end --------

> Process Exit Code: 0


... und hier das Positivbeispiel:


> "C:\ASURO_SRC\AsuroLib\examples\FirstTry\Test-all.bat"

C:\ASURO_SRC\AsuroLib\examples\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
avr-gcc -c -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm -lasuro
avr-objcopy -O ihex -R .eeprom test.elf test.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex test.elf test.eep
c:\WinAVR\bin\avr-objcopy.exe: there are no sections to be copied!
c:\WinAVR\bin\avr-objcopy.exe: --change-section-lma .eeprom=0x00000000 never used
make: [test.eep] Error 1 (ignored)
avr-objdump -h -S test.elf > test.lss
Size after:
test.elf :
section size addr
.text 2590 0
.bss 54 8388704
.stab 876 0
.stabstr 132 0
.debug_aranges 224 0
.debug_pubnames 719 0
.debug_info 2555 0
.debug_abbrev 1309 0
.debug_line 3484 0
.debug_frame 512 0
.debug_str 736 0
.debug_loc 316 0
Total 13507


Errors: none
-------- end --------

> Process Exit Code: 0

Wie sieht dieses Protokoll bei Dir aus?
Welches Datum hat die resultierende HEX-Datei?

Bääääär
10.06.2007, 23:11
mmh. also jetzt gings mit einem mal. Ich habe wirklich alle dateien nochmal gelöscht und neu draufgezogen. Vorher hatte er plötzlich ein Problem mit dem Include und hat deswegen natürlich auch keine konstante oder funktion mehr gekannt (ist ja alles in "asuro.c" und "ausro.h" deklariert). Ich weiß nicht, was da jetzt anders ist, aber alles nochmal neu machen hat geholfen. Keine Ahnung, wo das Problem lag.

ehenkes
10.06.2007, 23:19
Hauptsache, es funktioniert. Ich hoffe, Du verwendest schon die neue Bibliothek Version 2.70, denn die hat gewaltige Vorteile gegenüber der Ursprungsversion. Es lohnt sich, mit dem ASURO-Schaltplan in der Hand und dem Datenblatt des µC (als pdf) diese Dateien genauestens zu analysieren, weil man dabei eine Menge über den ATmega8L und seine Verschaltungsmöglichkeiten lernt.

Bääääär
10.06.2007, 23:22
nee, noch nutze ich die alte versio (naja, hab den asuro ja auche rst seit gestern abend ^^)

Aber da hier viel Gutes drüber steht, werde ich das mal machen, aber nicht mehr heute.

Danke trotzdem für deine Hilfe!

ehenkes
10.06.2007, 23:32
Du findest hier alles, was Du brauchst. Viel Spaß weiterhin mit dem ASURO!