Hello, I'm working on a STM32F429ZI board and S29GL128S External NOR Flash in order to save some code (images among others). I'm trying to configure the project, but I do something wrong because the KEIL finds errors. In order to generate an .FML file, I copied the project S29GL064Nx2 from C:\Keil\ARM\Flash and adapt it according to S29GL128S memory. In this project (S29GL128S), I have some doubts:
1) Is the Device of the "Options for Target" configuration STM32F429ZI? 2) Is important the Read/Only Memory Areas configuration? 3) The *.Lin file I put the same as S29GL064Nx2 project. Is it correct?
The address of flash starts 0x0000000 and its size is 0x1000000 (16MB). According to Reference Manual of STM32F429 (RM0090), the address to NOR flash, is from 0x60000000 to 0x6FFFFFFF. On STM32F429 project, I've selected in "tions for Target" > Debug > Settings > Flash Download the *.FLM file from S29GL128S.
i.imgsafe.org/0fee591383.png
The files which I want to save in the NOR flash, I've selected in "Options for file" ROM1 as a Memory Assigment.
i.imgsafe.org/0feddb3759.jpg
But, I have a Flash timeout error, can you help me about what is produced this error?
i.imgsafe.org/0fec83e876.jpg
Is there any tutorial which explains step by step how I have to configure?
Thanks in advance
I don't believe there's a limitation for executing code form external flash, other than possibly slower execution. That being said, I've never personally done it. There are several configuration registers for the FSMC, so you might want to double check these against your IC's datasheet (making sure both the Init functions in code and debug INI file are consistent)
You've managed to get very far, but are still hung up on executing out of external flash. One possible work-around (if you only need to store images in external flash) would be to locate just the images in external flash. You should be able to do this by group or per file: * right click on the group or file you'd like to move * click Options for <Group/File> * Under "Memory Assignment", choose your external flash address range from the Code/Const field.
This should get the linker to automatically load the images (or groups of images) you've selected into external flash, freeing up internal flash for code execution, only referencing external flash when an image is needed.
Jordi/Rouse
How has this progressed - have you guys managed to get your code executing out of external NOR flash, or did you successfully fall back to simply storing images there?
Hi Brian,
finally we found a workaround, flashing the images as bitmap (either DAT format) to the external flash. Also I found in the StemWin Library, the widget Image has two type of functions: One to load images from memory and the other to load from the external memory. Testing the second type of functions I catched HardFault_Handler's exception. I think it could be insufficient stack or heap size. I will investigate.
Thank you very mutch
Best regards