summaryrefslogtreecommitdiff
path: root/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write_hex.c
blob: f7aa9a4b2d7b49d722c4311b8168abfefe7f55b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* 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);
  }
}