Chapter 5 — Firmware Download
44 ED40 Decode Board Integration Guide
Dialog Between Host and Imager
/*host initiates download*/
host sends START_DOWNLOAD (OxAA)
/*imager requests number of blocks*/
imager sends NB_BLOCKS_RQ (Ox88)
/*host calculates number of blocks*/
host sends NB_BLOCKS (OxNN) (1 byte)
/*imager requests blocks*/
BLOCK_NUM = 1
While (BLOCK_NUM < NB_BLOCKS + 1)
{
/*imager requests blocks*/
imager sends BLOCK_RQ (Ox80)
imager sends BLOCK_NUM (OxNN)
/*host reads 256 bytes of block in flash driver file*/
host sends 256 bytes of block to imager
/*imager requests checksum of block*/
imager sends CHK_RQ (Ox7F)
/*host calculates checksum of block*/
host sends HOST_CHK (4 bytes)
/*increment block number if checksum OK*/
if (HOST_CHK = SE_CHK)
{BLOCK_NUM ++}
}
/*imager indicates driver download OK*/
imager sends DRV_DOWNLOAD_OK (OxBB)
/*flash driver ready to receive firmware download commands*/
When the imager requests a block, it sends the host two bytes (BLOCK_RQ and
BLOCK_NUM). Therefore, the UART of the host must be able to receive these
two bytes without a handshaking protocol.
If the host is transmitting data, the inter-character delay must be less than 200
milliseconds. If the delay is too long, the imager watchdog will automatically re
initialize the imager.
Types of Firmware Download File
Firmware download files are provided by Intermec (contact your Intermec
representative). There are two types of binary firmware download files:
• *.bin
• *.raw
The *.bin file contains a header and the *.raw file does not. The following table
shows the breakdown of the header in the *.bin file.
Note: The checksum calculation is at the end of this chapter.
Note: Intermec recommends using a *.bin firmware download file and verifying
that the firmware is compatible with your product before installation. This
avoids downloading firmware that will not work with your product.