如何使用自定义外设和内存映射创建QEMU ARM计算机?

muc*_*cka 26 arm qemu cortex-m

我正在为Cortex-M3 cpu编写代码,我正在使用qemu-arm二进制执行单元测试.现在一切正常.但我想知道如果我能够测试整个系统使用qemu-system-arm?我的意思是,我想为qemu编写自定义"机器",我将在其中定义所需的内存映射,最后一些软件模仿所需的外设,是否有这样的模块的一些例子?我发现这方面的信息很少.我已经hw在qemu源代码树的目录中读了一些源代码,但它几乎都没有注释,我仍然不确定我是否理解如何将新机器添加到qemu以及如何将外围设备附加到地址空间?

Vin*_*der 31

要添加自己的机器,至少需要创建一个源文件,其中包含机器的参数和外围设备.之后,在qemu/hw/arm /下的Makefile.objs中添加一个条目.STM32 P103机器入门.

我们以Olimex STM32 P103开发板为例:Olimex STM32 P103开发板代码.在第105行和第106行中,我们有flash_size和ram_size.在第114和115行中,代码添加了一个连接到GPIO A引脚0的LED.在第130行中,我们有机器描述,"Olimex STM32 p103开发板".在第131行,机器初始化函数:stm32_p103_init.机器的另一个例子更完整:Pebble机器代码.

关于外围设备,考虑到stm32案例,它们在每个家庭代码中实例化.stm32f1系列:stm32f1xx.c,stm32f2系列:stm32f2xx.c,stm32f4系列:stm32f4xx.c.外设本身在驱动程序中实现,驱动程序通常具有提示名称:stm32f2xx_adc.c,stm32f2xx_crc.c等.添加新外设的补丁示例:向STM32添加ADC.

  • 非常感谢你的回答.我确实需要那种小费! (2认同)
  • 好,好!抱歉,我忘记提及外围设备了。所以我编辑了帖子以包含更多信息。 (2认同)