Example #1
0
static void mcsdl_program_flash_part( UINT8 *pData, UINT8 ucLength )
{
	int     i;
	UINT32	data;

	for( i=0; i< ucLength; i+=4 ){

		//---------------------------------
		//	Body
		//---------------------------------
		data  = (UINT32)pData[i+0] << 24;
		data |= (UINT32)pData[i+1] << 16;
		data |= (UINT32)pData[i+2] << 8;
		data |= (UINT32)pData[i+3] << 0;

		mcsdl_write_bits(data, 32);

		mcsdl_scl_toggle_twice();
	}

	//---------------------------------
	//	Intermission : Every 32 Words
	//---------------------------------
	if( i == MELFAS_TRANSFER_LENGTH ){

		mcsdl_scl_toggle_twice();
		mcsdl_scl_toggle_twice();

	}
}
Example #2
0
static void mcsdl_program_flash_part( UINT8 *pData, UINT8 ucLength )
{
	int     i;
	UINT32	data;

	for( i=0; i< ucLength; i+=4 ){

		//---------------------------------
		//	Body
		//---------------------------------

#ifdef ENABLE_LITTLE_ENDIAN
				data  = (UINT32)pData[i+0] << 24;
				data |= (UINT32)pData[i+1] << 16;
				data |= (UINT32)pData[i+2] << 8;
				data |= (UINT32)pData[i+3] << 0;
#else  // BIG_ENDIAN
				data  = (UINT32)pData[i+0] <<  0;
				data |= (UINT32)pData[i+1] <<  8;
				data |= (UINT32)pData[i+2] << 16;
				data |= (UINT32)pData[i+3] << 24;
#endif


//		printk("\ndata 0x%08X, ", data);
		mcsdl_write_bits(data, 32);

		mcsdl_scl_toggle_twice();
	}

	//---------------------------------
	//	Intermission : Every 32 Words
	//---------------------------------
	if( i == MELFAS_TRANSFER_LENGTH ){

		mcsdl_scl_toggle_twice();
		mcsdl_scl_toggle_twice();

	}
}