forked from Archive/PX4-Autopilot
board_serial: use a uint8_t buffer
we should not be using 'char' for binary APIs, as the C standard does not specify if it is signed or unsigned, so results may not be consistent
This commit is contained in:
parent
0d0c4c3626
commit
37b4cdfce2
|
@ -1784,7 +1784,7 @@ fmu_main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
if (!strcmp(verb, "id")) {
|
||||
char id[12];
|
||||
uint8_t id[12];
|
||||
(void)get_board_serial(id);
|
||||
|
||||
errx(0, "Board serial:\n %02X%02X%02X%02X %02X%02X%02X%02X %02X%02X%02X%02X",
|
||||
|
|
|
@ -44,11 +44,11 @@
|
|||
#include "board_config.h"
|
||||
#include "board_serial.h"
|
||||
|
||||
int get_board_serial(char *serialid)
|
||||
int get_board_serial(uint8_t *serialid)
|
||||
{
|
||||
const volatile unsigned *udid_ptr = (const unsigned *)UDID_START;
|
||||
const volatile uint32_t *udid_ptr = (const uint32_t *)UDID_START;
|
||||
union udid id;
|
||||
val_read((unsigned *)&id, udid_ptr, sizeof(id));
|
||||
val_read((uint32_t *)&id, udid_ptr, sizeof(id));
|
||||
|
||||
|
||||
/* Copy the serial from the chips non-write memory and swap endianess */
|
||||
|
@ -57,4 +57,4 @@ int get_board_serial(char *serialid)
|
|||
serialid[8] = id.data[11]; serialid[9] = id.data[10]; serialid[10] = id.data[9]; serialid[11] = id.data[8];
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,6 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
__EXPORT int get_board_serial(char *serialid);
|
||||
__EXPORT int get_board_serial(uint8_t *serialid);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -125,7 +125,7 @@ struct otp_lock {
|
|||
#pragma pack(push, 1)
|
||||
union udid {
|
||||
uint32_t serial[3];
|
||||
char data[12];
|
||||
uint8_t data[12];
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
Loading…
Reference in New Issue