Designed a custom SBC using an MSP430F5638 which is running fine. Uses a 480x272 pixel color TFT LCD which is also running fine for setting colors, displaying text (as graphical fonts), and doing XY plots. I'm trying to display a jpg image on the LCD - and used LCD Image Converter to convert a small image into a global array of unsigned ints. The image .h file is 3MB in size.
The array dimensions are correct: 480 x 272 = 130,560 pixels where each pixel needs a group of 3 hex numbers - 3 x 130,560 = 391,680
static const unsigned int BE950020[391680] = {
0x00ed, 0x0074, 0x000c, 0x00f9, 0x007b, 0x000d, 0x00fe, 0x0080, 0x0008, 0x00f8, 0x0081, 0x0003, 0x00df, 0x0075, 0x0000, 0x00c9, 0x0066,
...
...
};
How is it even possible to build this application for a MCU with 256KB of FLASH + globals, and 16KB of RAM? Initially I was getting the error #69 Array is Too Large. Changed memory model from: Large / Restricted / Globals to: Large / Large / Globals, and changed the array type from unsigned long int to unsigned int - and it builds and loads to the SBC ok. Is it just loading what it can into FLASH and throwing the rest away? After the garbage image display, I can change the background color, so the program is still running ok, just the image display is junk.
The LCD is filled with garbage - snow.
Does TI have an alternative to LCD Image Converter, a tool to convert an image file: jpg, bmp, png, etc. into a C data array of pixel values?