192d4f04ed
a null pointer - due to optimization breaking.
26 lines
764 B
C
26 lines
764 B
C
#include "print.h"
|
|
|
|
__attribute((__always_inline__))
|
|
__attribute((__no_caller_saved_registers__))
|
|
char nibbleToHex(uint8_t n) {
|
|
return n > 9 ? (n - 10) + 'A' : n + '0';
|
|
}
|
|
__attribute((__always_inline__))
|
|
__attribute((__no_caller_saved_registers__))
|
|
void printByte(uint8_t v, uint16_t *buff) {
|
|
*(char *)&buff[0] = nibbleToHex((v >> 4) & 0xF);
|
|
*(char *)&buff[1] = nibbleToHex(v & 0xF);
|
|
}
|
|
__attribute((__always_inline__))
|
|
__attribute((__no_caller_saved_registers__))
|
|
void printWord(uint16_t v, uint16_t *buff) {
|
|
printByte(v >> 8, buff);
|
|
printByte(v, &buff[2]);
|
|
}
|
|
__attribute((__always_inline__))
|
|
__attribute((__no_caller_saved_registers__))
|
|
void printDword(uint32_t v, uint16_t *buff) {
|
|
printWord(v >> 16, buff);
|
|
printWord(v, &buff[4]);
|
|
}
|