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
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.
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.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.