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

[复制链接]
1460|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

粉丝
快速回复 在线客服 返回列表 返回顶部