Hallo Ich habe mit dem IAR-Compiler ein Programm geschrieben, das Text auf dem Display ausgibt. Das Programm funktioniert einwandfrei. Nun habe ich meinen Quellcode compiliert. Das erzeugte Bin-File möchte ich nun in den Flash schreiben. Da der AT91SAM9263 keinen internen Flash besitzt muss ich das Programm in den externen NAND-Flash schreiben. Dies mache ich mit dem SAM-BA-Tool von Atmel. Ich habe das Das AT91SAM9263-EK Board per USB an meinen PC angeschlossen. Dann starte ich SAM-BA 2.8 und wähle den Reiter NANDFlash aus. Dort suche ich unter "SEND FILE NAME" mein Bin-File aus und drücke anschließend auf "Send File" Ich Log-Fenster steht dann folgendes: File size: 0x3E24 Bytes Writing 0x0 Bytes at 0x0 (Buffer addr 3024D4) 0x3024D4 Bytes written by applet Nachdem ich das Bin-File in den NAND-FLASH geschrieben habe drücke ich die Reset Taste des µC. Per RS232 lese ich die DEBUG-Schnittstelle aus. Auf dem PC-Display steht dann "ROMBOOT" Das Programm wird aber nicht gestartet. Habe dann das USB-Kabel und das RS232 Kabel abgezogen und noch einmal einen Reset durchgeführt. Das Ergebnis war das Selbe es passierte nichts. Wieso liest er das File nicht auf dem NAND-FLASH ein? Muss ich etwas im IAR-Compiler einstellen das er ein Bootfile erstellen soll? Das habe ich gefunden: The on-chip Boot ROM Memory integrates different programs permitting download and/or upload into the different memories of the product First, it initializes the DBGU and the USB Device Port. Then the DataFlash Boot program is executed. It looks for a sequence of eight valid ARM exception vectors in a DataFlash connected to the SPI. If a valid sequence is found, code is downloaded into the internal SRAM. This is followed by a remap and a jump to the first address of the SRAM. If no valid ARM vector sequence is found, SAMBA™ Boot is then executed. It waits for transactions either on the USB device, or on the DBGU serial port. Then, user can use SAM-BA GUI to download binary file into the different memories of the product.
Hallo Johannes, eigentlich hast Du Dir die Antwort doch schon selbst gegeben: Der ROM-Code des Controller kann aus dem NAND-Flash keine Anwendung starten. Das geht nur mit dem Data-Flash. Gruß, Peter
Der AT91SAM9263 hat aber keinen Data-Flash es sei denn ich benutze eine SD-Card. Somit muss ich extra auf der SD.Card ein Bootloader spielen, der dann wieder meine Daten aus dem NAND-Flash ind den SRAM kopiert. Umständlicher gehts nun wirklich kaum mehr. Ich könnte den Mist aus dem Fenster werfen. In einen anderen Dokument (Board Revision B) ich habe Board Revision A steht folgendes: First, it initializes the DBGU and the USB Device Port Then the NANDFLASH BOOT programm is executed. If a valid boot is found, the code is downloaded into the internal SRAM. This followed by a remap and a jump to the first adress of the SRAM
In Dokument der Revision B steht das vom NAND-Flash gebootet wird.
Stimmt, dann haben die das ROM mal geändert. Guck doch einfach ins Datenblatt des Prozessors, Kapitel "AT91SAM9263 Boot Program", da steht ja, wie das NAND-Flash aussehen muss, damit der ROM-Code von dort bootet. Gruß, Peter
Ich das Kapitel noch mal durchgelesen. Dort steht das zuerst der SD-Karte nach einem Bootfile durchsucht wird. Wenn kein Bootfile vorhanden ist, dann wird der NANDFLASH untersucht. Ins NANDFLASH habe ich auch das File "boot.bin" geschrieben, jedoch hat dies keine Auswirkung. Es gibt ja 2 Möglichkeiten mit SAM-BA die Datei "boot.bin" in den NAND-Speicher zu schreiben. 1. NAND-Reiter auswählen, den NAND-Speicher aktivieren, anschließend den NAND-Speicher löschen und dann das Bootfile hochladen. 2.NAND-Reiter auswählen, den NAND-Speicher aktivieren, anschließend den NAND-Speicher löschen und dann das Bootfile auswählen, die Adresse 0x0 auswählen und auf "Send File" klicken. Beides war ohne erfolg. Ich vermute mal das der IAR-Compiler etwas falsch macht, denn irgendwie scheint der Atmel Bootloader das File nicht zu erkennen. Muss ich beim IAR-Compiler irgendetwas besonderes einstellen?
>Ich vermute mal das der IAR-Compiler etwas falsch macht, denn irgendwie >scheint der Atmel Bootloader das File nicht zu erkennen. Hast Du denn die im Datenblatt beschriebenen sieben Exception-Vectors am Anfang Deiner boot.bin? >If the NANDFlash is not formatted, the NANDFlash Boot program looks >for a sequence of seven valid ARM exception vectors. If such a >sequence is found, code is downloaded into the internal SRAM.
Ne ich habe dort nicht geändert. Ich habe das File, das der IAR-Compiler erzeugt einfach an die Stelle kopiert. Muss ich denn das File in den NAND-Flash schreiben und anschließend die sieben Exception-Vectors ändern.? Ich dachte das macht der IAR-Compiler selber, da ich in den options genau den µC AT91SAM9263 ausgewählt hatte
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.