Hallo zum zweiten ;) bislang habe ich meine zwei AT91SAM9260 Bords mit einem "normalen" parallel NOR-Flash ausgestattet (an NCS0). Der integrierte Bootloader kann ja auch aus einem Dataflash über SPI das Programm auslesen und dann z.B. ins SDRAM kopieren.. Da ich mein Programm beim starten eh vom NOR ins SD-Ram kopiere, würde das meine Platzprobleme bei meiner neusten Platine etwas lindern und das Layout wesentlich vereinfachen. Wie funktioniert das dann mit dem Programmieren von dem Dataflash? Ich arbeite mit dem µLink/µVision von Keil. Das unterstützt Dataflashs zum programmieren. Schreibe ich ganz normal mein Programm mit SDRAM Init im Startup etc., programmiere über µLink das Dataflash und der Bootloader nutzt das Programm im Dataflash im Prinzip wie im NOR-Flash? Dummerweise habe ich mir bei den anderen beiden Bords nicht die Option für ein Dataflash + Bootloaderstart gelassen ;) Grüße & Danke!
Ich war bisher davon ausgegangen, dass das Boot Program eigentlich bei jedem Start durchläuft. Zumindest suggeriert dies das Datenblatt (Ch 13). Laut Datenblatt kopiert das Boot Program, wenn es ein valides Programm findet, dieses aus dem Dataflash ins Ram, remapt dieses dann um und springt an den Anfang des Rams. Demzufolge muss das SRAM zu diesem Zeitpunkt schon vom Boot Program initialisiert worden sein. Der Dataflash lässt sich auch mit dem SAM-BA programmieren. Das Booten aus einem NAND-Flash ist aufgrund eines Bugs übrigens nicht möglich. Gibt es Deine Platine irgendwo zu bewundern? Und falls nicht, kommst du mit 4 Lagen aus?
Ich komme mit 2 Lagen aus ;) Bislang jedenfalls .. und hab auch keinerlei Probleme mit dem SDRAM und/oder anderen Sachen.. Analoge Teile habe ich allerdings auf einen zweiten Platine drauf. Kann derzeit leider kein Bild machen .. Also so wie ich es jetzt verstanden habe (den Bootloader muss man ja aktivieren) schaut der Bootloader im Dataflash nach, kopiert dann das Programm ins INTERNE SRAM (das ja nur 2x4K groß ist) und springt dann dort an 0 und führt das aus. Wenn man jetzt das SDRAM nutzen will, muss das Programm dann das SDRAM initialisieren und den Rest aus Dataflash / NAND-Flash Sonstwo laden..
Stimmt, bei genauerem lesen der Doku zum Thema Boot Program fällt auf, dass das entscheidende "D" in SRAM fehlt. Ich verwende generell 4 Lagen mit zwei soliden Versorgungslayern, aber es beruhigt mich, dass ich den Rest dann locker auf die Außenlagen bekommen werde. Welchen SDRAM-Typ hast du genau verbaut?
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.