码迷,mamicode.com
首页 > 其他好文 > 详细

mbed的ticker问题

时间:2017-06-25 11:57:24      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:topic   上位机   内存   scribe   sub   循环   重写   ring   莫名其妙   

最近发现一个很严重的问题, 在给mbed的subscriber频繁(1秒10次)发消息的时候, nucleo莫名其妙就挂了.

因为最终, vel消息肯定要传递到底盘驱动mcu上的, 10赫兹的频率也不算高吧, 然后一步步把pwm控制去掉, 发现以前没发现的问题:

1. mbed单独publish topic, 一直没问题.

2. 如果从ROS发消息去mbed, 去到某个固定的时刻, mbed/nucleo就挂掉了, 判断的标准是, publish没有了, rosserial python显示连接断开, 同步失败之类.

3. 即便mbed上, subcriber的回调啥也不做, 也是一样, 因为一开始以为是我代码的问题, 内存泄露一类, 因为回调里面会用stringsteam拼凑回调要向上位机发布的回馈.

4. 我的odom消息是用ticker定时发布的, 大约0.01秒/0.04秒一次的频率吧.

 

因为mbed上即便订阅的回调什么都不做, 也会死机, 我抱着试试看的方法, 回到原来, 在mian的while循环里面用sleep的方式发布主题, 发现没有再死机了.

所以问题在于, 如果ticker+回调, 就会死机, 单独ticker发布, 不会死机, tick里面不发布, 也不会死机...

 

这到底是为啥...

 

老子迟早要重写stm32的串口驱动, 把mbed干掉....nnd...

mbed的ticker问题

标签:topic   上位机   内存   scribe   sub   循环   重写   ring   莫名其妙   

原文地址:http://www.cnblogs.com/Montauk/p/7076304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!