Hallo zusammen, hat vielleicht irgendjemand hier Erfahrung mit dem MCI der LPC23XX ? Ich versuche nun schon eine ganze Weile eine SD-Card zu beschreiben, bleibe aber einfach immer wieder stecken. Viele Grüße, Tobias
Schau doch mal beim EFSL-Projekt nach, da habe ich mal einen einfachen "Treiber" für den LPC2378 geposted. http://sourceforge.net/tracker/index.php?func=detail&aid=1774563&group_id=131895&atid=722593 Gruß, Juri
Hallo Juri, vielen Dank für den Tip. Ich habe mir das mal alles runtergeladen und das efsl Verzeichnis hoffentlich richtig gepatcht. Beim Compilieren bekomme ich jedoch trotz längerem ausprobieren immer die folgenden Warnungen:
1 | arm-elf-gcc -mcpu=arm7tdmi-s -mthumb -mthumb-interwork -g3 -Wall -Os -Iinc -Ico |
2 | nf -c -o src/interfaces/lpc23x8.o src/interfaces/lpc23x8.c |
3 | src/interfaces/lpc23x8.c: In function 'mci_sendcmd': |
4 | src/interfaces/lpc23x8.c:118: warning: unused variable 'count' |
5 | arm-elf-gcc -mcpu=arm7tdmi-s -mthumb -mthumb-interwork -g3 -Wall -Os -Iinc -Ico |
6 | nf -c -o src/efs.o src/efs.c |
7 | inc/interfaces/lpc23x8.h:184: warning: 'if_mci_init' declared 'static' but never |
8 | defined
|
9 | inc/interfaces/lpc23x8.h:185: warning: 'mci_card_init' declared 'static' but nev |
10 | er defined |
11 | inc/interfaces/lpc23x8.h:186: warning: 'mci_get_sector_count' declared 'static' |
12 | but never defined |
13 | inc/interfaces/lpc23x8.h:187: warning: 'mci_read_block' declared 'static' but ne |
14 | ver defined |
15 | inc/interfaces/lpc23x8.h:188: warning: 'mci_write_block' declared 'static' but n |
16 | ever defined |
17 | ...
|
Diese Meldung wiederholt sich für alle Dateien aus dem src Verzeichnis. Ich kann damit aber leider nichts anfangen, da die Funktionen alle ordnungsgemäß in der lpc23x8.c definiert werden.
1 | ...
|
2 | arm-elf-gcc -mcpu=arm7tdmi-s -mthumb -mthumb-interwork -g3 -Wall -Os -Iinc -Ico |
3 | nf -c -o src/interfaces/sd.o src/interfaces/sd.c |
4 | src/interfaces/sd.c: In function 'sd_Command': |
5 | src/interfaces/sd.c:85: warning: implicit declaration of function 'if_spiSend' |
6 | |
7 | ...
|
Die Warnung aus der sd.c bzgl. 'if_spiSend' rührt daher, dass diese Funktion natürlich in der lpc23x8.c gar nicht existiert. Hast Du dafür vielleicht einen Ersatz ? Mein Makefile habe ich mal angehängt. Gruss, Tobias
Kann mir vielleicht jemand helfen ? Ich komm leider einfach nicht weiter.. mfg, Tobias
Siehe hier: http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/efsl_arm/index.html MT hatte mal den kompletten Code, fix und fertig funktionierend auf seiner Seite. Ich musste nur noch ein paar IOs anpassen, dann ging das auch mit meinem Board. Ich glaube aus rechtlichen gründen musste er das wieder löschen. Vieleicht kann MT mehr dazu schreiben, wenn er das hier zufällig lesen sollte. (Ich nutze auch den arm-elf-gcc)
@Markus: Auf der Seite von MT ist doch noch eine Version mit meinem MCI-Code (http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/efsl_arm/efsl_0_2_9_RC7_mt_20070903.zip), allerdings hat der noch ein paar Macken und MT hat leider keine neue Version veröffentlicht. @Tobias: Was die Funktion if_spiSend() aus der Datei sd.c angeht: Diese Datei mußt du nicht kompilieren - aus dem interfaces-Verzeichnis benötigst du nur lpc23x8.c. Möglicherweise rühren daher auch die anderen Fehler - bis auf den ersten, die ungenutzte Variable. Die kannst du auskommentieren - ist mir irgendwie durchgerutscht. Die anderen Fehler kann ich hier nicht nachvollziehen (allerdings habe ich momentan keine ARM-Entwicklungsumgebung da, deshalb nur kurz mit einem x86-gcc getestet und -Wall). Gruß, Juri
Korrektur: Ich konnte die Warnungen bezüglich der static-Deklarationen doch nachvollziehen. Enferne einfach in den lpc23x8.[c|h]-Dateien das Wort "static" vor den Funktionen. Gruß, Juri
@Juri: > Auf der Seite von MT ist doch noch eine Version mit meinem MCI-Code > (http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/efsl_arm/efsl_0_2_9_RC7_mt_20070903.zip), > allerdings hat der noch ein paar Macken und MT hat leider keine neue > Version veröffentlicht. Hmm, habe wohl die Verbessungsverschläge nicht integriert. Am Besten einfach vorhandenes zip-Packet nehmen, Macken entfernen, wieder zusammenpacken und mir per e-mail zusenden. Ich lege dann die mackenfreie Version auf den Server auf das es anderen helfen möge. Im Moment auch nichts mit LPC23xx in Arbeit, um selbst gross zu testen. @Markus: ChaN hat in den fat-modul Beispielen inzwischen auch Treiber für LPC23|24xx/MCI, sicher einen Blick wert ( http://elm-chan.org/fsw/ff/00index_e.html ).
Vielen Dank erstmal für Eure Antworten. Der Code von Martin Thomas läuft problemlos. Um welche Macken geht es ? Gibt es dazu vielleicht irgendwo eine Liste bzw. einen Thread ? Geht es um Macken in seinem Code oder in der efsl ? Viele Grüße, Tobias
Es geht um Macken in meinem MCI-Interface, das in Martins Quellen enthalten ist. Lesen geht i.a., aber Schreiben macht Probleme und sollte in der neuen Version besser sein. Ich habe dir mal ein Archiv angehangen, in dem die beiden Dateien sind. Sollte funktionieren, wenn du die einfach über die bestehenden 'rüberkopierst. (habe ich aber nicht getestet...) [edit] Hmm, gibt es irgendeinen Trick mit den Anhängen? [/edit] Gruß, Juri
Super, vielen Dank :). Ich werde das morgen gleich mal ausprobieren. Gruß, Tobias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.