diff --git a/micropython/bootloader/main.c b/micropython/bootloader/main.c index 139786b1..5a594463 100644 --- a/micropython/bootloader/main.c +++ b/micropython/bootloader/main.c @@ -35,14 +35,14 @@ void display_vendor(const uint8_t *vimg, const char *vstr, uint32_t vstr_len, ui } uint32_t datalen = *(uint32_t *)(vimg + 8); display_image(60, 32, w, h, vimg + 12, datalen); - display_text_center(120, 192, vstr, vstr_len, FONT_BOLD, 0xFFFF, 0x0000); - char ver_str[] = "v0.0.0.0"; + display_text_center(120, 192, vstr, vstr_len, FONT_BOLD, COLOR_WHITE, COLOR_BLACK); + char ver_str[] = "0.0.0.0"; // TODO: fixme - the following does not work for values >= 10 - ver_str[1] += fw_version & 0xFF; - ver_str[3] += (fw_version >> 8) & 0xFF; - ver_str[5] += (fw_version >> 16) & 0xFF; - ver_str[7] += (fw_version >> 24) & 0xFF; - display_text_center(120, 215, ver_str, -1, FONT_BOLD, 0x7BEF, 0x0000); + ver_str[0] += fw_version & 0xFF; + ver_str[2] += (fw_version >> 8) & 0xFF; + ver_str[4] += (fw_version >> 16) & 0xFF; + ver_str[6] += (fw_version >> 24) & 0xFF; + display_text_center(120, 215, ver_str, -1, FONT_BOLD, COLOR_GRAY64, COLOR_BLACK); display_refresh(); } diff --git a/micropython/extmod/modtrezorui/display.h b/micropython/extmod/modtrezorui/display.h index dde0fcaf..42e2fc78 100644 --- a/micropython/extmod/modtrezorui/display.h +++ b/micropython/extmod/modtrezorui/display.h @@ -25,6 +25,16 @@ #define LOADER_ICON_SIZE 64 +#define RGB16(R, G, B) ((R & 0xF8) << 8) | ((G & 0xFC) << 3) | ((B & 0xF8) >> 3) + +#define COLOR_WHITE RGB16(255, 255, 255) +#define COLOR_GRAY128 RGB16(127, 127, 127) +#define COLOR_GRAY64 RGB16(63, 63, 63) +#define COLOR_BLACK RGB16(0, 0, 0) +#define COLOR_RED128 RGB16(127, 0, 0) +#define COLOR_GREEN128 RGB16(0, 127, 0) +#define COLOR_BLUE128 RGB16(0, 0, 127) + // provided by port int display_init(void); diff --git a/micropython/trezorhal/common.c b/micropython/trezorhal/common.c index cbabcc90..4a668710 100644 --- a/micropython/trezorhal/common.c +++ b/micropython/trezorhal/common.c @@ -3,9 +3,6 @@ #include "common.h" #include "display.h" -#define FATAL_FGCOLOR 0xFFFF -#define FATAL_BGCOLOR 0x7800 - void __attribute__((noreturn)) __fatal_error(const char *msg, const char *file, int line, const char *func) { for (volatile uint32_t delay = 0; delay < 10000000; delay++) { } @@ -18,7 +15,7 @@ void __attribute__((noreturn)) __fatal_error(const char *msg, const char *file, display_print("\nFunc: ", -1); display_print(func, -1); } display_print("\n", 1); - display_print_out(FATAL_FGCOLOR, FATAL_BGCOLOR); + display_print_out(COLOR_WHITE, COLOR_RED128); for (;;) { display_backlight(255); HAL_Delay(950); diff --git a/micropython/trezorhal/common.h b/micropython/trezorhal/common.h index c052ec61..03cc5e99 100644 --- a/micropython/trezorhal/common.h +++ b/micropython/trezorhal/common.h @@ -18,7 +18,7 @@ void jump_to(uint32_t address); // common helper macros -#define DPRINT(X) do { display_print(X, -1); display_print_out(0xFFFF, 0x0000); } while(0) -#define DPRINTLN(X) do { display_print(X "\n", -1); display_print_out(0xFFFF, 0x0000); } while(0) +#define DPRINT(X) do { display_print(X, -1); display_print_out(COLOR_WHITE, COLOR_BLACK); } while(0) +#define DPRINTLN(X) do { display_print(X "\n", -1); display_print_out(COLOR_WHITE, COLOR_BLACK); } while(0) #endif