4.1.2 BlueFlash Firmware
There are four possible components in a firmware file:
lStack: This is the main runtime code for BlueCore. There are two versions of stack, one
contains allstack layers up to HCI, plus an HCI version of the Virtual Machine (VM); the other
containsstacklayers up to HCI, plus L2CAP, RFCOMM, SDP and the Virtual Machine (an
RFCOMM version). Both stack versions uses both program and data space.
lDFU Driver: Device Firmware Upgrade allows for updating the stack, Persistent Store and VM
application over the HCI transport. You cannot use a DFU operation to upgrade the DFU driver.
lPersistent Store: The Persistent Store holds all the setup and calibration information for
module .Most settings are design-specific, but some are module specific.
BlueFlash firmware is held in *.xpv files (which correspond to the program space) and *.xdv files (which
correspond to the data space). There is a single *.dfu file for DFU. Not all files contain all firmware
components.
Downloading a firmware file only to flash memory overwrites the components contained in the file; all
others remain intact. This affects only the calibration information in the Persistent Store. Downloading to
flash memoryensures that you can return the module to a known calibrated state if the Persistent Store
becomes corrupted beyond repair.
If firmware with no Persistent Store component is downloaded onto a blank flash, the stack code will
create a new Persistent Store using default values suitable for use on a Casira module. However, some
keys will require calibration per module for optimal performance.
The Verify function compares the contents of a firmware file to the contents of flash memory and reports
anydifferences (comparing only components contained in the file).