Deutsch English

roloFlash ohne SD-Karte benutzen

Für den Fall, daß Ihre benötigen Dateien zusammen kleiner als die Flash-Disk sind (siehe Handbuch, aktuell 640 kByte für v07.AA), können Sie alles auf die Flash-Disk kopieren und anschließend roloFlash ohne SD-Karte benutzen. Dies bringt Ihnen folgenden Vorteile:

Dazu empfehlen wir folgenden Ablauf:

Betrieb ohne SD-Karte

1. Testen mit SD-Karte

Testen Sie Ihren Ablauf erst wie gewohnt mit einer SD-Karte. Sie haben eine RUN.BIN auf der SD-Karte zum Ausführen, wahrscheinlich auch eine oder mehrere Dateien zum Flashen. Zur Vereinfachung gehen wir im Folgenden von FLASH.HEX aus.

2. Vorbereiten der SD-Karte zum Transferieren aller Dateien in den roloFlash

Erstellen Sie auf der SD-Karte einen Ordner „TO_RF” und kopieren Sie alle benötigten Daten aus dem vorherigen Schritt in diesen Ordner.

Erstellen Sie auf der SD-Karte im Hauptverzeichnis eine weitere RUN_V07.BIN, die die Daten aus dem „TO_RF”-Ordner in die Flash-Disk kopieren soll. Dazu finden Sie hier am Ende des Dokuments im Anhang die Prozedur copyFile, die Sie in eine roloBasic-Datei z.B. wie folgt kopieren:

! -- copy "FLASH.HEX" from SD-card (folder TO_RF) to FlashDisk (root folder):
copyFile SDCARD, "TO_RF/FLASH.HEX", FLASHDISK, "FLASH.HEX"

! -- copy "RUN_V07.BIN" from SD-card (folder TO_RF) to FlashDisk (root folder):
copyFile SDCARD, "TO_RF/RUN_V07.BIN", FLASHDISK, "RUN_V07.BIN"

Übersetzen Sie die roloBasic-Datei in die Datei RUN_V07.BIN im Hauptverzeichnis der SD-Karte.

3. Kopieren der Daten

Legen Sie die SD-Karte in roloFlash ein und führen die im Hauptverzeichnis erzeugte RUN_V07.BIN mit Hilfe eines beliebigen Targets einmal aus.

4. Ausführung ohne SD-Karte

Entfernen Sie die SD-Karte und testen nun den Ablauf ohne SD-Karte.

Rückkehr zum normalen Betrieb mit SD-Karte

Vorrang der RUN_V07.BIN auf der Flash-Disk

Eine eventuell auf der Flash-Disk befindliche RUN_V07.BIN wird vorranging vor einer RUN_V07.BIN auf der SD-Karte ausgeführt.

Wie kann ich wieder eine RUN_V07.BIN auf der SD-Karte ausführen?

Dazu gibt es zwei Möglichkeiten:

Anhang: Prozedur copyFile

procedure copyFile fsSrc, filenameSrc, fsDst, filenameDst
  sys_setCpuClock 120000000
  dataSize = fs_fileSize(fsSrc, filenameSrc)
  fs_create fsDst, filenameDst, dataSize
  src = fs_open(fsSrc, filenameSrc)
  dst = fs_open(fsDst, filenameDst)
  blockSize = 512
  filePos = 0
  retval = 1
  do while dataSize > 0
    mySize = blockSize
    if mySize > dataSize
      mySize = dataSize
    endif
    a = fs_read(src, filePos, mySize)
    fs_write dst, filePos, a
    filePos = filePos + mySize
    dataSize = dataSize - mySize
  loop
  fs_close dst
  fs_close src
end