prj to mdks
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "utils.h"
|
||||
#include "bsp_common.h"
|
||||
|
||||
const char Hex2Ascii[17] = "0123456789ABCDEF";
|
||||
|
||||
int hex_printf (const uint8_t *buff, int count)
|
||||
{
|
||||
uint32_t i = 0, j = 0;
|
||||
|
||||
char str_val[75] = {0};
|
||||
uint32_t index = 0;
|
||||
uint32_t str_index = 0;
|
||||
uint32_t cnt = (count+15)>>4;
|
||||
|
||||
if (count < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cnt > 16) {
|
||||
cnt = 16;
|
||||
//BSP_printf("!!! TOO LONG. ONLY SHOW HEAD 256 bytes !!!\n");
|
||||
}
|
||||
|
||||
for (i = 0; i < cnt; i++) {
|
||||
index = 0;
|
||||
str_index = 0;
|
||||
|
||||
for (j = 0; j < 16; j++) {
|
||||
if (j + (i << 4) < count) {
|
||||
str_val[index++] = Hex2Ascii[(buff[j + (i << 4)] & 0xF0) >> 4];
|
||||
str_val[index++] = Hex2Ascii[buff[j + (i << 4)] & 0xF];
|
||||
str_val[index++] = ' ';
|
||||
|
||||
} else {
|
||||
str_val[index++] = ' ';
|
||||
str_val[index++] = ' ';
|
||||
str_val[index++] = ' ';
|
||||
}
|
||||
}
|
||||
|
||||
index += str_index;
|
||||
str_val[index++] = '\0';
|
||||
str_val[index++] = '\0';
|
||||
printf("%s\r\n", str_val);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Name: CRC-16/XMODEM x16+x12+x5+1
|
||||
* Poly: 0x1021
|
||||
* Init: 0x0000
|
||||
* Refin: False
|
||||
* Refout: False
|
||||
* Xorout: 0x0000
|
||||
* Alias: CRC-16/ZMODEM,CRC-16/ACORN
|
||||
*****************************************************************************/
|
||||
uint16_t crc16_xmodem (uint8_t *data, uint16_t length)
|
||||
{
|
||||
uint8_t i;
|
||||
uint16_t crc = 0; // Initial value
|
||||
while(length--)
|
||||
{
|
||||
crc ^= (uint16_t)(*data++) << 8; // crc ^= (uint16_t)(*data)<<8; data++;
|
||||
for (i = 0; i < 8; ++i)
|
||||
{
|
||||
if ( crc & 0x8000 )
|
||||
crc = (crc << 1) ^ 0x1021;
|
||||
else
|
||||
crc <<= 1;
|
||||
}
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
uint32_t crc32_step (uint32_t in_crc, const void *buf, uint32_t size)
|
||||
{
|
||||
static uint32_t crc_table[256] = {0, 0,};
|
||||
uint32_t i = 0, j = 0, crc = 0;
|
||||
|
||||
if (!crc_table[1]) {
|
||||
for (i = 0; i < 256; i++) {
|
||||
crc = i;
|
||||
for (j = 0; j < 8; j++) {
|
||||
crc = (crc & 1) ? ((crc>>1)^0xEDB88320ul) : (crc>>1);
|
||||
}
|
||||
crc_table[i] = crc;
|
||||
}
|
||||
}
|
||||
|
||||
crc = in_crc ^ 0xFFFFFFFFul;
|
||||
for (i = 0; i < size; i++) {
|
||||
crc = crc_table[(crc ^ ((const uint8_t *)buf)[i]) & 0xFF]^(crc>>8);
|
||||
}
|
||||
|
||||
return crc ^ 0xFFFFFFFFul;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user