找回密码
 立即注册
查看: 209|回复: 7

为 QEMU 增加 MCS-51 和 MCS-251 架构的仿真支持

[复制链接]
已绑定手机

2

主题

8

回帖

98

积分

注册会员

积分
98
发表于 2026-8-1 11:54:31 | 显示全部楼层 |阅读模式
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 两款系列芯片的支持。

截图202608011144289351.jpg

大家可以测试运行起来了!

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,让他帮你去获取源码并进行下载,编译,运行:

  1. 请拉取 https://github.com/processmission/qemu 的源码,然后安装 QEMU 必备的基本环境。根据当前的平台(不管是 Linux、Windows 还是 macOS),把配套依赖的编译运行环境准备好,然后编译它。
复制代码

下面是一些运行的测试命令($QEMU-PATH需要改成你自己的实际 QEMU 的源码仓库目录),可以从 STC 的 ISP 里面提供的串口示例程序,或者使用 SDCC、Keil 编译出来,然后用来在下面的命令上运行测试:
  1. # MCS-51 → STC8G1K08A 机器(经典 MCS-51 CPU)
  2. $QEMU-PATH/qemu-system-mcs51 \
  3.       -M stc8g1k08a -bios mcs51_hello.hex -nographic
  4.   # MCS-251 → STC32G144K246 机器(STC32 / MCS-251 CPU)
  5. $QEMU-PATH/qemu-system-mcs251 \
  6.       -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,并进行操作和调试。

回复

使用道具 举报 送花

已绑定手机

2

主题

8

回帖

98

积分

注册会员

积分
98
 楼主| 发表于 2026-8-1 11:58:10 | 显示全部楼层
预告:后面将为 SDCC 支持 MCS-C251 后端,也会一起开源,配合着这个 QEMU 就可以非常高效的去做编译器的开发,不用依赖真实硬件
回复

使用道具 举报 送花

已绑定手机

32

主题

416

回帖

2721

积分

金牌会员

积分
2721
发表于 2026-8-1 19:29:57 | 显示全部楼层
泽*** 发表于 2026-8-1 11:58
预告:后面将为 SDCC 支持 MCS-C251 后端,也会一起开源,配合着这个 QEMU 就可以非常高效的去做编译器的开 ...

能在多平台下运行,开源,
期待后续的进展。
加油!
学习MCU
回复

使用道具 举报 送花

已绑定手机

2

主题

8

回帖

98

积分

注册会员

积分
98
 楼主| 发表于 2026-8-1 19:55:34 | 显示全部楼层
回复

使用道具 举报 送花

已绑定手机

19

主题

3551

回帖

8057

积分

论坛元老

积分
8057
发表于 2026-8-1 20:48:59 | 显示全部楼层
51就只支持stc8g1k08a吗
回复

使用道具 举报 送花

已绑定手机

2

主题

8

回帖

98

积分

注册会员

积分
98
 楼主| 发表于 2026-8-1 21:18:44 | 显示全部楼层
so*** 发表于 2026-8-1 20:48
51就只支持stc8g1k08a吗

大佬,目前就只做了这一个,先保证功能正确性,后面再去扩展更多的型号,欢迎给 GitHub 仓库点点 star 支持一下
回复

使用道具 举报 送花

已绑定手机

284

主题

490

回帖

2566

积分

金牌会员

积分
2566
发表于 2026-8-2 08:45:17 | 显示全部楼层
为什么不做个UI,像keil一样操作
回复

使用道具 举报 送花

已绑定手机

2

主题

2

回帖

84

积分

注册会员

积分
84
发表于 2026-8-10 22:47:57 | 显示全部楼层
非常棒,希望能尽早加入STC89C52等经典型号
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-23 16:02 , Processed in 0.073551 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表