Wohin muss ich das File schreiben?

Gast #949049
Lesenswert?

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.
Gast #949101
Lesenswert?

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
Gast #949948
Lesenswert?

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?
#949982
Lesenswert?

>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.
Gast #950000
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren