I begin to develop a program for LPC2129 with IAR EWARM 5.4
I found that there is a file. ICF when I must to configure for that the linker
to the IAR generates. hex specific to my application.
i have problem to understand how i can configure its parameters.
i found an example of file .ICF in an example of project with IAR.
program_in_flash.icf file in leds example provided with iar contains these
details.
/-Memory Regions-/
define symbol ICFEDIT_region_ROM_start = 0x00000044;
define symbol ICFEDIT_region_ROM_end = 0x0003FFFF;
define symbol ICFEDIT_region_RAM_start = 0x40000040;
define symbol ICFEDIT_region_RAM_end = 0x40003FFF;
/-Sizes-/
define symbol ICFEDIT_size_cstack = 0x200;
define symbol ICFEDIT_size_svcstack = 0x0;
define symbol ICFEDIT_size_irqstack = 0x100;
define symbol ICFEDIT_size_fiqstack = 0x0;
define symbol ICFEDIT_size_undstack = 0x0;
define symbol ICFEDIT_size_abtstack = 0x0;
define symbol ICFEDIT_size_heap = 0x200;
according datasheet ROM_start = 0x00000000. why is declared 0x00000044 ?
same RAM_start = 0x40000000. I don’t understand why is declared 0x40000040 ?
and how to initialize the sizes of the stacks?
what criteria of choice are initialized these stacks?
I find in other examples:
they are different parameters of the first example
/-Sizes-/
define symbol ICFEDIT_size_cstack = 0x2000;
define symbol ICFEDIT_size_svcstack = 0x100;
define symbol ICFEDIT_size_irqstack = 0x100;
define symbol ICFEDIT_size_fiqstack = 0x100;
define symbol ICFEDIT_size_undstack = 0x100;
define symbol ICFEDIT_size_abtstack = 0x100;
define symbol ICFEDIT_size_heap = 0x8000;
I do not understand what I put as the size for each stack