eric2013 发表于 2019-1-1 15:14:15

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

此函数不可以在中断里面调用,里面的这个函数xTaskResumeAll(中断里面要调用以FronISR结尾的函数)是不可以在中断里面调用的。
下面这几种动态内存方案均调用了此函数
static/image/hrline/4.gif



honami520 发表于 2019-1-15 13:14:36

难怪我上次用了后就容易死机呢。原来不能再中断中用

502398542 发表于 2019-1-18 17:54:40

1024,感谢分享

yip_1991 发表于 2020-3-5 09:12:47

我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?

eric2013 发表于 2020-3-5 10:16:39

yip_1991 发表于 2020-3-5 09:12
我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?
将中断程序的执行放到一个任务里面,中断仅发一个消息即可。

Xiagb 发表于 2020-3-25 20:15:41

yip_1991 发表于 2020-3-5 09:12
我用pvPortMalloc替换USB的malloc,但USB初始化居然是被ST放在中断里,有啥替代方案吗?

换成静态变量
页: [1]
查看完整版本: 注意FreeRTOS的动态内存函数pvPortMalloc是不可以在中断服务程序调用的