Цитата(jcxz @ May 24 2017, 14:00)

Расположение объектов в памяти смотрят не по main(), а по .map-файлу.
ЗЫ: В хорошо написанной embedded-программе не должно быть кучи (чего угодно

Имха!
в map вроде все нормально
Image$$ARM_LIB_HEAP$$ZI$$Base 0x01000000 Number 0 anon$$obj.o(ARM_LIB_HEAP.bss)
Image$$ARM_LIB_HEAP$$ZI$$Limit 0x01000800 Number 0 anon$$obj.o(ARM_LIB_HEAP.bss)
...
Memory Map of the image
Image Entry point : 0x08000189
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00000d5c, Max: 0x00080000, ABSOLUTE)
Execution Region ARM_LIB_HEAP (Base: 0x01000000, Size: 0x00000800, Max: 0x00000800, ABSOLUTE, UNINIT)
Base Addr Size Type Attr Idx E Section Name Object
0x01000000 0x00000800 Zero RW 2 ARM_LIB_HEAP.bss anon$$obj.o
а в main() я смотрел через debugger, который доходит до malloc() и сваливается в hardfault...