Download View - Onset

Transcript
Section 7 - Application Notes for the Model 8
ANSI-C
Tattletale Installation and Operation Manual
FlashBadAddress,
flashBadID,
NotErased,
NoMatch
} Flasherr;
FlashErr
FlashID(ushort *startAddr, ushort *mfr, ushort *device)={
0x207c,RMSHI,RMSLO,0x4e90 };
FlashErr
FBurnBlock(register ushort *srcAddr, register ushort
*flashAddr)={ 0x207c,RMSHI,RMSLO,0x4e90 };
FlashErr
FBurnBlockMove(register ushort *srcAddr, register long block);
FlashErr
FlashErr
FlashErr
FlashErr
FlashErr
GetFlashID(void);
BlockErase(long block);
BlockErased(long block);
BlockWrite(long block, ushort *RamAddress);
BlockVerify(long block, ushort *RamAddress);
int
void
BlockDisplay(long block);
DisplayFlashMap(void);
// globals
static ushort RamArray[WORDS_PER_SECT];
static ushort *RamAddress;
/******************************************************************************
**
MAIN
**
******************************************************************************/
main()
{
int index;
ushort* pointer = (ushort*) 0x30000;
ulong blocknum=1000;
char
cmd = 'M';
for (index = 0; index < WORDS_PER_SECT; index++)
RamArray[index] = index | (index<<8);
RamAddress = RamArray;
InitTT8(NO_WATCHDOG,TT8_TPU);
loop:
QueryChar(
"\n\n\t<S>elect Block\
\n\t<W>rite Block\
\n\t<E>rase Block\
\n\t<C>heck Block\
\n\t<R>ead Block\
\n\t<M>ap
Flash\
\n\t<F>lash ID\
\n\t<Q>uit\
\n\t default =" , cmd, "SWECRMFQ", &cmd);
printf("\n");
switch (cmd)
{
case 'S' :
if (!QueryNum("\nEnter Block Number","%ld","%ld",&blocknum))
Reset();;
break;
case 'W' :
if (BlockErased(blocknum))
{
printf("\nblock %ld not erased",blocknum);
Page 7-12
Onset Computer Corporation - Model 8 with C
D-3285-C