You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
// структура описания заголовка раздела
|
|
|
|
struct __attribute__ ((__packed__)) pheader {
|
|
|
|
uint32_t magic; // 0xa55aaa55
|
|
|
|
uint32_t hdsize; // размер заголовка
|
|
|
|
uint32_t hdversion;
|
|
|
|
uint8_t unlock[8];
|
|
|
|
uint32_t code; // тип раздела
|
|
|
|
uint32_t psize; // разме поля данных
|
|
|
|
uint8_t date[16];
|
|
|
|
uint8_t time[16]; // дата-время сборки прошивки
|
|
|
|
uint8_t version[32]; // версия пршоивки
|
|
|
|
uint16_t crc; // CRC заголовка
|
|
|
|
uint32_t blocksize; // размер блока CRC образа прошивки
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Структура описания таблицы разделов
|
|
|
|
|
|
|
|
struct ptb_t{
|
|
|
|
unsigned char pname[20]; // буквенное имя раздела
|
|
|
|
struct pheader hd; // образ заголовка
|
|
|
|
uint16_t* csumblock; // блок контрольных сумм
|
|
|
|
uint8_t* pimage; // образ раздела
|
|
|
|
uint32_t offset; // смещение в файле до начала раздела
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
int findparts(FILE* in);
|
|
|
|
void find_pname(unsigned int id,unsigned char* pname);
|
|
|
|
void findfiles (char* fdir);
|
|
|
|
uint32_t psize(int n);
|