windows上运行qemu仿真stm32板子a9板子实例

时间:2022-12-12 21:59:10


由于网上的教程大部分都是基于Linux系统搞的,其实从初学者的易用性来说,这是不方便的,因为我们还得装个虚拟机,还得装个Ubuntu,还得配一些环境,甚至还得命令行编译出来,很繁琐的,中间出错了,估计还得整好久。

关于qemu的入门大全,先看我这篇文章:​​qemu的详细资料大全(入门必看!!!)_标biao的博客

windows系统上,这里我们搞了两个板子的仿真:

一个是arm的cortex-a9

  1. 这个去官方下载原版qemu的exe即可,​​QEMU​
  2. 这个exe非常大,因为里面包含了各种体系结构cpu的模拟,需要安装,把qemu这个路径加入环境变量
  3. 去这个教程这儿下载一个裸机程序吧,​​GitHub - SilentAlice/alice-os at 9d021c0ca4d7a520aa3017108d5906d1661e9bb4​
  4. 其实打开后,可以发现启动文件写得非常非常简单,咱们初学者嘛,当然越简单越好。确保自己电脑的环境变量已经有 mingw32-make.exe了,然后在这个makefile文件这儿打开powershell命令行窗口,直接  mingw32-make.exe qemu-telnet 命令即可(关于这个命令,自己打开makefile看看就明白了)。这里有一点需要说明,编译可能会报错,把mov指令,改成ldr即可,立即数加一个等号,就能编译完成了(就是把0x250这个立即数加载到寄存器r0),而且还把目标文件加载到qemu去运行了。如下:



    关于qemu这些选项的作用,自己看看这个作者教程 ​​​Alice OS 0-Preparation | SilentMing's Gensokyo​​,或者搜索资料看看吧,很好理解的
  5. 确保自己windows电脑打开了 telent (看我这篇博客:​​windows安装telnet工具_标biao的博客​​​),输入命令: 
    telnet localhost 1234
    即可连接上这个qemu,
  6. 然后通过命令:
    info registers
    即可查看当前所有寄存器的值,验证我们的寄存器r0是否是 0x250,从而证明一切OK了

更多的相关教程,请看这个作者的博客: ​​Alice OS 0-Preparation | SilentMing's Gensokyo​​,如果还不满足,那就看我这个博客推荐的其他教程吧:qemu的详细资料大全(入门必看!!!)_标biao的博客



令一个是arm的cortex-m3的stm32f103

  1. 去下载支持stm32f103的魔改qemu编译好的exe文件,​​https://github.com/xpack-dev-tools/qemu-arm-xpack/releases/​
  2. 这个不用安装,只需要加入环境变量即可(目的是为了任何地方打开命令行powershell,都能调用到这个 qemu-system-gnuarmeclipse.exe)
  3. windows上运行qemu仿真stm32板子a9板子实例


  4. 我们随便打开一个powershell命令行窗口,可以发现是支持模拟stm32-p103这个板子的
  5. windows上运行qemu仿真stm32板子a9板子实例


  6. 去github下载stm32-p103这个板子的各种demo程序,​​https://github.com/beckus/stm32_p103_demos​
  7. windows上运行qemu仿真stm32板子a9板子实例


  8. 确保自己电脑的环境变量已经有 mingw32-make.exe了,然后在这个makefile文件这儿打开powershell命令行窗口,直接  mingw32-make.exe 命令即可,等待一下,就全部编译完成了
  9. 在demo文件夹内,每个demo例程中都会生成一个目标文件了,我们就是下载它到板子上
  10. windows上运行qemu仿真stm32板子a9板子实例


  11. 此时,在这个main.elf这个文件这儿,再打开一个powershell命令行窗口,输入 
    qemu-system-gnuarmeclipse.exe -M STM32-P103 -kernel main.bin
    即可把这个 main.bin 文件加载到qemu中,运行起来了,效果如下:(做得还挺逼真的,哈哈哈)
  12. windows上运行qemu仿真stm32板子a9板子实例