Vorteil dieser neuer Version wäre nämlich, dass man selbst die Firmware modifizieren könnte: fastoff und eigenes Bild ließen sich sicherlich einbauen ... man muss sich "nur mal" in die Sourcen einarbeiten .
Da bin ich grad dabei.
Habe mal selber reingeschaut, eigentlich muss man kein großer C-Programmierer sein, um den BSOH zu modifizieren, bzw. sogar eine Grafik reinzupasten:
In main.c / Funktion umain() gibt es u.a. die Aufrufe:
- clrscreen(RGB565(0, 0, 70)); // hier kann man die Hintergrundfarbe modifizieren
- print_splash(); // und diese Funktion modifieren
- void print_splash(void) __banked
- {
- __idata char codes[3];
- disp_home();
- rawputc(0x11); print_padded(PAD_WIDTH "\022"); rawputc(0x05); putsc("\n|");
- print_padded(PAD_WIDTH " USB display"); putsc("|\n|");
- print_padded(PAD_WIDTH " version:" STRING(BUILD_ID)); putsc("|\n|");
- print_padded(PAD_WIDTH " by hackfin@section5.ch"); putsc("|\n");
- rawputc(0x1a); print_padded(PAD_WIDTH "\022"); rawputc(0x03); putsc("\n\n");
- putsc("LCD: " STRING(_INTERNAL_TAG) " (compatible)\n");
- putsc("Detecting flash...");
- flash_detect(codes);
- putsc("\n");
- flash_print_size(codes);
- putsc("\n\n\nPress MENU for config mode");
- }
Wenn man eine Grafik in den BSOH reinpasten will, muss man nur schauen wie clrscreen() funktioniert:
Anstelle von einzelnen col Wertes könnte man ein array nehmen, welches die Bilddaten im RGB16/RGB565 Format enthält zB const unsigned short g_splashgfx[] = {...}
Das sollte es gewesen sein, jetzt muss man "nur noch" (haha, siehe meinen vorhergehenden Eintrag) die modifizerte FW flashen können ...