I've been browsing the uVision/MDK-ARM manuals looking for a way to do something I did when using the Rowley CrossStudio tools, but I can't find what I'm looking for.
Basically, my app is too large to fit in the FLASH in my MCU (lots of graphics assets). With CrossStudio, I could set my project up so that the graphics assets were located in an external FLASH device that supported CFI (Common Flash Interface). Then when I built my app and used their JTAG tool it would write the parts of the app that belonged in the MCU to the MCU, and write the parts that belonged in the external FLASH to the external FLASH, such that my graphics assets were all available in the external FLASH device from the app code running in the MCU internal FLASH.
Is this possible with uVision/MDK-ARM, and if so, could someone please point me to where I can find the related documentation in the product manuals? Are there any KEIL app notes that describe the process? If they're there, I must be using the wrong search keywords, because I haven't been able to find them.
Thanks!
Thanks Tamir, but is using the scatter load file a requirement, or a preference?
For this exercise, is it sufficient to declare my image like this:
const uint8_t image[] __attribute__((at(0x80000000))) = // 800 x 480 image { ... all the image data goes here ... };
if the NOR flash base address is 0x80000000?
I ask because using the 'at' attribute appears to be enough to signal the tools that it needs to use a loader (different from the MCU loader), and the external flash loader does seem to be invoked as needed; it's just that it doesn't always product the desired result.