Thank you for reading my problem first. I'm really grateful for that. Here is my problem with CANBus.
I have followed the link below to implement CANBus.
However, it is not the best solution I think. My scenario is two devices with CANBus. One is FTDI CANBus on Windows, another is i.MX6 Flexcan. Both of them are 100k bitrate.
I started transmitting over 10000 bytes data from FTDI CANBus to Flexcan. I used candump to printf the data I received. But the quantity of printf always less than transmitting.
I suspected the problem might be happened by the transmitting line. But the problem still happens after changing another line.
Eventually, I found another method to check whether data loss or not. I used the command, cat /proc/net/dev/, to check the content of Receive and Transmit. Then it shows me there is no data loss in can0 interface and quantity of Receive Packets is correct!
So I think the problem might happen due to using printf too frequently. Is there anyone have this problem like me?
My problem only happens over 50k bitrate. If my bitrate equals 50k bitrate or less, everything will be fine.