IAR EW ARM: почему не работает malloc |
|
Добавил(а) microsin
|
Если не задать размер области памяти для кучи (heap), то будет считаться, что в проекте вся память под данные (переменные, массивы) выделяется статически. При этом динамическое выделение блоков памяти с помощью malloc работать не будет (malloc всегда будет возвращать NULL).
Чтобы исправить ситуацию, нужно задать размер кучи. Это делается через свойства проекта. Заходим в меню Project -> Options... -> Linker -> закладка Config -> в Linker configuration file ставим галочку "Override default", указываем имя конфигурационного файла для линкера, жмем кнопку Edit..., на закладке Vector Table параметр .ntvec start указываем 0, на закладке Stack/Heap Sizes указываем нужные параметры стеков и размер HEAP. |