If your required files together are smaller than the Flash disk (see manual, currently 640 kBytes for V07.AA), you can copy everything to the Flash disk and then use roloFlash without an SD card. This gives you the following advantages:
- The SD card cannot be removed, lost, or exchanged.
- Your hex file is not stored on an SD card.
- This reduces potential sources of error and increases security for your data.
We recommend the following procedure:
First test your procedure as usual using an SD card. You will have a
RUN_V07.BIN
on the SD card to execute, and probably also one or more files to flash. For simplicity, we will refer toFLASH.HEX
from here on.
Create a folder named
TO_RF
on the SD card and copy all necessary data from the previous step into this folder.
Also, create a file
RUN_V07.BIN
in the root directory of the SD card, which is supposed to copy the data from theTO_RF
folder to the Flash disk. You can find thecopyFile
procedure for this purpose at the end of this document in the appendix. Copy this procedure into your roloBasic file, e.g. like so:
! -- 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"
Compile this into the RUN_V07.BIN file on the SD card’s root folder.
Insert the SD card into the roloFlash and execute the process once using any target.
Remove the SD card and now test the procedure without the SD card.
RUN_V07.BIN
on the Flash DiskA
RUN_V07.BIN
located on the Flash disk is executed in preference to aRUN_V07.BIN
on the SD card.
RUN_V07.BIN
from the SD card again?There are two options:
The RUN_V07.BIN
on the Flash disk checks whether an
SD card with a RUN_V07.BIN
is present. If so, execution is
started from there. This can be achieved like this:
if mediaExists(SDCARD)
if fileExists(SDCARD, "RUN_V07.BIN")
chain(SDCARD, "RUN_V07.BIN")
endif
endif
You reflash the roloFlash firmware. This deletes the entire content of the Flash disk and Flash variables.
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