1樓
wangxinxin 發(fā)表于:2010-12-6 13:29:20
1、MTK與SPR屬于兩個不同的手機(jī)硬件平臺,平臺的大小端模式不同
MTK:小端模式
SPR:大端模式,即網(wǎng)絡(luò)字節(jié)序
開發(fā)過程中需要注意兩方面:
IO:IO主要是已非字節(jié)方式讀取外部文件時,需要對讀入的2個字節(jié)short類型或者4字節(jié)的int類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
網(wǎng)絡(luò)通信:網(wǎng)絡(luò)收發(fā)的數(shù)據(jù)也與IO類似,MTK需要對2個字節(jié)short類型或者4字節(jié)的int類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)序。
復(fù)制代碼
uint32 mrc_ntohl(uint32 value)
{
#ifdef BIG_ENDIAN
return value;
#else
uint32 ret;
char* org;
char* dest;
org = (char*)&value;
dest= (char*)&ret;
dest[0] = org[3];
dest[1] = org[2];
dest[2] = org[1];
dest[3] = org[0];
return ret;
#endif
}
uint16 mrc_ntohs(uint16 value)
{
#ifdef BIG_ENDIAN
return value;
#else
uint16 ret;
char* org;
char* dest;
org = (char*)&value;
dest= (char*)&ret;
dest[0] = org[1];
dest[1] = org[0];
return ret;
#endif
}
2、mpr文件打包方式
MTK與SPR打包方式區(qū)別在于mpr工程文件的寫法bmp_mode,MTK是bmp_mode=normal,SPR是bmp_mode=spreadtrum
[config_mtk240]
define=mak_plat=MTK,RAM=550,mak_lcd=240X320,mak_ver=1008,mak_date=0611,_240X320_,_EX_M_
output=START_GTGQ_($mak_plat)_($RAM)K_($mak_lcd)_FONT_KEY_UP_V($mak_ver)_($mak_date)_FREE.mrp
bmp_mode=normal
[config_spr240]
define=mak_plat=SPR,RAM=550,mak_lcd=240X320,mak_ver=1006,mak_date=0610,_240X320_,_OVERSEA_,BIG_ENDIAN
output=START_GTGQ_($mak_plat)_($RAM)K_($mak_lcd)_FONT_KEY_UP_V($mak_ver)_($mak_date)_OVERSEA(FREE).mrp
bmp_mode=spreadtrum