pragma i ustawianie heap-a IAR

0

Witam wszystkich!

Mam pytanie odnośnie ustawiania wielkości "heap-a". Piszę program w środowisku IAR i mam plik o rozszerzeniu .icf w którym jest możliwość jego ręcznego ustawienia. Plik wygląda następująco:

/###ICF### Section handled by ICF editor, don't touch! / /-Editor annotation file-/
/
IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" / /-Specials-
/ define symbol ICFEDIT_intvec_start = 0x08004000; /
-Memory Regions-/
define symbol ICFEDIT_region_ROM_start = 0x08004000;
define symbol ICFEDIT_region_ROM_end = 0x080FBFFF;
define symbol ICFEDIT_region_RAM_start = 0x20000000;
define symbol ICFEDIT_region_RAM_end = 0x2001FFFF;
define symbol ICFEDIT_region_CCMRAM_start = 0x10000000;
define symbol ICFEDIT_region_CCMRAM_end = 0x1000FFFF;
/
-Sizes-/
define symbol ICFEDIT_size_cstack = 0x800;
define symbol ICFEDIT_size_heap = 0x1000;
/
* End of ICF editor section. ###ICF###*/

define memory mem with size = 4G;
define region ROM_region = mem:[from ICFEDIT_region_ROM_start
to ICFEDIT_region_ROM_end];
define region RAM_region = mem:[from ICFEDIT_region_RAM_start
to ICFEDIT_region_RAM_end];
define region CCMRAM_region = mem:[from
ICFEDIT_region_CCMRAM_start to ICFEDIT_region_CCMRAM_end];

define block CSTACK with alignment = 8, size =
ICFEDIT_size_cstack { };
define block HEAP with alignment = 8, size =
ICFEDIT_size_heap { };

initialize by copy { readwrite };
do not initialize { section .noinit };

place at address mem:ICFEDIT_intvec_start { readonly section .intvec };
place in CCMRAM_region { readwrite section .ccmram };

place in ROM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };**

Interesuje mnie zmiana wartości "ICFEDIT_size_heap " ale nie ręcznie poprzez edycję tego pliku tylko programowo. Z tego co się orientuje to da się coś takiego zrobić wykorzystując "#pragma" . Czy ktoś miał z tym styczność lub podobny problem i mógłby mi pomóc lub podpowiedzieć cokolwiek na ten temat ?
Z góry dziękuję!

0

Podłączam się pod pytanie ale bardziej ogólnie - istnieje możliwość ustawienia wielkości stosu dla aplikacji? powiedzmy pod gcc? Bo sterta powinna być ograniczona wielkościa dysku ale stos ma znacznie większe limity. Jest nad tym jakaś kontrola od strony programisty?

1 użytkowników online, w tym zalogowanych: 0, gości: 1