BB-black开发板[Linux arm-v8]

qemu源码二次开发自定义开发板--Apple的学习笔记

2023-08-19  本文已影响0人  applecai

一,前言

本轮的第一个学习目标就是完成自定义开发板,我回顾了下之前的学习笔记,代码流又想起来了。

二,需求

不用修改原来的stm代码,仅修改qemu源码添加自定义开发板。

三,实现

过程很顺利,因为改动很小。在boards-discovery.c中修改原来的F407开发板,不想再新加了,若再新加,其实也就是再copy一份。

  1. 修改port口,这样就不用修改stm32的代码了,继续可以用之前的led.elf,根据我新建的图像中led的位置修改xywh。
static GPIOLEDInfo stm32f4_discovery_leds_info[] = {
    {
        .name = "led:green",
        .active_low = false,
        .colour_name = "green",
        .x = 50,//258,
        .y = 34,//218,
        .w = 34,//8,
        .h = 17,//10,
        .gpio_path = DEVICE_PATH_STM32_GPIO_G,//DEVICE_PATH_STM32_GPIO_D,
        .irq_name = STM32_IRQ_GPIO_ODR_OUT,
        .gpio_bit = 13//12,
    /**/
},
  1. 修改jpg图片名称
cortexm_board_init_graphic_image(board,"appleboard.jpg");//(board, "STM32F4-Discovery.jpg");
  1. 修改开发板名称和描述
static void stm32f4_discovery_board_class_init_callback(ObjectClass *oc,
        void *data)
{
    MachineClass *mc = MACHINE_CLASS(oc);

    mc->desc = "Apple Cai's sim board";//"ST Discovery kit for STM32F407/417 lines";
    mc->init = stm32f4_discovery_board_init_callback;
}

static const TypeInfo stm32f4_discovery_machine = {
    .name = BOARD_TYPE_NAME("Applecai-board"),//("STM32F4-Discovery"),
    .parent = TYPE_CORTEXM_BOARD,
    .class_init = stm32f4_discovery_board_class_init_callback,
/**/
};

四,输出物

编译通过后,查看支持的board,已经看到我自定义的开发板。
通过命令仿真之前的led.elf需要修改board和mcu的参数,绿色的LED能点亮。
qemu-system-gnuarmeclipse --verbose --verbose --board Applecai-board --mcu STM32F407VG -d unimp,guest_errors --image led.elf --semihosting-config enable

image.png

五,小结

好了,我的进度已经和2年前衔接了,之后会继续深入,不断探秘,今天的小目标顺利完成~

上一篇 下一篇

猜你喜欢

热点阅读