完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用邮箱的时候出现 assertion failed at function:rt_mb_recv 断言问题,用的第一个邮箱是可以运行的,但是第二个邮箱在接受时出错,论坛上说可能是内存溢出,请问如何解决该问题? typedef struct str_mpu_adc {
发送邮箱 rt_mb_send(&mpu6050_mb,(rt_ubase_t)&gfx_mpu);//发送邮箱,由于使用的是oled库(u8g2),该库是使用C++编写的,所以读取是在另一个.cpp文件读取 //在该文件中读取邮箱的内容 出错结果: |
|
相关推荐
4个回答
|
|
由于我的发送邮件rt_mb_send 和接受邮件rt_mb_recv不在一个.c文件里,这是产生问题的原因,但是具体原理并不太懂,我的解决办法是将接受邮件和rt_mb_create创建邮件放在同一.c文件里,而发送邮件放在其他.c文件里就可以解决上述问题
|
|
|
|
你最好把相关代码贴出来,要不然不太好判断哦。或者你自己仔细找找,可能是误传入了空指针。比如你调用rt_mb_recv()函数的线程,运行的比较早,在你创建邮箱之前去读了。
|
|
|
|
建的邮箱,所以就算没有初始化邮箱,邮箱地址也不是NULL。但里面的内容没有初始化。猜测原因是你在init邮箱前就调用的recv函数。可以尝试在你调用recv函数之前和init之前分别打印一条调试语句,看看哪个先运行的。
/* parameter check */ RT_ASSERT(mb != RT_NULL); RT_ASSERT(rt_object_get_type(&mb->parent.parent) == RT_Object_Class_MailBox); |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
802 浏览 0 评论
5053 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2650 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2990 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
32051 浏览 11 评论
73166 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 19:14 , Processed in 0.786231 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号