www.ti.com
Bootloader Code Listing (V3.0)
// TI File $Revision: /main/2 $
// Checkin $Date: January 10, 2005
14:39:41 $
//###########################################################################
//
// FILE:
Shared_Boot.c
//
// TITLE:
280x Boot loader shared functions
//
// Functions:
//
//
void
CopyData(void)
//
Uint32 GetLongData(void)
//
void ReadReservedFn(void)
//
//###########################################################################
// $TI Release:$
// $Release Date:$
//###########################################################################
#include "DSP280x_Device.h"
#include "280x_Boot.h"
// GetWordData is a pointer to the function that interfaces to the peripheral.
// Each loader assigns this pointer to it's particular GetWordData function.
uint16fptr GetWordData;
// Function prototypes
Uint32 GetLongData();
void
CopyData(void);
void ReadReservedFn(void);
//#################################################
// void CopyData(void)
//-----------------------------------------------------
// This routine copies multiple blocks of data from the host
// to the specified RAM locations.
There is no error
// checking on any of the destination addresses.
// That is it is assumed all addresses and block size
// values are correct.
//
// Multiple blocks of data are copied until a block
// size of 00 00 is encountered.
//
//-----------------------------------------------------
void CopyData()
{
struct HEADER {
Uint16 BlockSize;
Uint32 DestAddr;
} BlockHeader;
Uint16 wordData;
Uint16 I;
// Get the size in words of the first block
BlockHeader.BlockSize = (*GetWordData)();
// While the block size is > 0 copy the data
// to the DestAddr.
There is no error checking
// as it is assumed the DestAddr is a valid
// memory location
while(BlockHeader.BlockSize != (Uint16)0x0000)
SPRU722C – November 2004 – Revised October 2006
Bootloader Code Overview
65