5 //extern unsigned short m_crc16ccitt;
7 uint8_t patchBuf[SIZE_HASH_BUFFER];
10 int db_ascii_to_hex(char* num_str, unsigned long* hex_num)
17 if ((num_str[i] >= '0') && (num_str[i] <= '9'))
20 *hex_num += (num_str[i] - '0');
22 else if ((num_str[i] >= 'A') && (num_str[i] <= 'F'))
25 *hex_num += (num_str[i] - 'A' + 10);
27 else if ((num_str[i] >= 'a') && (num_str[i] <= 'f'))
30 *hex_num += (num_str[i] - 'a' + 10);
43 void dump_hex(uint8_t *buf, uint16_t size)
52 else if( (i>0) && (i%8==0) )
55 printf("%02x ", buf[i]);
61 BOOLEAN gen_patch_item(struct rom_patch_st *patch, uint8_t *file_name)
63 BOOLEAN retVal = FALSE;
68 if((in = fopen(file_name,"rb")) != NULL)
77 uRead = fread(ptr, 1, SIZE_HASH_BUFFER, in);
79 // debug to dump the data we read
80 //dump_hex(ptr, uRead);
84 if(uRead != SIZE_HASH_BUFFER)
88 memcpy(patch->fun, patchBuf, patch->len);
89 patch->crc16 = patch->len; // bugs? workaround?
99 BOOLEAN _patch_init(struct rom_patch_st *patch)
101 // init the pact_pack
102 //memset((uint8_t *)patch_patck, 0x0, sizeof(struct rom_patch_pack_st));
112 void _patch_dump(struct rom_patch_st *patch)
114 printf(" -----------------------------\n\r");
115 printf(" patch code crc: 0x%04x\n\r", patch->crc16);
116 printf(" patch code size: %d\n\r", patch->len);
117 printf(" patch ld_addr: 0x%08x\n\r", patch->ld_addr);
118 printf(" patch fun_addr: 0x%08x\n\r", patch->fun_addr);
119 printf(" -----------------------------\n\r");
123 BOOLEAN _patch_oepn(uint8_t *buf, uint8_t *mFile)
126 BOOLEAN retVal = FALSE;
129 if((in = fopen(mFile,"rb")) != NULL)
131 printf("%s is opened successful!\n\r", mFile);
139 uRead = fread(buf+offset, 1, SIZE_HASH_BUFFER, in);
141 // debug to dump the data we read
142 //dump_hex(buf+offset, uRead);
145 if(uRead != SIZE_HASH_BUFFER) break;
155 uint32_t _patch_append(uint8_t *buf, struct rom_patch_st *patch)
158 memcpy(buf, (uint8_t *)patch, (sizeof(struct rom_patch_st)-4));
159 memcpy(buf+(sizeof(struct rom_patch_st)-4), patch->fun, patch->len);