一哑诊,前言
本輪的第一個(gè)學(xué)習(xí)目標(biāo)就是完成自定義開發(fā)板群扶,我回顧了下之前的學(xué)習(xí)筆記,代碼流又想起來了镀裤。
二竞阐,需求
不用修改原來的stm代碼,僅修改qemu源碼添加自定義開發(fā)板暑劝。
三骆莹,實(shí)現(xiàn)
過程很順利,因?yàn)楦膭?dòng)很小担猛。在boards-discovery.c中修改原來的F407開發(fā)板幕垦,不想再新加了丢氢,若再新加,其實(shí)也就是再copy一份先改。
- 修改port口疚察,這樣就不用修改stm32的代碼了,繼續(xù)可以用之前的led.elf仇奶,根據(jù)我新建的圖像中l(wèi)ed的位置修改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,
/**/
},
- 修改jpg圖片名稱
cortexm_board_init_graphic_image(board,"appleboard.jpg");//(board, "STM32F4-Discovery.jpg");
- 修改開發(fā)板名稱和描述
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衅枫,已經(jīng)看到我自定義的開發(fā)板。
通過命令仿真之前的led.elf需要修改board和mcu的參數(shù)朗伶,綠色的LED能點(diǎn)亮弦撩。
qemu-system-gnuarmeclipse --verbose --verbose --board Applecai-board --mcu STM32F407VG -d unimp,guest_errors --image led.elf --semihosting-config enable
五,小結(jié)
好了论皆,我的進(jìn)度已經(jīng)和2年前銜接了益楼,之后會(huì)繼續(xù)深入,不斷探秘点晴,今天的小目標(biāo)順利完成~