summaryrefslogtreecommitdiff
path: root/bsp/gd32vf103v-eval/libraries/n22/stubs/write_hex.c
blob: 2f499b5ee55819e6c7f22870af021e5ab9bff659 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* See LICENSE of license details. */

#include <stdint.h>
#include <unistd.h>

void write_hex(int fd, unsigned long int hex) {
    uint8_t ii;
    uint8_t jj;
    char towrite;
    write(fd, "0x", 2);
    for (ii = sizeof(unsigned long int) * 2; ii > 0; ii--) {
        jj = ii - 1;
        uint8_t digit = ((hex & (0xF << (jj * 4))) >> (jj * 4));
        towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
        write(fd, &towrite, 1);
    }
}