?? readflash.c
字號:
//------------------------------------------------------------------------------
// Revision History
// Date Author Activity ID Activity Headline
// 2007-03-13 Zhangpeifeng CEBD200045843 Modify Mdoc using hynix-h343
//------------------------------------------------------------------------------
#define CE_DRIVER_LAYER
#include "cedriver.h"
#include "flflash.h"
#define BT_PATA_SIZE (1*1024)
#define PARAGON_SIZE (64*1024)
BOOL SetTime(DWORD phonetime)
{
DWORD bytes;
HANDLE hDsk;
flBDKOperationInput bdk;
FLStatus flstatus;
BYTE *btpa = malloc(PARAGON_SIZE);
UINT32 i;
BYTE lpBuffer[32];
_ultoa(phonetime,lpBuffer,10);
bdk.partitionNumber= 1;
bdk.type = BDK_INIT_READ;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = EDC;
bdk.bdkStruct.oldSign[0] = 'B';
bdk.bdkStruct.oldSign[1] = 'T';
bdk.bdkStruct.oldSign[2] = 'P';
bdk.bdkStruct.oldSign[3] = 'A';
bdk.bdkStruct.startingBlock = 0;
bdk.bdkStruct.signOffset = 8;
hDsk = CreateFile(L"DSK2:",
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDsk == INVALID_HANDLE_VALUE)
{
RETAILMSG(1, (TEXT("\nSetContent OPEN DSK2 FAILED,Error is %d"),GetLastError()));
//return FALSE;
}
else
{
RETAILMSG(1, (TEXT("\nSetContent OPEN DSK2 SUCCESSED")));
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1 ,(TEXT("\nSetContent BDK_INIT_READ SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_READ FAILED---[0x%x]"),GetLastError()));
//return FALSE;
}
bdk.type = BDK_READ;
bdk.bdkStruct.bdkBuffer = btpa;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = ERASE_BEFORE_WRITE;
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(bdk),
&flstatus,
sizeof(flstatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_READ SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_READ FAILED")));
//return FALSE;
}
if (hDsk != INVALID_HANDLE_VALUE)
{
CloseHandle(hDsk);
}
}
for (i = 0; i < 32; i++)
{
btpa[i+BT_PATA_SIZE] = lpBuffer[i];
}
bdk.partitionNumber = 1;
bdk.type = BDK_INIT_WRITE;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = EDC;
bdk.bdkStruct.oldSign[0] = 'B';
bdk.bdkStruct.oldSign[1] = 'T';
bdk.bdkStruct.oldSign[2] = 'P';
bdk.bdkStruct.oldSign[3] = 'A';
bdk.bdkStruct.startingBlock = 0;
bdk.bdkStruct.signOffset = 8;
hDsk = CreateFile(L"DSK2:",
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDsk == INVALID_HANDLE_VALUE)
{
RETAILMSG(1,(TEXT("\nOPEN DSK2 FAILED")));
//return FALSE;
}
else
{
RETAILMSG(1,(TEXT("\nOPEN DSK2 SUCCESSED")));
RETAILMSG(1,(TEXT("\nioctl : %d bdk.type : %d, &bdk : 0x%x &(bdk.type) : 0x%x &(bdk.bdkStruct) : 0x%x"),FL_IOCTL_BDK_OPERATION,(FLByte)(bdk.type),&bdk,&(bdk.type),&(bdk.bdkStruct)));
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_WRITE SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_WRITE FAILED %d"), GetLastError()));
//return FALSE;
}
bdk.type = BDK_WRITE;
bdk.bdkStruct.bdkBuffer = btpa;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = ERASE_BEFORE_WRITE;
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_WRITE SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_WRITE FAILED")));
//return FALSE;
}
if (hDsk != INVALID_HANDLE_VALUE)
{
CloseHandle(hDsk);
}
}
free(btpa);
return TRUE;
}
DWORD GetTime(void)
{
DWORD phonetime;
DWORD bytes;
HANDLE hDsk;
flBDKOperationInput bdk;
FLStatus flstatus;
BYTE *btpa = malloc(PARAGON_SIZE);
UINT32 i;
BYTE lpBuffer[32];
bdk.partitionNumber= 1;
bdk.type = BDK_INIT_READ;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = EDC;
bdk.bdkStruct.oldSign[0] = 'B';
bdk.bdkStruct.oldSign[1] = 'T';
bdk.bdkStruct.oldSign[2] = 'P';
bdk.bdkStruct.oldSign[3] = 'A';
bdk.bdkStruct.startingBlock = 0;
bdk.bdkStruct.signOffset = 8;
hDsk = CreateFile(L"DSK2:",
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDsk == INVALID_HANDLE_VALUE)
{
RETAILMSG(1, (TEXT("\nSetContent OPEN DSK2 FAILED")));
//return FALSE;
}
else
{
RETAILMSG(1, (TEXT("\nSetContent OPEN DSK2 SUCCESSED")));
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1 ,(TEXT("\nSetContent BDK_INIT_READ SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_READ FAILED---[0x%x]"),GetLastError()));
//return FALSE;
}
bdk.type = BDK_READ;
bdk.bdkStruct.bdkBuffer = btpa;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = ERASE_BEFORE_WRITE;
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(bdk),
&flstatus,
sizeof(flstatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_READ SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_READ FAILED")));
//return FALSE;
}
if (hDsk != INVALID_HANDLE_VALUE)
{
CloseHandle(hDsk);
}
}
for (i = 0; i < 32; i++)
{
lpBuffer[i] = btpa[i+BT_PATA_SIZE];
}
phonetime = strtoul(lpBuffer,NULL,10);
RETAILMSG(1,(TEXT("\nPHONE TIME IS %d"),phonetime));
bdk.partitionNumber = 1;
bdk.type = BDK_INIT_WRITE;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = EDC;
bdk.bdkStruct.oldSign[0] = 'B';
bdk.bdkStruct.oldSign[1] = 'T';
bdk.bdkStruct.oldSign[2] = 'P';
bdk.bdkStruct.oldSign[3] = 'A';
bdk.bdkStruct.startingBlock = 0;
bdk.bdkStruct.signOffset = 8;
hDsk = CreateFile(L"DSK2:",
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDsk == INVALID_HANDLE_VALUE)
{
RETAILMSG(1,(TEXT("\nOPEN DSK2 FAILED")));
//return FALSE;
}
else
{
RETAILMSG(1,(TEXT("\nOPEN DSK2 SUCCESSED")));
RETAILMSG(1,(TEXT("\nioctl : %d bdk.type : %d, &bdk : 0x%x &(bdk.type) : 0x%x &(bdk.bdkStruct) : 0x%x"),FL_IOCTL_BDK_OPERATION,(FLByte)(bdk.type),&bdk,&(bdk.type),&(bdk.bdkStruct)));
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_WRITE SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_INIT_WRITE FAILED %d"), GetLastError()));
//return FALSE;
}
bdk.type = BDK_WRITE;
bdk.bdkStruct.bdkBuffer = btpa;
bdk.bdkStruct.length = PARAGON_SIZE;
bdk.bdkStruct.flags = ERASE_BEFORE_WRITE;
if (DeviceIoControl(hDsk,
FL_IOCTL_BDK_OPERATION,
&bdk,
sizeof(flBDKOperationInput),
&flstatus,
sizeof(FLStatus),
&bytes,
NULL)
&& flstatus == flOK)
{
RETAILMSG(1, (TEXT("\nSetContent BDK_WRITE SUCCESSED")));
}
else
{
RETAILMSG(1, (TEXT("\nSetContent BDK_WRITE FAILED")));
//return FALSE;
}
if (hDsk != INVALID_HANDLE_VALUE)
{
CloseHandle(hDsk);
}
}
free(btpa);
return phonetime;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -