硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5267|回复: 5
收起左侧

[FreeRTOS] 注意FreeRTOS的动态内存函数pvPortMalloc是不可以在中断服务程序调用的

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2019-1-1 15:14:15 | 显示全部楼层 |阅读模式
此函数不可以在中断里面调用,里面的这个函数xTaskResumeAll(中断里面要调用以FronISR结尾的函数)是不可以在中断里面调用的。
下面这几种动态内存方案均调用了此函数


QQ图片20190101151340.png

回复

使用道具 举报

5

主题

201

回帖

216

积分

高级会员

积分
216
发表于 2019-1-15 13:14:36 | 显示全部楼层
难怪我上次用了后就容易死机呢。原来不能再中断中用
回复

使用道具 举报

20

主题

72

回帖

132

积分

初级会员

积分
132
发表于 2019-1-18 17:54:40 | 显示全部楼层
1024,感谢分享
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
发表于 2020-3-5 09:12:47 | 显示全部楼层
我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2020-3-5 10:16:39 | 显示全部楼层
yip_1991 发表于 2020-3-5 09:12
我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?

将中断程序的执行放到一个任务里面,中断仅发一个消息即可。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-3-25 20:15:41 | 显示全部楼层
yip_1991 发表于 2020-3-5 09:12
我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?

换成静态变量
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 19:32 , Processed in 0.219139 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表