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

问题描述 投票:21回答:2

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

arm qemu cortex-m
2个回答
26
投票

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

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

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


0
投票

您可以使用Jumper Virtual Lab进行模拟,查看来自ARM mBed的this blog帖子。

© www.soinside.com 2019 - 2024. All rights reserved.