bowen liu
/
mbed-os-example-blinky
ex
Fork of mbed-os-example-mbed5-blinky by
Embed:
(wiki syntax)
Show/hide line numbers
pack_include.h
00001 00002 #ifndef _MBED_OTA_PACK_INCLUDE_ 00003 #define _MBED_OTA_PACK_INCLUDE_ 00004 #include <stdint.h> 00005 00006 #define KEY_LEN 128 00007 00008 #define _DEBUG_ 00009 //#define _DEBUG_OUT_ 00010 00011 #ifndef _DEBUG_OUT_ 00012 #define MBEDPACK_DEBUG_PRINT bca_printf 00013 #else 00014 #define MBEDPACK_DEBUG_PRINT printf 00015 #endif 00016 00017 /// 00018 /// package header 00019 typedef struct _package_header { 00020 00021 /// 00022 /// 'mbed' verify tag 00023 unsigned char tag[4]; 00024 00025 /// 00026 /// package header size 00027 uint32_t header_size; 00028 00029 /// 00030 /// package signature size : 1024 bits 00031 uint32_t package_sig_size; 00032 /// 00033 /// package signature : include meta.json and all modules 00034 unsigned char package_sig[KEY_LEN]; 00035 00036 /// 00037 /// meta.json signature size : 1024 bits 00038 uint32_t meta_sig_size; 00039 /// 00040 /// meta.json signature 00041 unsigned char meta_sig[KEY_LEN]; 00042 00043 /// 00044 /// meta.json size : used for decompress meta.json from package body 00045 uint32_t meta_size; 00046 00047 /// 00048 /// package size before decompress 00049 uint32_t ori_package_size; 00050 00051 } package_header_t; 00052 00053 /// 00054 /// all modules included in mbed package is 'js' and mbed executable '.bin' file 00055 typedef enum _module_type { 00056 ModuleTypeALL, 00057 ModuleTypeJS, 00058 ModuleTypeSO, 00059 ModuleTypeBIN, 00060 ModuleTypeJSON, 00061 ModuleTypeIMG 00062 } module_type_t; 00063 00064 00065 typedef struct _file_type_pair { 00066 char* string; 00067 module_type_t type; 00068 } file_type; 00069 00070 00071 typedef enum _package_type { 00072 PackageTypeApp, 00073 PackageTypeOS, 00074 PackageTypeProfile, 00075 PackageTypeUnknown 00076 } package_type_t; 00077 /* 00078 typedef enum { 00079 false = 0, 00080 true 00081 } bool;*/ 00082 00083 /* 00084 /// 00085 /// package body modules info excluding meta.json 00086 typedef struct _module_info { 00087 00088 /// 00089 /// module name : xx.js / xx.bin 00090 unsigned char* name; 00091 00092 /// 00093 /// module type : js / bin 00094 module_type_t type; 00095 00096 uint32_t module_size; 00097 uint8_t update; 00098 unsigned char* version; 00099 unsigned char* hw_version; 00100 00101 /// 00102 /// module data 00103 unsigned char* data; 00104 } module_info_t; 00105 00106 /// 00107 /// decompress info : used for extract meta data and modules array data 00108 typedef struct _decompress_info { 00109 00110 /// 00111 /// decompressed meta data size 00112 uint32_t decompress_meta_data_size; 00113 /// 00114 /// decompressed meta data from package body 00115 unsigned char* decompress_meta_data; 00116 00117 /// 00118 /// decompressed modules array data size 00119 uint32_t decompress_module_data_size; 00120 /// 00121 /// decompressed modules array data from package body 00122 unsigned char* decompress_module_data; 00123 } decompress_info_t; 00124 */ 00125 00126 00127 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 00128 typedef struct _module_info { 00129 00130 /// 00131 /// module name : xx.js / xx.bin 00132 unsigned char* name; 00133 00134 /// 00135 /// module type : js / bin 00136 module_type_t type; 00137 00138 uint32_t module_size; 00139 uint8_t update; 00140 unsigned char* version; 00141 unsigned char* hw_version; 00142 uint32_t offset; // offset from file begin 00143 00144 } module_info_t; 00145 00146 /// 00147 /// meta info : used for extract meta data and modules array data 00148 typedef struct _meta_info { 00149 00150 /// 00151 /// decompressed meta data size 00152 uint32_t meta_data_size; 00153 00154 /// 00155 /// decompressed module data offset 00156 uint32_t module_data_offset; 00157 00158 /// 00159 /// decompressed meta data 00160 unsigned char* meta_data; 00161 00162 /// 00163 /// json object 00164 void* meta_object; 00165 } meta_info_t; 00166 00167 #endif 00168 00169
Generated on Tue Jul 12 2022 16:28:53 by 1.7.2