Linking Problem in AVR-Studio
-
Hallo
Folgende Fehlermeldung:
gcc plug-in: Error: Object file not found on expected location C:\Users\...\default\MP3.elfAusgelöst durch die Datei cfmm.c . Diese stammt wie der Rest der Dateien hierher (AVR-Ordner): http://elm-chan.org/fsw/ff/ffsample.zip
Ich habe als neue Mainschleife, das Beispiel unten von dieser Seite genommen und nur etwas modifiziert.
Sieht jemand von euch, was mit der Einbindung dieser einzelnen Datei nicht stimmt? Wenn ich sie nämlich aus dem Projekt entferne, dann klappts
Danke euch
-
Aus deinen Angaben werde ich nicht richtig schlau. Der Link zu der zip Datei wird auf pir.org weitergeleited so das ich mir das nicht ankucken kann. Schreib mal mehr genau was du machen willst .
-
Mmh stimmt. Also hier auf der Seite unter Sample-projects ganz unten.
Ich will mit einem ATmega FAT32-Daten von einer SD-Karte lesen und der Herr Chan hat da eine ganz wunderbar dokumentierte Umgebung geschrieben.
-
PlattitüdenAbonennt schrieb:
...und der Herr Chan hat da eine ganz wunderbar dokumentierte Umgebung geschrieben.
in der tat, ist 'ne spitzenleistung. das FS verwende ich auch (aber nicht auf'nem AVR).
-
Schön, dass du das auch so siehst, aber ich vermisse etwas den Tipp von dir, der mich bei meinem Problem weiterbringt.
-
mosta, hast du dir es jetzt mal ansehen können?
-
PlattitüdenAbonennt schrieb:
Schön, dass du das auch so siehst, aber ich vermisse etwas den Tipp von dir, der mich bei meinem Problem weiterbringt.
ich kann dir leider keinen tip geben, weil ich weder GCC noch AVRs benutze (ist jedenfalls lange her). ausser soviel: wenn dein problem gelöst ist, dann dürften nicht mehr viele kommen. ChaNs FatFS hat keine schlimmen bugs. auch der SD-karten treiber ist out-of-the-box sehr brauchbar. aber frag doch mal da: http://www.mikrocontroller.net/forum/mikrocontroller-elektronik
-
Ok, Problem gefunden. Ganz trivial. Es gab neben der cfmm.c noch eine mmc.c
Jetzt hab ich mir noch das Petitfs von chan geladen, was für noch kleiner uC geeignet ist.
Bei Compilieren nun diese Fehler:
../usi.S:19: Error: constant value required
../usi.S:19: Error: number must be positive and less than 64
../usi.S:45: Error: constant value required
../usi.S:45: Error: number must be positive and less than 64
../usi.S:65: Error: constant value required
../usi.S:65: Error: number must be positive and less than 64Die Fehlermarker sitzen auf den Zeilen mit _SFR_IO_ADDR(USICR) und _SFR_IO_ADDR(USIDR) . Hat jemand nen Tipp?
Code dazu:
;---------------------------------------------------------------------------; ; USI control functions ;---------------------------------------------------------------------------; .nolist #include <avr/io.h> // Include device specific definitions. .list ;---------------------------------------------------------------------------; ; Initialize USI ; ; void init_spi (void); .global init_spi .func init_spi init_spi: ldi r24, 0b00011000 out _SFR_IO_ADDR(USICR), r24 ret .endfunc ;---------------------------------------------------------------------------; ; Receive a byte (27 clks) ; ; BYTE rcv_spi (void); .global rcv_spi .func rcv_spi rcv_spi: ldi r24, 0xFF ; Link next function .endfunc ;---------------------------------------------------------------------------; ; Transmit a byte (26 clks) ; ; void xmit_spi (BYTE); .global xmit_spi .func xmit_spi xmit_spi: out _SFR_IO_ADDR(USIDR), r24 ldi r24, 0b000100 ; PB2(SCK) out _SFR_IO_ADDR(PINB), r24 ; Toggle SCK 16 times out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 out _SFR_IO_ADDR(PINB), r24 nop in r24, _SFR_IO_ADDR(USIDR) ret .endfunc
-
Mach doch mal .nolist und .list weg und schau, was dann passiert.
-
Leider alles so wie gehabt.