Posted on:
Hi,
LPC2148 + WinARM
I've a very large array of unsigned shorts in my application. It has
21900 elements which has the pixels of a photo that I want to show in
LCD. (S65 - LS020)
To calculate the values of each pixel in 5-6-5 RGB format I made a PC
application. It loads an image and converts it to C source file. It's
simple but it works.
I want to use my unsigned short array in WinARM. My array looks like
this:
unsigned short image[ 21913]={
0xFFB7, 0xFFB6, 0xFFB6, 0xF796, 0xF796, 0xF796, 0xF796, 0xF796, 0xF796,
0xF796, 0xF775, 0xF775, 0xF775, 0xF775, 0xF775, 0xF775, 0xF775, 0xF775,
0xF775, ....
};
but after adding this into source code I can't compile it anymore.
"region RAM is full"....
apperently compiler tries to allocate RAM for this array. Recently I
used many other non-ARM7 CPUs and compilers and it is possible to place
an array in program memory ( FLASH ROM) instead of RAM.
How can I let it run from Flash?
Regards
Posted on:
Try with const unsigned short image... const should let the compiler mark the array as read only and place it in the ro-data input section. The usual linker-scripts let the linker place ro-data input-sections in a output-section located in flash-memory.
Posted on:
yes, I tried const unsigned char just after I post the topic. It worked fine. Now I can display any image I want after I convert it with my program.