[STM32F1]

FreeRTOS进入断言函数怎么回事?

[复制链接]
1025|9
手机看帖
扫描二维码
随时随地手机跟帖
qq5782098|  楼主 | 2017-12-26 15:24 | 显示全部楼层 |阅读模式
FreeRTOS进入断言函数怎么回事?


跑起来就卡在了这里configASSERT( xReturn );



是定义的任务多了内存不够吗?为删除一个任务就没问题了。
可是我128K的stm32f103RB,只用了50多K呀。但是定义更大的数组也定义不了。
求解释

定义更大的数组报错.png
内存大小.png
HappyXue| | 2017-12-27 08:39 | 显示全部楼层
定义更大的数组报错,链接应该不通过,ram太小。stm32f103RB好像只有20k内存吧。至于assert,要看上下文,估计FreeRTOS的堆内存不够,任务的栈空间又分配的太大。

使用特权

评论回复
玛尼玛尼哄| | 2017-12-26 15:40 | 显示全部楼层
没遇到过啊。

使用特权

评论回复
yklstudent| | 2017-12-26 15:49 | 显示全部楼层
樓主搞清楚出錯提示信息,是RAM溢出了
跟你的FLASH沒半毛錢關係

使用特权

评论回复
玛尼玛尼哄| | 2017-12-26 17:42 | 显示全部楼层
楼上这位是高手,一眼看到病根了。

使用特权

评论回复
天灵灵地灵灵| | 2017-12-26 18:06 | 显示全部楼层
烧录进去跑不动?

使用特权

评论回复
天灵灵地灵灵| | 2017-12-26 18:07 | 显示全部楼层
看懂了,根本烧录不进去啊。你用STM32 ST-LINK Utility 擦除后,再烧录试试看,生成HEX文件。

使用特权

评论回复
qq5782098|  楼主 | 2017-12-27 09:47 | 显示全部楼层
HappyXue 发表于 2017-12-27 08:39
定义更大的数组报错,链接应该不通过,ram太小。stm32f103RB好像只有20k内存吧。至于assert,要看上下文, ...

因为操作系统定义了太大了内存导致RAM不够。这个我明白了。可是卡在configASSERT( xReturn ); 这,
有两个任务不能同时开,同时开就卡这。单独开就没事。知道为什么吗?刚学操作系统不是很懂

使用特权

评论回复
734774645| | 2017-12-27 11:10 | 显示全部楼层
能否屏蔽这个断言啊,断言就算卡程序用的。

使用特权

评论回复
HappyXue| | 2017-12-29 16:58 | 显示全部楼层
qq5782098 发表于 2017-12-27 09:47
因为操作系统定义了太大了内存导致RAM不够。这个我明白了。可是卡在configASSERT( xReturn ); 这,
有两 ...

先确认xReturn是调用哪个函数返回的?再一点点往回走查代码,找到真正原因。我没看到你代码和上下文,具体也不好多说。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

179

帖子

3

粉丝