static void hex_to_str(uint8_t *source, uint32_t len, uint8_t *target)
{
uint8_t ddl, ddh;
uint32_t i;

for (i = 0; i < len; i++)
{
ddh = ('0' + source[i] / 16);
ddl = ('0' + source[i] % 16);

if (ddh > '9')
ddh = (ddh + ('a' - '9' - 1));
if (ddl > '9')
ddl = (ddl + ('a' - '9' - 1));

target[i * 2] = ddh;
target[i * 2 + 1] = ddl;
}
target[len] = '\0';
}