“错误”;内存不足';ucHeap&x27;对于STM32F103

“错误”;内存不足';ucHeap&x27;对于STM32F103,c,freertos,stm32f1,C,Freertos,Stm32f1,我用Freertos STN32F107为自己重新制作了一个空项目,但现在出现了一个问题,即“没有足够的RAM‘ucHeap’”。诀窍是,如果您设置值configTOTAL\u HEAP\u SIZE((SIZE\u t)(17*1024))则会出现错误“没有足够的RAM'ucHeap'”,如果您设置configTOTAL\u HEAP\u SIZE((SIZE\u t)(1*1024))则程序将编译,但我的任务将不起作用 我使用的是MK STM32F103C4,Freertos版本9.0.0

我用Freertos STN32F107为自己重新制作了一个空项目,但现在出现了一个问题,即“没有足够的RAM‘ucHeap’”。诀窍是,如果您设置值
configTOTAL\u HEAP\u SIZE((SIZE\u t)(17*1024))
则会出现错误“没有足够的RAM'ucHeap'”,如果您设置
configTOTAL\u HEAP\u SIZE((SIZE\u t)(1*1024))
则程序将编译,但我的任务将不起作用

我使用的是MK STM32F103C4,Freertos版本9.0.0


请告诉我我做错了什么。

你试过1到17之间的另一个号码吗?即使不查找部件号,我假设您使用的103的RAM比107少,因此它无法在分配了那么多堆的情况下编译。然而,你的程序不能用你设定的很小的量运行。看起来你的电路板配置不正确。查看链接器映射文件以确定发生了什么。如果您有堆大小问题,链接器可能会告诉您。STM32F103C4只有6KB的RAM,但您正在尝试使用17KB。用3KB或4KB试试看。但由于RAM太少,任何RTO都只能勉强工作,如果有的话。我可能更愿意尝试一种不同的方法,比如libopencm3,没有FreeRTOS或CMSIS的STM32-HAL​​从1到5,没有错误,但任务仍然不工作。