/*
WFLASH2.C

This program illustrates how to write to the second flash on the LP31xx.
With a second flash installed, the program should print "test XXXXXXXX"
when the string at address XXXXXXXX is retrieved.

*/
#use eziolp31.lib

main() {
	auto char strbuf[50];
	auto unsigned count;
	struct _flashInfo pInfo;
   unsigned long cur_addr;
   int i;

	_GLOBAL_INIT();

  // check to see that 2nd flash exists
   if ( sysChk2ndFlash ( &pInfo ) != 0 ) {	//	check if the second flash exists
		printf( "Do not have 2nd Flash - cannot continue!!" );
		exit(0);							//	no second flash, exit program now
   }

   printf("The second flash has a sector size of %d bytes.\n",pInfo.sectorSize);

	hitwd();
	cur_addr = 0x40000;									//	start at 0x40000
	printf ( "Start test:\n" );
	for ( i = 0; i < 10; i++ ) {
		sprintf ( strbuf, "Test %08lx", cur_addr );	//	location dependent info
		sysRoot2FXmem( &pInfo, strbuf, cur_addr, 16 );	//	write to flash
		printf ( "\nwriting to 0x%08lx", cur_addr );		//	feedback on STDIO
		cur_addr += 16;										//	increment location
		hitwd();
	}
	hitwd();
	printf ( "\n\nreading from 2nd flash\n");
	hitwd();
	cur_addr = 0x40000;									//	start reading back
	for ( i = 0; i < 10; i++ ) {
		hitwd();
		xmem2root ( cur_addr, strbuf, 16 );
		printf ( "\n0x%08lx reads \"%s\"", cur_addr, strbuf );
		cur_addr += 16;
	}

}
