- SF800 Solar Speicher Tutorial         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Programmierproblem beim Asuro

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    12.07.2007
    Beiträge
    11
    Anzeige

    E-Bike
    Meinste die hier?

    Code:
    # WinAVR Sample makefile written by Eric B. Weddington, Jörg Wunsch, et al.
    # Released to the Public Domain
    # Please read the make user manual!
    #
    #
    # On command line:
    #
    # make all = Make software.
    #
    # make clean = Clean out built project files.
    #
    # make coff = Convert ELF to AVR COFF (for use with AVR Studio 3.x or VMLAB).
    #
    # make extcoff = Convert ELF to AVR Extended COFF (for use with AVR Studio
    #                4.07 or greater).
    #
    # make program = Download the hex file to the device, using avrdude.  Please
    #                customize the avrdude settings below first!
    #
    # make filename.s = Just compile filename.c into the assembler code only
    #
    # To rebuild project do "make clean" then "make all".
    #
    
    
    # MCU name
    MCU = atmega8
    
    # Output format. (can be srec, ihex, binary)
    FORMAT = ihex
    
    # Target file name (without extension).
    TARGET = test
    
    # Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
    # (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
    OPT = s
    
    
    # List C source files here. (C dependencies are automatically generated.)
    SRC = $(TARGET).c
    
    # If there is more than one source file, append them above, or adjust and
    # uncomment the following:
    SRC += asuro.c
    
    # You can also wrap lines by appending a backslash to the end of the line:
    #SRC += baz.c \
    #xyzzy.c
    
    
    
    # List Assembler source files here.
    # Make them always end in a capital .S.  Files ending in a lowercase .s
    # will not be considered source files but generated files (assembler
    # output from the compiler), and will be deleted upon "make clean"!
    # Even though the DOS/Win* filesystem matches both .s and .S the same,
    # it will preserve the spelling of the filenames, and GCC itself does
    # care about how the name is spelled on its command-line.
    ASRC = 
    
    
    
    
    # Optional compiler flags.
    #  -g:        generate debugging information (for GDB, or for COFF conversion)
    #  -O*:       optimization level
    #  -f...:     tuning, see GCC manual and avr-libc documentation
    #  -Wall...:  warning level
    #  -Wa,...:   tell GCC to pass this to the assembler.
    #    -ahlms:  create assembler listing
    CFLAGS = -g -O$(OPT) \
    	-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
    	-Wall -Wstrict-prototypes \
    	-Wa,-ahlms=$(<:.c=.lst)
    
    
    
    # Optional assembler flags.
    #  -Wa,...:   tell GCC to pass this to the assembler.
    #  -ahlms:    create listing
    #  -gstabs:   have the assembler create line number information; note that
    #             for use in COFF files, additional information about filenames
    #             and function names needs to be present in the assembler source
    #             files -- see avr-libc docs [FIXME: not yet described there]
    ASFLAGS = -Wa,-ahlms=$(<:.S=.lst),-gstabs 
    
    
    
    # Optional linker flags.
    #  -Wl,...:   tell GCC to pass this to linker.
    #  -Map:      create map file
    #  --cref:    add cross reference to  map file
    LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
    
    
    
    # Additional libraries
    #
    # Minimalistic printf version
    #LDFLAGS += -Wl,-u,vfprintf -lprintf_min
    #
    # Floating point printf version (requires -lm below)
    #LDFLAGS +=  -Wl,-u,vfprintf -lprintf_flt
    #
    # -lm = math library
    LDFLAGS += -lm
    
    
    
    # ---------------------------------------------------------------------------
    
    # Define directories, if needed.
    DIRAVR = c:/winavr
    DIRAVRBIN = $(DIRAVR)/bin
    DIRAVRUTILS = $(DIRAVR)/utils/bin
    DIRINC = .
    DIRLIB = $(DIRAVR)/avr/lib
    
    
    # Define programs and commands.
    SHELL = sh
    
    CC = avr-gcc
    
    OBJCOPY = avr-objcopy
    OBJDUMP = avr-objdump
    SIZE = avr-size
    
    REMOVE = rm -f
    COPY = cp
    
    HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
    ELFSIZE = $(SIZE) -A $(TARGET).elf
    
    FINISH = echo Errors: none
    BEGIN = echo -------- begin --------
    END = echo --------  end  --------
    
    
    
    
    # Define all object files.
    OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) 
    
    # Define all listing files.
    LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
    
    # Combine all necessary flags and optional flags.
    # Add target processor to flags.
    ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
    ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
    
    
    
    # Default target.
    all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex $(TARGET).eep \
    	$(TARGET).lss sizeafter finished end
    
    
    # Eye candy.
    # AVR Studio 3.x does not check make's exit code but relies on
    # the following magic strings to be generated by the compile job.
    begin:
    	@$(BEGIN)
    
    finished:
    	@$(FINISH)
    
    end:
    	@$(END)
    
    
    # Display size of file.
    sizebefore:
    	@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE);fi
    
    sizeafter:
    	@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE);fi
    
    
    
    # Display compiler version information.
    gccversion : 
    	$(CC) --version
    
    
    
    
    # Convert ELF to COFF for use in debugging / simulating in
    # AVR Studio or VMLAB.
    COFFCONVERT=$(OBJCOPY) --debugging \
    	--change-section-address .data-0x800000 \
    	--change-section-address .bss-0x800000 \
    	--change-section-address .noinit-0x800000 \
    	--change-section-address .eeprom-0x810000 
    
    
    coff: $(TARGET).elf
    	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
    
    
    extcoff: $(TARGET).elf
    	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
    
    # Create final output files (.hex, .eep) from ELF output file.
    %.hex: %.elf
    	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
    
    %.eep: %.elf
    	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    	--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
    
    # Create extended listing file from ELF output file.
    %.lss: %.elf
    	$(OBJDUMP) -h -S $< > $@
    
    
    
    # Link: create ELF output file from object files.
    .SECONDARY : $(TARGET).elf
    .PRECIOUS : $(OBJ)
    %.elf: $(OBJ)
    	$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
    
    
    # Compile: create object files from C source files.
    %.o : %.c
    	$(CC) -c $(ALL_CFLAGS) $< -o $@
    
    
    # Compile: create assembler files from C source files.
    %.s : %.c
    	$(CC) -S $(ALL_CFLAGS) $< -o $@
    
    
    # Assemble: create object files from assembler source files.
    %.o : %.S
    	$(CC) -c $(ALL_ASFLAGS) $< -o $@
    
    
    
    
    
    
    # Target: clean project.
    clean: begin clean_list finished end
    
    clean_list :
    	$(REMOVE) $(TARGET).hex
    	$(REMOVE) $(TARGET).eep
    	$(REMOVE) $(TARGET).obj
    	$(REMOVE) $(TARGET).cof
    	$(REMOVE) $(TARGET).elf
    	$(REMOVE) $(TARGET).map
    	$(REMOVE) $(TARGET).obj
    	$(REMOVE) $(TARGET).a90
    	$(REMOVE) $(TARGET).sym
    	$(REMOVE) $(TARGET).lnk
    	$(REMOVE) $(TARGET).lss
    	$(REMOVE) $(OBJ)
    	$(REMOVE) $(LST)
    	$(REMOVE) $(SRC:.c=.s)
    	$(REMOVE) $(SRC:.c=.d)
    
    
    # Automatically generate C source code dependencies. 
    # (Code originally taken from the GNU make user manual and modified 
    # (See README.txt Credits).)
    #
    # Note that this will work with sh (bash) and sed that is shipped with WinAVR
    # (see the SHELL variable defined above).
    # This may not work with other shells or other seds.
    #
    %.d: %.c
    	set -e; $(CC) -MM $(ALL_CFLAGS) $< \
    	| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
    	[ -s $@ ] || rm -f $@
    
    
    # Remove the '-' if you want to see the dependency files generated.
    -include $(SRC:.c=.d)
    
    
    
    # Listing of phony targets.
    .PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
    	clean clean_list program

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    das machst du dich schon indem du ihn programmierst.

    ich denke, radbruch hat recht: wenn du klein anfängst, aber deine programm selbst schreibt (in der anleitung sind tolole programme zum abtippen...) dann lernst du auf jeden fall mehr als wenn du großen umfangreichen code aus dem netz kopierst, den du nicht verstehst, und dann auf unsere hinweise hin fehler korrigierst, von denen du nicht weist warum sie da sind oder was sie bedeuten. ist nicht böse gemeint, aber weist du wirklich was das programm da oben macht (also schritt für schritt, nicht das endergebnos? weisst du was alle befehle bedeuten?

    wenn du erstmal etwas rumspielen willst, dann hol die ein paar hex-äfiles (zum beispiel von hier: http://home.planet.nl/~winko001/Asur...uSfwPagFrm.htm ) und spiele damit rum. und dann versuche, diene eigene kreativität walten zu lassen...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    12.07.2007
    Beiträge
    11
    Auf so was kann ich verzichten....hab nich umsonst mit so nem Programm angefangen.

    Soll ich dir mal erklären was der mit dem Programm macht? Vill
    merkst du ja dann das ich versteh was da drin passiert....oder gemacht wird.

    Diese Mini-Programme sind absoluter Mist....der Asuro soll was machen un nich dumm rum blinken...dafür is der nich geholt worden!

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    @2stoned
    Ist egal, ob geändert, oder neu editiert. Solange die Datei test.c in dem FirstTry-Verzeichnis liegt und dort mit 'make all' übersetzt wird, scheint der Rest im Verzeichnis das Grundgerüst von der Asuro-CD zu sein.

    @2stoned
    Ja, es ist die Datei (Makefile) die ich meinte.
    Genau hier liegt tatsächlich das Problem. Es ist auf alle Fälle kein Makefile mit dem die Forum-LIB 'eingebunden' wird.
    Somit erklärt das tatsächlich warum nur die Funktionen/Defines aus der Forum-LIB als Fehler bzw. als nicht zu finden angemeckert werden.

    OK, du must erst noch die Forum-LIB aus neue Asuro Lib V2.70 (Release Candidate 3) (im ersten Eintrag unter http://sourceforge.net/projects/asuro zu finden) holen, installieren und dich mit eventuell auftretenden Installationsproblemen beschäftigen. (Dazu gibt es im Forum einige Einträge, oder mal die Doku (ist in dem oben angegeben Thread, und in dem dort zu findenden Download) sehr genau lesen. m.a.r.v.i.n hat sich sehr, sehr viel Mühe mit der Doku zur Installation gemacht.)
    Nimm auf alle Fälle die Version mit rc3. Am einfachsten ist die Setup-Datei.

    Erst danach kannst du überhaupt daran denken an deinem Programm weiterzumachen.
    Hier ist es auf alle Fälle zu empfehlen, dass du DEIN Projekt (FirstTry) in den durch die Installation der Forum-Lib angelegtem Unterverzeichnis examples neu anlegst. (Eigenes neues Verzeichnis machen)
    Kopiere NUR deine Datei test.c in dieses neue Verzeichnis.
    Kopiere ein Makefile aus dem examples-Vereichnis in dieses neue Verzeichnis.
    Dann dort 'make all' bzw. 'make clean' aufrufen.

    Warum unter examples arbeiten?
    In den Makefile's ist ein kleiner Bock, so dass sie eine bestimmte Verzeichnis-Struktur erwarten. Mach es einfach so.


    Sonst kann ich nur sagen: Ruhe bewahren und mal in ein Sonnenstudio gehen (Urlaub tut's auch). Das Wetter zerrt etwas an den Nerven.

    @damaltor
    Stark, dass man Einträge schließen kann. Will ich auch können
    Lieber Asuro programieren als arbeiten gehen.

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    12.07.2007
    Beiträge
    11
    @Sternthaler
    Vielen Dank für deine Hilfe....allerdings scheint immer noch ein Problem vorhanden zu sein.

    Code:
    C:\ASURO_SRC\AsuroLib\examples\FirstTry>make all 
    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 3.3.1
    Copyright (C) 2003 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 -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
    C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: cannot find -lasuro
    make: *** [test.elf] Error 1
    
    > Process Exit Code: 2
    Fehlt vill noch eine Datei? Oder muss ich noch irgendwas umstellen?

    Gruß
    2stoned

  6. #16
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Diese Mini-Programme sind absoluter Mist
    Ich finde diese Codeschnippsel klasse, weil sehr lehrreich. Sie zeigen, wie man ohne asuro.h die einzelnen Funktionen des asuros nutzt.

    Kann ich dem Asuro denn irgendwie die Befehle erklären damit er weiß was ich von ihm will?
    Klar kann man das, man nennt es "programmieren". Deine Ansprüche übersteigen die Kentnisse, die ich mir mit einfachen Programmen, wie z.b blinkenden Lämpchen, erworben habe. Aber genau dafür hatte ich mir meinen asuro damals geholt (besser: schenken lassen) und ich finde, er hat seinen Job sehr gut erledigt. Aber meine Ansprüche waren auch eher gering, weil ich zuvor weder AVRs noch C kannte.

    Für richtig tolle Programme solltest du aber unbedingt die von Sternthaler empfohlene (und mitentwickelte) 2.7er Library installieren. Damit kannst du die Möglichkeiten des asuros bequem nutzen ohne wirklich zu wissen, wie es funktioniert.

    Viel Spass noch mit deinem asuro

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    @2stoned
    sieht ja schon recht gut aus.
    Jetzt wird es aber wohl Zeit mal nachzufragen was du denn gemacht hast. Hast du die Forum-LIB von sourceforge geholt? Setup- oder ZIP-Version?

    Du scheinst auf alle Fälle eine asuro.h aus der Forum-Lib zu haben. Sieht man daran, dass die Wanings und Fehler zu den monierten Funktionen/Defines weg sind.
    Der Text "cannot find -lasuro" in deinem Fehleroutput sagt nun folgendes:
    Beim Linken im Makefile wird die Library (-l) asuro gesucht aber nicht gefunden. (Das sieht nach dem Makefile aus der Forums-LIB aus. Ist gut so.)
    Bei einer Lib ist die Namensgebung 'irgendwie' komisch.
    Angegeben wird asuro, aber gesucht (als Datei) wird libasuro.a
    Diese Datei wird von m.a.r.v.i.n über sourceforge gleich mitgeliefert, oder eben durch ein make-lib.bat erzeugt und 'eigendlich' an die richtige Stelle kopiert.
    Wo ist die richtige Stelle? In dem Verzeichnis, in dem dein WinAVR installiert ist.
    Bei mir nennt sich das Verzeichnis: C:\...\...\AVR-Win\avr\lib
    Bei dir (sieht man auch im Fehleroutput): C:\WinAVR\avr\lib
    Achtung Es gibt unter WinAVR (beim mir AVR-Win) auch direkt ein lib-Verzeichnis. Nein, nein: libasuro.a muss in's avr\lib-Verzeichnis.
    Solltest auch gleich nachsehen, ob asuro.h im Verzeichnis C:\WinAVR\AVR\include ist.

    Das kopieren geht auch mit dem Makefile aus der installierten Forum-LIB, aber nur wenn die dortige Angabe "DIRAVR = l:/winavr" auf dein C:\WinAVR-Verzeichnis angepasst ist. (Nimm tatsächlich den / und nicht Win-typischen \. m.a.r.v.i.n. weist da irgendwo drauf hin)


    @radbruch
    Danke für die Blumen (LIB-mitentwicklung) Ist nicht ganz so dolle bisher. Habe mich 'nur' um die Doku der Lib-Sourcen gekümmert. Beispiele und dortige Doku, Gesamt-Lib und trennen in einzelne Dateien haben wir m.a.r.v.i.n zu verdanken.

    P.S.: Wenn die Forum-LIB selber übersetzt wird, besteht die Möglichkeit in der dort vorhandenen Datei myasuro.h die typischen, eigenen Werte für Taster, Odometrie, Go und Turn zu ändern und zu nutzen.
    Das geht aber nur, wenn die Lib dann neu übersetzt wird und in die richtigen Verzeichnisse kopiert wird.
    Reklame: Im Beitrag ASURO emittelt Werte für Lib V2.70 myasuro.h selber gibt es ein Programm damit der Asuro diese Werte (fast) selbst ermitteln kann.
    Lieber Asuro programieren als arbeiten gehen.

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    12.07.2007
    Beiträge
    11
    @Sternthaler
    Vielen vielen Dank....

    Es hat alles funktioniert. Werde es jetz gleich auf den Asuro übertragen und ausprobieren ob das Programm auch so funktioniert wie ich es mir vorgestellt hatte.

    Nochmal Danke für deine tolle Hilfe....

    Gruß
    2stoned

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Freut mich, gern geschehen.
    Lieber Asuro programieren als arbeiten gehen.

  10. #20
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    klar sind diese codeschnipsel nichts besonderes. aber sie sind gut zum lernen. und dadurch, dass man einen code aus dem netz hlt, den man überhaupt nicht kapiert, lernt man nix.

    wenn man allerdinsg 2-3 mal solche codeschnipsel bearbeitet hat, oder angepasst, odr evtl auch das neue eigene programm darauf aufbaut, dann kann man deutlich mehr erreichen.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen