QEMU 原生不支持 STC 所需的 MCS-51 和 MCS-251 架构仿真,因此无法直接对这两款经典的 MCU 架构进行建模和模拟。
目前 QEMU 已经有了 AVR 和 Tricore 的支持,所以我们在自己的下游仓库中,为 QEMU 增加了 MCS-51 和 MCS-251 的架构支持,并且已经完全开源。这可能是全球第一个为 QEMU 提供这两种架构仿真并开源出来的版本。
我们做这个项目,主要是为了方便大家在拿到实际的硬件板卡之前,就可以在 PC、Mac 或 Linux 平台上进行 STC MCU 的仿真运行。我们按照芯片手册,1:1 地实现了对 STC8G 和 STC32G 两款系列芯片的支持。
大家可以测试运行起来了!
MCS-51 for QEMU 仓库:https://github.com/processmission/qemu
编译/运行参考文档:https://github.com/processmission/qemu/blob/devel/docs/system/target-mcs51.rst
欢迎大家为我们的 GitHub 仓库点点 star 和 fork。如果遇到问题,可以在仓库里面提交 issue!
下面是一些简单的拉取仓库、编译、运行的流程,为了减少大家体验的门槛,我推荐使用 Agent 去获取源码、编译和运行。你可以使用以下 Prompt 给到你的 Agent,让他帮你去获取源码并进行下载,编译,运行:
- 请拉取 https://github.com/processmission/qemu 的源码,然后安装 QEMU 必备的基本环境。根据当前的平台(不管是 Linux、Windows 还是 macOS),把配套依赖的编译运行环境准备好,然后编译它。
复制代码
下面是一些运行的测试命令($QEMU-PATH需要改成你自己的实际 QEMU 的源码仓库目录),可以从 STC 的 ISP 里面提供的串口示例程序,或者使用 SDCC、Keil 编译出来,然后用来在下面的命令上运行测试:
- # MCS-51 → STC8G1K08A 机器(经典 MCS-51 CPU)
- $QEMU-PATH/qemu-system-mcs51 \
- -M stc8g1k08a -bios mcs51_hello.hex -nographic
-
- # MCS-251 → STC32G144K246 机器(STC32 / MCS-251 CPU)
- $QEMU-PATH/qemu-system-mcs251 \
- -M stc32g144k246 -bios mcs251_hello.hex -nographic
-
复制代码
其中参数解析如下:
1. -M:选择 MCU 的型号。
2. -bios:选择加载的目标程序,这里可以选择由 Keil 编译出来的,或者 stcc 编译出来的 hex 文件。
3. -nographic:启动 QEMU 的时候不启动它的 GUI 界面。
在 -nographic 这种启动模式下,串口默认直接输出到终端。你可以使用 Ctrl+A, C 进入 monitor 监视台终端,在里面查看当前 STC 所有的硬件寄存器,也可以访问 STC 所有的片上内存 Flash,并进行操作和调试。
|