Sam7X + heap_1

nobody wrote on Thursday, January 11, 2007:

I cant figure, why project compile successfully with heap_2.c but not whith heap_1.c. IAR give "Fatal Error[e72]: Segment HEAP must be defined in a segment definition option (-Z, -b or -P)". (Heap_1.c should be ok for IAR, it use compilers own malloc -function for memory allocation).

Linker Config should be correct. Error generate only when i compile project with heap_1.c.

Project is demo for SAM7X, compiler is IAR.

Can someone explane for me, why this is so?

nobody wrote on Thursday, January 11, 2007:

Do you mean heap_3?  This is the one that uses malloc(), not heap_1.

Try compiling with heap_2 - the one you say works - then calling malloc form main() to see if it gives the same problem which I think it will.

Dave.

nobody wrote on Thursday, January 11, 2007:

Thanks Dave, you are right:

1) I mean heap_3, not heap_1, sorry.

2) Again right! If i compile with heap_2 and use malloc() in other module, IAR give same error.

But still, I cant understund why its so. Is it illegal use malloc with IAR+ARM7 or whats the problem?

nobody wrote on Thursday, January 11, 2007:

When you link in malloc the linker will attempt to find the data segment called HEAP (or some other similar name).  This section will be needed within the linker script.  I should take a look at the IAR manual for the malloc function, or heap description.

Dave.