В примере неверно вычисляестя значение переменной Size:
Код
Size=(*(u16*)((u32)SB_Data+0x28))+0x2C;
А если сделать так, то всё корректно:
Код
Size=(SB_Data[0x28]|(SB_Data[0x29]<<8))+0x2C;
Вот вся функция:
Код
void LoadData(const u8* Data)
{
u16 Size;
SB_Data=Data;
Size=(SB_Data[0x28]|(SB_Data[0x29]<<8))+0x2C;
//...
}
{
u16 Size;
SB_Data=Data;
Size=(SB_Data[0x28]|(SB_Data[0x29]<<8))+0x2C;
//...
}
Вот описание масива данных и вызов вышеобъявленной функции:
Код
const u8 SoundData[1000]=
{
0x01,0x02,......
}
//....
int main(void)
{
//...
LoadData(SoundData);
//...
}
{
0x01,0x02,......
}
//....
int main(void)
{
//...
LoadData(SoundData);
//...
}
Данных в программе очень много (указателей). В чём может быть дело? Неужели RealView загибается?