We are trying to get the ICF file configured so that the IAR C/C++ compiler will use multiple memory regions at link time.
We are currently using the Vybrid's OCRAM region from 0x3f00_0000 to 0x3F07_FFFF. We are also using the DCU's memory (we don't use the DCU) at 0x3f40_0000 to 0x3f47_ffff.
We put our code into the OCRAM and our data into the DCU memory. Our project doesn't use that much data memory, so DCU memory utilization isn't that much.
Attached is the current ram.icf file, which works. Code lives in OCRAM and data lives in DCU memory.
Now our code is getting too big to fit in to the OCRAM area. The link phase fails because we're out of OCRAM. We have to turn on optimizations to get it to fit. Even then the size of the project is growing to the point where optimizing the code will not help keep the size of the code down.
We'd like the code to go into the OCRAM area and "spill over" into the DCU ram. Also, we'd like the data also in the DCU area like before.
How do we specify all this to the linker in the ICF file?
Original Attachment has been moved to: ram.icf.zip
解決済! 解決策の投稿を見る。
Hi,
I think you should define another memory region
define region ROM_2_region = ...
And then place some of your memory blocks into this region.
place in ROM_region { ... }
place in ROM_2_region { ... }
Regards
Rene
Hello,
I will check your linker file tomorrow.
Regards
Rene