请教在rt—thread系统中可以使用2个以上邮箱吗?
请教如何在rt—thread系统中使用2个以上邮箱?看rt_mb_send()及rt_mb_recv()函数的参数并不包括邮箱的名字,难道还需要新建邮箱控制块吗?盼望各位不吝赐教。 用名称就不要控制块了?也不用初始化(或是创建)? 是这样,我想用2个邮箱,又重新建了一邮箱控制块及内存池:
static struct rt_mailbox mb1;
staticcharmb1_pool;
并在rt_application_init()内初始化这个邮箱:
rt_mb_init(&mb1,
"mbt1",
&mb1_pool,
sizeof(mb1_pool)/4,
RT_IPC_FLAG_FIFO);
然后分别在中断和线程中使用rt_mb_send(&mb1,(rt_uint32_t)&Data)及rt_mb_recv(&mb1,(rt_uint32_t*)&strr,RT_WAITING_FOREVER)发送和接收邮件,但是在编译时出现错误:
.\obj\rtthread-stm32.axf: Error: L6218E: Undefined symbol mb1 (referred from stm32f10x_it.o).
请问应该还需要修改哪里?
多谢aozima这么快回复。 回复【2楼】sledd
-----------------------------------------------------------------------
楼主杯具了.你在application.c用了static修饰struct rt_mailbox mb1,还想在stm32f10x_it.c使用mb1? 请问那应该怎么做,有点迷茫。 回复【4楼】sledd
请问那应该怎么做,有点迷茫。
-----------------------------------------------------------------------
敬请sledd查找C语言中static的作用. static修饰后,只能在本文件内使用 多谢几位了,去掉static,应该是可以了。还有点别的问题,再研究。基础不扎实,见笑。 C语言要加强啊。。。 新手问题哈,我以前老搞不懂extern一样,呵呵。
其实错多了自然就好了
页:
[1]