mirror of
https://github.com/micropython/micropython.git
synced 2026-01-05 11:40:18 +01:00
shared/tinyusb: Add a helper for hex string conversion.
Change the rp2 and renesas-ra ports to use the helper function. Saves copy-pasta, at the small cost of one more function call in the firmware (if not using LTO). This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
committed by
Damien George
parent
5e3f0e7f85
commit
f567a9255a
@@ -62,4 +62,14 @@ static void mp_usbd_task_callback(mp_sched_node_t *node) {
|
||||
mp_usbd_task();
|
||||
}
|
||||
|
||||
void mp_usbd_hex_str(char *out_str, const uint8_t *bytes, size_t bytes_len) {
|
||||
size_t hex_len = bytes_len * 2;
|
||||
for (int i = 0; i < hex_len; i += 2) {
|
||||
static const char *hexdig = "0123456789abcdef";
|
||||
out_str[i] = hexdig[bytes[i / 2] >> 4];
|
||||
out_str[i + 1] = hexdig[bytes[i / 2] & 0x0f];
|
||||
}
|
||||
out_str[hex_len] = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -36,4 +36,9 @@ void mp_usbd_task(void);
|
||||
// Can write a string up to MICROPY_HW_USB_DESC_STR_MAX characters long, plus terminating byte.
|
||||
extern void mp_usbd_port_get_serial_number(char *buf);
|
||||
|
||||
// Most ports need to write a hexadecimal serial number from a byte array, this
|
||||
// is a helper function for this. out_str must be long enough to hold a string of total
|
||||
// length (2 * bytes_len + 1) (including NUL terminator).
|
||||
void mp_usbd_hex_str(char *out_str, const uint8_t *bytes, size_t bytes_len);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_TINYUSB_USBD_H
|
||||
|
||||
Reference in New Issue
Block a user