Hallo allerseits,
ich frage mal hier, weil ich den Eindruck habe, dass sich hier doch einige mehr mit Embedded-SW/HW auskennen als in einer reinen Info-Gruppe:
Ich muss einen embedded Bootloader fuer einen PowerPC aus der
5xx-Reihe (genauer: 563) schreiben (Compiler gcc, Programmiersprache c, eventuell asm). Leider habe ich sowas noch nie gemacht.
Ich habe mir mal den Quellcode fuer 'das UBoot' angeschaut. Aber das ist wohl Overkill fuer meine Zwecke. Alles viel zu generisch, als dass ich es in endlicher Zeit kapieren wuerde ;<
Der Bootloader soll internes Flash verwenden. Im Flash kann man Bloecke schuetzen. Damit brauche ich nicht vor dem Loeschen den Code ins RAM zu kopieren, immerhin. Der Bootloader soll zunaechst nur ueber die serielle Schnittstelle/Hyperterminal funktionieren.
Initialisierungsroutinen fuer das Board und die serielle Schnittstelle habe ich schon. Fuer das interne Flash habe ich bis jetzt noch keine Routinen (wird im Reference Manual 'UC3F' genannt).
Wo es im Moment v.a. auch noch hapert: Als Download-Datei wird bisher eine ELF-Datei verwendet. Muss jetzt der Bootloader diese ELF-Datei erst mal interpretieren um zu 'wissen' an welche Stellen die Sections hinkommen, den ELF-Header extrahieren und die Sections an die richtige Stelle schreiben? Zunaecht muss er es ja erst mal in's Flash schreiben. Muss ich dann in die crt0.S (in das Startup-File?) Routinen schreiben, um diese Sections in die richtigen Stellen im RAM zu schreiben?
Bisher wurde die ELF-Datei ueber eine BDM-HW runtergeladen. In dem Projekt zur Erzeugung der ELF-Datei ist eine Linker-Script-Datei eingebunden. Die sorgt wohl letztlich dafuer, dass die ELF-Datei die Informationen bekommt, wo was letztlich hingeladen werden soll. Den Rest besorgt der BDM-Downloader, oder? Ich braeuchte jetzt also gewissermassen diese Funktion als SW-Routine.
Liege ich ganz falsch mit meinen Ueberlegungen? Hat jemand sowas fuer den PPC schon gemacht? Gibt es irgendeine Website/Buch fuer sowas (sollte schon PowerPC und internes Flash sein), habe vergeblich gesucht. Gibt es vielleicht Firmen, die moeglichst Quellcode anbieten?
Viele Gruesse
Johannes