Чтение rma области dvd-r/-rw диска |
13-06-2025 |
memcpy((void *)&Update_Counter, RMD + 0x800, 4);
Update_Counter = __swab32(Update_Counter);
memcpy((void *)&F3_RMD_Set_Pointer, (RMD + 4 + 0x800), 4);
F3_RMD_Set_Pointer = __swab32(F3_RMD_Set_Pointer);
*((__u8 *)&EOC) = *(RMD + 13 + 0x800);
*((__u8 *)&EOC + 1) = *(RMD + 12 + 0x800);
printf(“Format 2 RMD Set Field 1\n”);
printf("Update Counter: %u\n", Update_Counter);
printf("Format 3 RMD Set Pointer: %u\n", F3_RMD_Set_Pointer);
printf("Erase Operation Counter: %d\n", EOC);
/* Field #2, 3-й сектор RMD блока */
erase_code = RMD[0 + 0x1000];
memcpy((void *)&EI1, RMD + 2 + 0x1000, 4);
EI1 = __swab32(EI1);
memcpy((void *)&EI2, RMD + 6 + 0x1000, 4);
int read_RMA()
{
#define SIZE 6152 // 2048 * 3 (3 сектора: Field 0, 1, 2) и 8 байт заголовка
#define SIZE1 2056 // 2048 (1 сектор) и 8 байт заголовка
int i = 0, n = 0, k = 0;
__u8 read_dvd_struct_cmd[12];
__u8 buff[SIZE]; // буфер для данных
__u8 *RMD = buff + 8; // указатель на начало RMD области
EI2 = __swab32(EI2);
printf(“Format 2 RMD Set Field 2\n”);
printf("Erase Operation Code: %d\n", erase_code);
printf("Erase Information 1: %u\n", EI1);
printf("Erase Information 2: %u\n\n", EI2);
}
Dvd+rw
Накопители на сменных магнитных и оптических дисках
Ritmix rdf-802: фоторамка и прикроватный видеоплеер
Проверяют рабочий режим микросхемы
Существует несколько способов первичной прошивки чистой микросхемы