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(); } }
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(); } }