Lade...
 

EEPROM

Bootroutine des Receivers

Von Andreas http://www.mikrocontroller.net/topic/210759#2294363(external link)

da ich mich eher auf die Basics verstehe als auf höhere Programmierung,
werde ich mal ein paar Sachen zur Hardware beisteuern bzw
zusammenfassen, da teilweise schon bekannt.

zum Thema Booten,

für den Bootprozess ist ein Bootmodul verantwortlich. Beim Start wird
über Hardwarekonfig entschieden welche Quelle zum Boot verwendet wird.
Beim Pollinboard ist es das I2C. Das Modul verfügt nur über die Funktion
Datenwörter(32Bit) an eine physikalische Adresse(32Bit) zu kopieren.
Diese Funktion wird genutzt um andere Register zu Konfigurieren bzw die
Module zu denen die jeweiligen Register gehören. Welche Register mit
welchen Werten geladen werden ist in der angehängten Datei zu sehen.
Wer genaueres zu den Registern wissen will, findet Infos zu fast allen
Modulen im Datenblatt vom PNX1500

Grober Ablauf
- GPIO PINs konfigurieren
- ClockModul Takte einstellen und anwerfen
- Flash(PCI/XIO-Modul) und DRAM(MMI-Modul) vorbereiten
- DMA Modul konfigurien und Starten
jetzt wird der µBootloader(0_nboot.nb0) in den Speicher
transferiert
4Kb vom Flash 0x10000000 in den RAM 0x04010000
- Während der kopiererei macht das Bootmodul Pause
- Es folgen noch ein paar Werte für die Globalen Register der DSP's
- Dann wird ein SoftReset ausgelöst(Registerwerte bleiben erhalten)

Jetzt bekommt der MIPS das Zepter in die Hand.
Eingebaute Fehlerroutinen veranlassen den MIPS bei diversen Fehlern bzw
Ereignissen eine bestimmte Adresse anzuspringen(nennt sich Exeption
Handler, ähnlich wie Interrupts).
Auch ein Reset ist so eine Exeption. Von da geht es dann weiter zur
RAM-Adresse wo der µBootloader kopiert wurde. Da zu diesem Zeitpunkt der
virtuelle Speicher schon aktiv ist, ist das die Adresse 0x84010000.

So ich hoffe daraus kann man sich was zusammenreimen:)

Was mir am meisten Kopfschmerzen bereitet ist der JTAG. Hat jemand von
Erfahrung mit OpenOCD? Dann bitte mal melden...
Hab leider gerade keine Zeit mehr, aber ich schreib die Tage noch mal
was zu dem Thema!

greetz Andreas