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:
Testen Sie Ihren Ablauf erst wie gewohnt mit einer SD-Karte. Sie
haben eine RUN_V07.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.
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.BAS
, 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.
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.
Entfernen Sie die SD-Karte und testen nun den Ablauf ohne SD-Karte.
Eine eventuell auf der Flash-Disk befindliche
RUN_V07.BIN
wird vorranging vor
einer RUN_V07.BIN
auf der SD-Karte
ausgeführt.
Dazu gibt es zwei Möglichkeiten:
Es gibt in der RUN_V07.BIN
auf der Flash-Disk eine Prüfung, ob eine SD-Karte mit einer
RUN_V07.BIN
existiert. Falls ja,
wird die Ausführung dort gestartet. Dies kann z.B. so erreicht
werden:
if mediaExists(SDCARD)
if fileExists(SDCARD, "RUN_V07.BIN")
chain(SDCARD, "RUN_V07.BIN")
endif
endif
Sie flashen die roloflash-Firmware erneut auf den roloFlash. Dabei wird der komplette Inhalt der Flash-Disk und Flash-Vars gelöscht.
procedure copyFile fsSrc, filenameSrc, fsDst, filenameDst
dataSize = fs_fileSize(fsSrc, filenameSrc)
fs_create fsDst, filenameDst, dataSize
src = fs_open(fsSrc, filenameSrc)
dst = fs_open(fsDst, filenameDst)
blockSize = 512
filePos = 0
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