你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

程序卡死在vPortFree函数中

[复制链接]
猪小屁 提问时间:2025-2-27 14:44 / 已解决

之前一直用的CAN发送函数,移植到新的板卡上,与另外一块板卡通讯时。通过CAN回复给另外板卡信息,但是在回复完信息后,程序卡死了。信息通过另外的板卡发现的确收到了,说明发送成功了。

下面是发送函数的代码:image.png

image.png

最终程序卡在了这里:

image.png

有没有大佬解释解释啥原因

image.png
image.png
收藏 评论5 发布时间:2025-2-27 14:44

举报

5个回答
猪小屁 最优答案 回答时间:2025-2-27 15:47:09

😕 问题找到了,有个地方free了两次

xmshao 回答时间:2025-2-27 16:21:02
感觉问题跟内存处理有关,这里给些参考提醒:


检查在使用memcpy时没有越界访问内存,确保所有内存操作都是合法的。


确保每个内存块只被释放一次,避免重复释放动作;


注意传递给vPortFree的指针是由pvPortMalloc分配的。
猪小屁 回答时间:7 天前

xmshao 发表于 2025-2-27 16:21
感觉问题跟内存处理有关,这里给些参考提醒:</p>
<p>

好的谢谢大佬

奥茨 回答时间:7 天前

猪小屁 发表于 2025-2-27 15:47
😕 问题找到了,有个地方free了两次

养成一个好习惯:每次使用vPortFree(p)函数后将p赋值成NULL,因为vPortFree内部会检查形参指针是否为空值。

另外,卡住的地方叫断言,程序自检通常会用到。

猪小屁 回答时间:7 天前

奥茨 发表于 2025-2-28 14:08
养成一个好习惯:每次使用vPortFree(p)函数后将p赋值成<strong>NULL</strong>,因为vPortFree内部会检查形参指针是 ...

[md]好的谢谢大佬

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版