XPack QEMU Arm UART тест на macOS

#arm #qemu #uart #xpack

#arm #qemu #uart #xpack

Вопрос:

Я очень новичок в программировании QEMU и mcu, недавно практикую управление uart на QEMU. То, что я пытаюсь сделать, это виртуально подключить QEMU к хост-компьютеру через USART2.

Я узнал, что этот параметр -serial , вероятно, может это сделать, и попытался добавить
-serial mon:stdio => ничего не произошло
-serial stdio => ошибка, но в консоли ничего не отображается.

Процессор: STM32F407VG
Плата: STM32F4-Discovery
IDE: Eclipse IDE
Хост-устройство ОС: macOS Catalina 10.15.7

Ниже приведены мои коды и конфигурация запуска

 #include "stm32f4xx.h"

void UART2_Init(void);
void UART2_Write(int ch);
void delayMs(int delay);

int main(void){

    UART2_Init();
    while(1){
        UART2_Write('H');
        delayMs(500);
        UART2_Write('i');
        delayMs(500);
    }
}

void UART2_Init(void){

    RCC -> APB1ENR |= 0x20000;  // Enable usart2 clock
    RCC -> AHB1ENR |= 0x8;      // Enable PD5 clock
    GPIOD -> AFR[0] = 0x700000; // access PD5 AF7
    GPIOD -> MODER |= 0x800;

    USART2 -> BRR = 0x0683;     // Set buad rate to 9600
    USART2 -> CR1 =  0x8;       // Tx enable
    USART2 -> CR1 =  0x2000;    // USART enable
}

void UART2_Write(int ch){
    // wait until Tx buffer is empty
    while(!(USART2 -> SR amp; 0x80)){
        USART2 -> DR = (ch amp; 0xff);
    }
}
 

введите описание изображения здесь

Комментарии:

1. Функции UART Cortex-M в QEMU на момент написания этого поста недоступны. Они закомментированы из файла uart.c . Боюсь, что вам нечего делать, если вы не хотите реализовывать это самостоятельно.