Nachdem ich in der LPC2000 Yahoo Group keine Reaktionen bekommen habe
versuche ich es hier. Eventuell hat ja doch jemand bereits mit diesem
"grossen" uC gearbeitet, vielleicht hat ja sogar Robert Teufel etwas
dazu zu sagen.
Ich arbeite zur Zeit mit einem NXP LPC3180, da dieser einen ETB
(Embedded Trace Buffer) besitzt, welcher es erlaubt, Trace Daten via
JTAG anstelle der high-speed ETM Schnittstelle abzurufen.
Der ARM926EJ-S Core des LPC3180 wird bereits durch den OpenOCD ("meinen"
JTAG Debugger) unterstützt, der nächste Schritt ist es, eigenen Code auf
das Board zu bekommen.
Beim Versuch, die Verwendung von NAND Flash zu verstehen, bin ich auf
einige Unzulänglichkeiten des User Manuals gestossen. Da der MLC (Multi
Level Cell) Flash Controller in jedem Fall benutzt wird (auch wenn das
Phycore Board nur SLC Flash bietet), um den ersten Benutzer-Code zu
laden, wollte ich die Unterstützung dafür dem OpenOCD hinzufügen.
Das UM sprich von einem Serial Data Buffer, ohne jedoch zu erwähnen, wo
sich dieser Puffer befinden könnte. Der Beispiel Code, der mit dem
phyCore-LPC3180 geliefert wurde, definiert MLC_DATA als Adresse
0x200b0000 und MLC_DATAX an Adresse 0x200a80000), allerdings ist keine
dieser Addressen im UM aufgeführt.
Der Beispiel Code verwendet nur MLC_DATAX, das On-Chip ROM liest
allerdings von Adresse 0x200b0000, nachdem es das "READ ID" Kommando
abgesetzt hat. Weiterhin liest das ROM von 0x200a8000, verwendet
allerdings "LDM" (Load Multiple) und liesst dadurch mehrere Datenworte
hintereinander - das deutet darauf hin, dass der Puffer entweder mehrere
Worte lang ist, oder dass nicht alle Adressen dekodiert werden, leider
ist davon nichts dokumentiert.
Es ist ein wenig aufwendig, das ROM als einzige Referenz zur Benutzung
des MLC NAND Controllers verwenden zu müssen, trial-and-error gefällt
mir hier auch nicht besonders.
Kennt irgend jemand zusätzliche Dokumentation, möglicherweise ein
aktuelleres User's Manual (meines ist Rev. 01 vom Juni 2006), oder
Application Notes, welche die Verwendung des MLC NAND controllers
erklären?
Grüsse,
Dominic