关于由CubeMx 生成stm32f4+freertos,不正常分析之堆栈大小设置

发布者:喜从中来最新更新时间:2019-09-30 来源: eefocus关键字:CubeMx  stm32f4  freertos  堆栈大小 手机看文章 扫描二维码
随时随地手机看文章

freertos官方手册上有说,移植中出现的问题大多数是由堆栈设置不合理造成的,今天结合自身遇到问题分析一下


1.任务堆栈设置过小,很容易造成硬件溢出,跳转到void HardFault_Handler(void);


调试方法,可以通过调用函数,UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );来跟踪剩余堆栈,


不过在CubeMx中的Configuration->FreeRtos->Include parameters中使能uxTaskGetStackHighWaterMark函数;


2.整体设置过小,TOTAL_HEAP_SIZE(Configuration->FreeRtos->Config parameters)


通常来说。TOTAL_HEAP_SIZE设置过小,会在生成函数的时候报错,但是我遇到的问题是,并没有报错,只是程序运行部正常,


在把某个任务的堆栈有256设置成128之后,程序正常。之后将TOTAL_HEAP_SIZE设大,任务设回到256,程序也正常


关键字:CubeMx  stm32f4  freertos  堆栈大小 引用地址:关于由CubeMx 生成stm32f4+freertos,不正常分析之堆栈大小设置

上一篇:关于STM32F105 双CAN口通信的一些学习心得
下一篇:STM32-F407 CAN的双机通讯

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved