完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
请问在freeRTOS 系统总是报这个错误是什么原因?
我现在只有两个任务在跑 内存溢出了嘛? 因为我有在里面使用pvmalloc 函数,但是我把任务堆栈改到4096*2 还是报这个错误 谢谢各位大神指教 |
|
相关推荐
5个回答
|
|
|
有木有大神啊,别沉了呀
|
|
|
|
|
|
都提示很明显了,heap_4.c的320,321行提示的错误,进去看一下是怎么提示的不久知道了
|
|
|
|
|
|
我查看了heap_4.c 发现320 321行是在vPortFree() 中报错的
/* Check the block is actually allocated. */ configASSERT( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 ); configASSERT( pxLink->pxNextFreeBlock == NULL ); 主要是用来检查是否成功分配时候的一个断言, 然后我试着在vPortFree()前加上 if(BT_Init_pntr == NULL) vPortFree(BT_Init_pntr); 发现此时不报错了,那说明实际上我的pvMalloc()是分配成功了的,但是为什么在vPortFree()中检查的时候就报错了 |
|
|
|
|
|
同问,我的也应该是分配成功了,但是不知道为什么释放的时候就报错了
|
|
|
|
|
|
我也遇到了这个问题,我的内存是申请过的
[C] 纯文本查看 复制代码 t = pvPortMalloc(256); printf("point(t) = %prn", t); sprintf(t, "%s:%s", serverhost, serverport); // Cache Host content = pvPortMalloc(256); sprintf(content, GET, p, t); printf("%srn", content); esp8266_send_data((u8*)content, (u8*)"200 OK", 400); // printf("%srn", USART3_RX_BUF); t = strstr((char*)USART3_RX_BUF, "{"); switchUtf8ToGbk(t, content); vPortFree(t); t = NULL; |
|
|
|
|
只有小组成员才能发言,加入小组>>
1036 浏览 1 评论
1862 浏览 0 评论
1842 浏览 1 评论
3265 浏览 5 评论
3595 浏览 9 评论
1040浏览 1评论
1860浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1375浏览 1评论
1864浏览 0评论
1189浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 11:34 , Processed in 0.699040 second(s), Total 84, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
490