85f0bc591e
Broken by 635cfa. On an stm32 the heap is formed from const uintptr_t g_idle_topstack = HEAP_BASE; where HEAP_BASE is &_bss + CONFIG_IDLE_STACKSIZE. Both these values are not deterministic. One comes from the compiler, the other the system configurator. a 3 byte bss and 250 byte stack would lead to and unaligned address used as the heap to be. The compiler used clever `strd r1,r3,[r5,#8]` to store 2 values in one memory cycle into the heap_impl struct. Resulting in a hardfault. Change the amount of bss or the CONFIG_IDLE_STACKSIZE could lead to a non-functional NuttX system. |
||
---|---|---|
.. | ||
Make.defs | ||
mm_addfreechunk.c | ||
mm_brkaddr.c | ||
mm_calloc.c | ||
mm_checkcorruption.c | ||
mm_extend.c | ||
mm_free.c | ||
mm_heapmember.c | ||
mm_initialize.c | ||
mm_mallinfo.c | ||
mm_malloc_usable_size.c | ||
mm_malloc.c | ||
mm_memalign.c | ||
mm_realloc.c | ||
mm_sbrk.c | ||
mm_sem.c | ||
mm_shrinkchunk.c | ||
mm_size2ndx.c | ||
mm_zalloc.c | ||
mm.h |