Hi,
where is it possible to get an IAR linker file (icf) for MQX operation under M4 and DDR memory? Currently in MQX 4.0.2 there is only INT RAM configuration for M4. There is a DDR configuration for A5 though. Is there any reason why not to use DDR memory from the M4 core? My application, which needs to run on M4, is getting too large and does not fit into the internal ram (at least not with the current ram.icf file).
Hi
Well I can find there is one at
Program Files\IAR Systems\Embedded Workbench 6.5\arm\examples\Freescale\VF6xx\128MB_ddr_m4.icf
However, I needed to modify it in order to get successfully running the GettingStarted project from M4 and DDR .
For running the GettingStarted sample:
1) open the project:
Program Files\IAR Systems\Embedded Workbench 6.5\arm\examples\Freescale\VF6xx\TWR-VF600\build\iar\projects\getting_started\GettingStarted.ewp
2) Select the build option for M4 Debug DDR
Besides the name this runs from SRAM
3) Point to the linker file attached
Project -> Options -> Linker -> Linker configuration file -> Override default
Populate the field with the path to the attached icf file
4) Rebuild and Dowload the image
This time you can check that it is indeed running from DDR.
This is bare-metal code but I think you can base on this for whatever change needed for MQX.
Bit later but still, I tested your icf file on the GettingStarted demo (thank you again), with negative result though - it failed to validate the downloaded code (see attached debug log).
To save your time - I do not personally need it anymore, so do not push on it. On the other hand, there might be some general need for M4 DDR configuration...
I may run into the same issue soon. Did you find a solution, or any additional information?
Hi jbs,
I did not manage to solve the M4 DDR issue, the available icf files simply did not work for me. I found a pretty elegant workaround though. Suppose you do not run MQX on the A5 core, intram memory area reserved for that configuration (0x3F050000 - 0x3F07FEFF, i.e. 191.75k) can be appended to M4 memory space. Use _mem_extend() call to do that. Just make sure A5 does not use the memory (e.g. Linux suits to this condition).
Hi Juan,
thank you for your reply, it seams to be very helpful. I knew about this file but as it didn't work, I ignored it. I'll get back to your post in the next week and will reply as soon as I evaluate it.
Petr