1 #ifndef DEFINE_HEADER 2 #define DEFINE_HEADER 3 4 typedef unsigned int u_int32; 5 typedef unsigned char u_int8; 6 typedef unsigned char BYTE; 7 typedef signed char CHAR; 8 typedef BYTE *PBYTE; 9 typedef unsigned char UCHAR; 10 typedef unsigned short WCHAR; 11 typedef unsigned short USHORT; 12 typedef unsigned int UINT; 13 typedef unsigned int DWORD; 14 15 typedef char tchar; 16 17 #define LBA_TRANSFER_SIZE 16*1024 18 #define LBA_LOOP_SIZE 1024*1024 19 20 #define MAX_PACKAGE_FILES 16 21 #define RKIMAGE_TAG 0x46414B52 22 #define PARTNAME_BOOTLOADER "bootloader" 23 #define PARTNAME_PARAMETER "parameter" 24 #define PARTNAME_KERNEL "kernel" 25 #define PARTNAME_BOOT "boot" 26 #define PARTNAME_RECOVERY "recovery" 27 #define PARTNAME_SYSTEM "system" 28 #define PARTNAME_MISC "misc" 29 #define PARTNAME_BACKUP "backup" 30 #define PARTNAME_USERDATA "userdata" 31 #define PARTNAME_USER "user" 32 33 #define MAX_MANUFACTURER 60 34 #define MAX_MACHINE_INFO 30 35 #define MAX_MACHINE_MODEL 34 36 #define RELATIVE_PATH 60 37 #define PART_NAME 32 38 #define IMAGE_RESERVED_SIZE 61 39 40 typedef enum 41 { 42 RKNONE_DEVICE=0, 43 RK27_DEVICE=0x10, 44 RKCAYMAN_DEVICE, 45 RK28_DEVICE=0x20, 46 RK281X_DEVICE, 47 RKPANDA_DEVICE, 48 RKNANO_DEVICE=0x30, 49 RKSMART_DEVICE, 50 RKCROWN_DEVICE=0x40, 51 RK29_DEVICE=0x50, 52 RK292X_DEVICE, 53 RK30_DEVICE=0x60, 54 RK30B_DEVICE, 55 RK31_DEVICE=0x70, 56 RK32_DEVICE=0x80 57 }ENUM_RKDEVICE_TYPE; 58 59 typedef enum 60 { 61 RK_OS=0, 62 ANDROID_OS=0x1 63 }ENUM_OS_TYPE; 64 65 #pragma pack(1) 66 typedef struct 67 { 68 char name[PART_NAME];// �������� 69 char file[RELATIVE_PATH];// ���·��������ȡ�ļ�ʱ�õ� 70 unsigned int part_size;//����ռ�������� 71 unsigned int offset;// �ļ���Image�е�ƫ�� 72 unsigned int flash_offset;// ��д��Flash�е�λ��(��sectorΪ��λ) 73 unsigned int usespace;// �ļ�ռ�ÿռ䣨��PAGE����) 74 unsigned int size;// �ֽ�����ʵ���ļ���С 75 }STRUCT_RKIMAGE_ITEM,*PSTRUCT_RKIMAGE_ITEM; 76 77 typedef struct 78 { 79 USHORT usYear; 80 BYTE ucMonth; 81 BYTE ucDay; 82 BYTE ucHour; 83 BYTE ucMinute; 84 BYTE ucSecond; 85 }STRUCT_RKTIME,*PSTRUCT_RKTIME; 86 87 typedef struct 88 { 89 char szItemName[20]; 90 UINT uiItemOffset; 91 UINT uiItemSize; 92 }STRUCT_PARAM_ITEM,*PSTRUCT_PARAM_ITEM; 93 94 typedef struct 95 { 96 char szItemName[20]; 97 char szItemValue[256]; 98 }STRUCT_CONFIG_ITEM,*PSTRUCT_CONFIG_ITEM; 99 100 typedef struct 101 { 102 UINT uiTag; 103 USHORT usSize; 104 DWORD dwVersion; 105 DWORD dwMergeVersion; 106 STRUCT_RKTIME stReleaseTime; 107 ENUM_RKDEVICE_TYPE emSupportChip; 108 DWORD dwBootOffset; 109 DWORD dwBootSize; 110 DWORD dwFWOffset; 111 DWORD dwFWSize; 112 BYTE reserved[IMAGE_RESERVED_SIZE]; 113 }STRUCT_RKIMAGE_HEAD,*PSTRUCT_RKIMAGE_HEAD; 114 115 typedef struct tagRKIMAGE_HDR 116 { 117 unsigned int tag; 118 unsigned int size;// �ļ���С������ĩβ��CRCУ���� 119 char machine_model[MAX_MACHINE_MODEL]; 120 char machine_info[MAX_MACHINE_INFO]; 121 char manufacturer[MAX_MANUFACTURER]; 122 unsigned int dwFWVer; 123 int item_count; 124 STRUCT_RKIMAGE_ITEM item[MAX_PACKAGE_FILES]; 125 }STRUCT_RKIMAGE_HDR,*PSTRUCT_RKIMAGE_HDR; 126 127 #pragma pack() 128 129 #endif 130