Bootloader Code Listing (V3.0)
{
BlockHeader.DestAddr = GetLongData();
for(I = 1; I <= BlockHeader.BlockSize; I++)
{
wordData = (*GetWordData)();
*(Uint16 *)BlockHeader.DestAddr++ = wordData;
}
// Get the size of the next block
BlockHeader.BlockSize = (*GetWordData)();
}
return;
}
//#################################################
// Uint32 GetLongData(void)
//-----------------------------------------------------
// This routine fetches a 32-bit value from the peripheral
// input stream.
//-----------------------------------------------------
Uint32 GetLongData()
{
Uint32 longData;
// Fetch the upper ? of the 32-bit value
longData = ( (Uint32)(*GetWordData)() << 16);
// Fetch the lower ? of the 32-bit value
longData |= (Uint32)(*GetWordData)();
return longData;
}
//#################################################
// void Read_ReservedFn(void)
//-------------------------------------------------
// This function reads 8 reserved words in the header.
// None of these reserved words are used by the
// this boot loader at this time, they may be used in
// future devices for enhancements. Loaders that use
// these words use their own read function.
//-------------------------------------------------
void ReadReservedFn()
{
Uint16 I;
// Read and discard the 8 reserved words.
for(I = 1; I <= 8; I++)
{
GetWordData();
}
return;
}
66 Bootloader Code Overview SPRU722C – November 2004 – Revised October 2006
Submit Documentation Feedback