Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-os-example-mbed5-blinky by
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
