关于FreeRTOS使用相关API函数导致程序阻塞的问题

前言:

        如题。近日在给项目移植FreeRTOS的时候,发现调用如下API函数会阻塞:

xTaskNotifyGive(xTaskGetHandle(Task_PrintCtrl_attributes.name));

        首先猜测可能是xTaskGetHandle有问题导致。通过printf打印调试信息,发现执行xTaskGetHandle之前也会阻塞。那说明可能不是某个函数的问题,或者某个参数的问题。

        可能是在调用API函数之前,任务还未被创建。实际上并不是,因为我的FreeRTOS代码是靠STM32CubeMX生成,按理来说不会有这种问题。

        后面询问ChatGPT发现,可能是任务的堆栈大小太小了,STM32CubeMX默认生成的任务是128Words。

        我随后尝试增加到512,编译运行,发现正常运行了。

        我这个应该是任务比较特殊,一般可能128够用了。想了几天的函数或者参数有问题,但是又查不出来,没想到是这个问题。

        还得是ChatGPT。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值