2021-11-11 10:52 PM
Hello,
I am working stm32mp157c. It has two processor (A7 and M4). They can communicate with each other over virt uart(rpmsg). When I want to send a message to a7 over m4, if the message is filled with constant data, everything is ok. If the message is filled with sequential data, the data cannot be fully transmitted. For example,
while(1)
{
OPENAMP_check_for_message();
uint8_t buffer[496] = { 0 };
for(uint16_t i = 0; i < sizeof(buffer); i++)
buffer[i] = 48;
VIRT_UART_Transmit(&huart0, buffer, sizeof(buffer));
HAL_Delay(1000);
}
In the above case everything is ok. But the following situation
while(1)
{
OPENAMP_check_for_message();
uint8_t buffer[496] = { 0 };
for(uint16_t i = 0; i < sizeof(buffer); i++)
buffer[i] = i;
VIRT_UART_Transmit(&huart0, buffer, sizeof(buffer));
HAL_Delay(1000);
}
It can only receive 251 of 496 bytes of data. IPCC clock speed is 210MHz.
What could be the problem?
Solved! Go to Solution.
2022-06-27 02:40 AM
"systemd-journald[292]: /dev/kmsg buffer overrun, some messages lost..."
The message just informs you that there is an overflow in kmesg, meaning that you are facing some overruns in Kernel message trace mechanism.
This occurs because you send a lot of debug trace in kmsg.
But no impact on the rpmsg itself.
Regards,
Arnaud