2025-07-15 4:52 AM
I used the same code. Previously, I was using STM32Cube_FW_MP1_V1.2.0, but after forcibly upgrading to STM32Cube_FW_MP1_V1.7.0 using CubeIDE, the compiled firmware can no longer generate a virtual serial port( /dev/ttyRPMSG0).
This is the log I used with version 1.7.
[ 3276.128100] remoteproc remoteproc0: powering up m4
[ 3276.141973] remoteproc remoteproc0: Booting fw image RPMsg_UART_CM4_te.elf, size 2549508
[ 3276.149267] mlahb:m4@10000000#vdev0buffer: assigned reserved memory node vdev0buffer@10042000
[ 3276.164561] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 3276.168677] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty addr 0x400
[ 3276.188640] mlahb:m4@10000000#vdev0buffer: registered virtio0 (type 7)
[ 3276.203388] remoteproc remoteproc0: remote processor m4 is now up
This is the log I used with version 1.2
[ 3395.909607] remoteproc remoteproc0: powering up m4
[ 3395.954530] remoteproc remoteproc0: Booting fw image RPMsg_UART_CM4.elf, size 2042304
[ 3395.961362] mlahb:m4@10000000#vdev0buffer: assigned reserved memory node vdev0buffer@10042000
[ 3395.975942] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 3395.980062] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-channel addr 0x0
[ 3395.994741] mlahb:m4@10000000#vdev0buffer: registered virtio0 (type 7)
[ 3395.999912] remoteproc remoteproc0: remote processor m4 is now up
[ 3396.028384] rpmsg_tty virtio0.rpmsg-tty-channel.-1.0: new channel: 0x400 -> 0x0 : ttyRPMSG0
This is a portion of my code, generated by CubeIDE.
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
if(IS_ENGINEERING_BOOT_MODE())
{
/* Configure the system clock */
SystemClock_Config();
}
else
{
/* IPCC initialisation */
MX_IPCC_Init();
/* OpenAmp initialisation ---------------------------------*/
MX_OPENAMP_Init(RPMSG_REMOTE, NULL);
}
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
/* USER CODE BEGIN 2 */
if (VIRT_UART_Init(&huart0) != VIRT_UART_OK)
{
Error_Handler();
}
if(VIRT_UART_RegisterCallback(&huart0, VIRT_UART_RXCPLT_CB_ID, VIRT_UART0_RxCpltCallback) != VIRT_UART_OK)
{
Error_Handler();
}
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */