I am working on a 3.10.53_ga kernel base and I am having some problems with the boost libraries producing different results on iMX6 HW and an ubuntu VM, specifically using the call:
serial_port_.async_read_some()
from the boost libraries. This is supposed to grab what ever is in the buffer and return immediately. It does this under the VM (properly segments the messages as they come across the serial port - i.e. low_latency mode) but it bundles the messages together on iMX6 hardware side. If I do:
cat /dev/ttymxc2 | od -x on the iMX6
and
cat /dev/ttyACM0 | od -x on the VM
the results are identical, so it isn't a parsing element gone wrong. I have manually set the ports up with stty until
stty -F /dev/ttymxc2 -a
outputs the exact same thing on both sides and still they are handled differently from the boost libraries. It seems to be at the system level as these libraries are merely wrappers for the interfaces into the devices. I am struggling with how to get the two interfaces to work the same way.
I haven't tried using these as these are not part of the BSP Release but perhaps adding some information may allow another community users to add some inputs. Are you using Ubuntu in both cases? Is the VM running also on ARM? I would be careful with the low level HW management of the VM as there may be differences because of the virtualization.