Where is [should be] an instance of Memory Pool Header created (I mean this struct that is referenced in memory allocation library files --malloc.c, free.c, realloc.c init_mem.c):
struct __mp__ { /* memory pool */ struct __mp__ *next; /* single-linked list */ unsigned int len; /* length of following block */ };
The heap is located at the address passed in as the first parameter to init_mempool(). See the source for init_mem.c (usually located in the .../lib directory of your Keil installation). The headers come before the client-usable memory blocks.