ЕМНИП он 2кб, а не 8кб. Во всяком случае чтение и запись происходит именно блоком по 2кб.
По факут там 4кб, и в целях экономии ячеек памяти они чередуются. Сначала в первые 2кб запись, потом во вторые 2кб.
И еще вариант.Код:/** * eVic VTC Mini V3.00 dataflash structure for Hex Workshop. */ struct Dataflash_t { unsigned __int32 checksum; unsigned __int32 hwVersion; unsigned __int8 isInitialized; unsigned __int8 bootFlag; /** * 0: Temp Ni * 1: Temp Ti * 2: Temp SS316 * 3: TCR M1 * 4: Power * 5: Bypass */ unsigned __int16 mode; unsigned __int16 power; unsigned __int16 temp; unsigned __int16 tempControlPower; unsigned __int16 powerModeVolts; unsigned __int8 unk_14[3]; unsigned __int8 isTempCelsius; unsigned __int16 resistance; unsigned __int8 unk_1A[8]; /** * On dataflash re-initialization the following happens (2.00 addresses): * sub_2FC8: 42 const bytes -> unk_const_22 (ends at fmcUID + 0xA) * sub_3010: 42 const bytes -> fmcUID + 0xA (ends at unk_76) * sub_2FEC: 42 const bytes -> unk_const_84 (ends at 0xAE) */ unsigned __int8 unk_const_22[32]; unsigned __int32 fmcUID[3]; unsigned __int32 fmcUCID[4]; unsigned __int8 unk_const_5E[24]; unsigned __int16 unk_76; unsigned __int32 status; unsigned __int8 unk_76[8]; unsigned __int8 unk_const_84[2]; unsigned __int16 tcrM1; unsigned __int16 tcrM2; unsigned __int16 tcrM3; unsigned __int8 unk_const_8C[34]; unsigned __int8 unk_AE[82]; unsigned __int32 fwVersion; unsigned __int32 unk_104; unsigned __int32 fmcCID; unsigned __int32 fmcPIDaddr0; unsigned __int32 fmcPID; unsigned __int8 unk_114[36]; char productId[4]; unsigned __int32 unk_13C; };
Код:000 int checksum 004 int mystery 008 int hwver 018 char display (puff/time/amp) 00C char mystery 00D char boot_ldrom 00E char mode 00F char mystery 010 short power 012 short temp 014 short temp_power 07C char flags1 08A short tcr_m1 08C short tcr_m2 08E short tcr_m3 104 int fwver 134 int puff 138 int time 13C int devid flags1 bit 0 = on/off bit 1 = key lock bit 2 = flip screen