Hi all,
today I updated WinEC700 to December 2013 releases but i'm not able to compile the OS image.
I have the folowing error:
BUILD: [02:0000007214:ERRORE] Error(s) in directory "C:\WINCE700\platform\common\src\soc\COMMON_FSL_V3\SDBUS\". {log="C:\WINCE700\build.log(24065)"}
BUILD: [02:0000007215:ERRORE] c:\wince700\platform\common\src\soc\common_fsl_v3\sdbus\sdbus.cpp(1899) : error C2440: '=' : cannot convert from 'void (__cdecl *)(SD_DEVICE_HANDLE)' to 'PSD_IO_DISCONNECT_INTERRUPT' {log="C:\WINCE700\build.log(24066)"}
The error refers to this line code:
pFunctions->pSDIODisconnectInterrupt = SDIODisconnectInterrupt__X;
where
PSD_IO_DISCONNECT_INTERRUPT pSDIODisconnectInterrupt;
and
// SDIODisconnectInterrupt
typedef SD_API_STATUS (*PSD_IO_DISCONNECT_INTERRUPT) (SD_DEVICE_HANDLE);
But SDIODisconnectInterrupt__X is defined as
VOID SDIODisconnectInterrupt__X(SD_DEVICE_HANDLE hDevice)
Of course, there is a different return type.
Anyone have the same problem?
I guess the solution could be change the SDIODisconnectInterrupt__X() prototype, since it is contained in the COMMON_FSL_V3 folder and not in a WinEC common file, is it ??
you can try this pFunctionspFunctions->pSDIODisconnectInterrupt = (PSD_IO_DISCONNECT_INTERRUPT)SDIODisconnectInterrupt__X;
I don't like it, cause they have a different return types, i don't want to have eventually stack misalignments.
I changed the prototype and i returned the 'status' variable (otherwise it is not used, i'm wondering if it is an error ..).