OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8067|回复: 6

关于freeRTOS报错

[复制链接]

9

主题

141

帖子

1

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2017-1-3
在线时间
65 小时
发表于 2018-2-28 22:27:01 | 显示全部楼层 |阅读模式
2金钱
请问在freeRTOS 系统总是报这个错误是什么原因?
我现在只有两个任务在跑
内存溢出了嘛? 因为我有在里面使用pvmalloc 函数,但是我把任务堆栈改到4096*2 还是报这个错误

谢谢各位大神指教
IMG_20180227_163743.jpg

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

141

帖子

1

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2017-1-3
在线时间
65 小时
 楼主| 发表于 2018-3-1 08:41:56 | 显示全部楼层
有木有大神啊,别沉了呀
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-1 09:59:20 | 显示全部楼层
都提示很明显了,heap_4.c的320,321行提示的错误,进去看一下是怎么提示的不久知道了
回复

使用道具 举报

9

主题

141

帖子

1

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2017-1-3
在线时间
65 小时
 楼主| 发表于 2018-3-1 14:45:39 | 显示全部楼层
我查看了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()中检查的时候就报错了
回复

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-29
在线时间
21 小时
发表于 2018-7-27 21:10:01 | 显示全部楼层
同问,我的也应该是分配成功了,但是不知道为什么释放的时候就报错了
回复

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-29
在线时间
21 小时
发表于 2018-7-27 21:11:05 | 显示全部楼层
我也遇到了这个问题,我的内存是申请过的
[mw_shl_code=c,true]t = pvPortMalloc(256);
                                printf("point(t) = %p\r\n", t);
                                sprintf(t, "%s:%s", serverhost, serverport);                                                                                        // Cache Host
                                content = pvPortMalloc(256);
                                sprintf(content, GET, p, t);
                                printf("%s\r\n", content);
                                esp8266_send_data((u8*)content, (u8*)"200 OK", 400);
                                // printf("%s\r\n", USART3_RX_BUF);
                                t = strstr((char*)USART3_RX_BUF, "{");
                                switchUtf8ToGbk(t, content);
                                vPortFree(t);
                                t = NULL;[/mw_shl_code]

回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2020-10-20
在线时间
8 小时
发表于 2021-7-7 22:46:55 | 显示全部楼层
你的问题解决了吗,我也遇到同样的问题
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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