Forum: Mikrocontroller und Digitale Elektronik MCI am LPC23xx


von Tobias (Gast)


Lesenswert?

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

von Juri (Gast)


Lesenswert?

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

von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

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

von Tobias (Gast)


Lesenswert?

Kann mir vielleicht jemand helfen ? Ich komm leider einfach nicht 
weiter..
mfg, Tobias

von Markus (Gast)


Lesenswert?

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)

von Juri H. (juri)


Lesenswert?

@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

von Juri H. (juri)


Lesenswert?

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

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

@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 ).

von Tobias (Gast)


Lesenswert?

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

von Juri H. (juri)


Lesenswert?

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

von Juri H. (juri)


Angehängte Dateien:

Lesenswert?

Noch ein Versuch, hoffentlich diesmal mit Anhang...

von Tobias (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.