不得不说,乐鑫在官网的qemu介绍真的藏得很深
首先在首页的sdk的esp-idf页面里找找

然后页面拉倒最下面
入门指南

我这里选择esp32-s3

再点击api指南-》工具
才会看到qemu的介绍

文档中也么有windows的安装方法。
先跳过下面两个标注的,继续往下看我怎么安装windows的vscode的qemu
++++++++++++++++++++++++++++++++++++++++++++++++++++
下面这个是qemu维护的分支。看看就好,要编译,先掠过
esp-toolchain-docs/qemu/README.md at main · espressif/esp-toolchain-docs · GitHub
https://github.com/espressif/esp-toolchain-docs/blob/main/qemu/README.md

++++++++++++++++++++++++++++++++++++++++++++++++++++
=====================插曲==========================
但是乐鑫官网提供的是源代码,我上网找了一个哥们的的文章,有句话说的很好感动了我,选了windows,我干嘛还要去编译。
QEMU for Windows -- Installers (64 bit)QEMU Binaries for Windowshttps://qemu.weilnetz.de/w64/一个德国人的网站,提供了一个安装包,找一个下载安装就好了
这个是那个哥们提供的地址,已经失效了
wget https://qemu.weilnetz.de/w64/qemu-w64-setup-20241124.exe
我重新找了一下地址
wget https://qemu.weilnetz.de/w64/2024/qemu-w64-setup-20241124.exe
用迅雷下载也一样的

173M,不算小
然后,我没装,因为看了一眼那哥们的文章后面一句话

==========================结束插曲==================================
最后他也还是按照乐鑫官网安装的。看来乐鑫说维护一个qemu分支是有原因的。
我问了一下kimi,kimi给了一个安装脚本,试试啊看
idf_tools.py install qemu-xtensa qemu-riscv32

安装了,看下结果
然后项目里运行idf install
整个项目就被重新编译了一遍。等下再看看
编译完,直接运行
idf.py qemu monitor

helloworld就被完美运行了,命令行里看到的和实际跑硬件的代码逻辑输出是一样的
//
下来我在vscode中试试qemu
然后,一直不成功,提示没有安装qemu,经过不懈努力,终于搞明白怎么回事了
不同命令行环境的差异
VSCode 的默认终端是 PowerShell,而 PowerShell 和 CMD 使用不同的环境变量引用方式。
在 CMD 中,使用 %IDF_PATH% 来引用环境变量。
在 PowerShell 中,使用 $env:IDF_PATH 来引用环境变量。
原来是这样,两个环境使用的不同,vscode默认是powershell,这个原因造成的。

这下终于正确了。
idf.py --version 和 Get-Command idf.py是查看版本和查找安装路径的命令。
、、、、、、、、、、、划重点、、、、、、、、、、、、、、
好了,下面这段话,是我花了一晚上时间,终于把idf的安装版本和vscode版本的差别搞清楚了
两者真的是可混淆,也可独立,如果不清除idf的设计意图,还真的是容易一脸懵逼。
单刀直入,说说后来感悟到的设计意图,人家乐鑫一开始就是把框架和工具分开了,
1.比如我的esp-idf-v5.3.1.zip下载下来就是框架文件,直接解压缩就可以了,就是一个完整的框架,里面包含了idf库,包括一些源文件啥的。components这个文件夹下就是封装了各种功能的代码,我看都是.h和 .c,这么看idf就是开源的了。明白了。
2.第二件事,就是tool工具了,这里我就吐槽了,tool这个文件夹名字让我晕头转向的原因,就是名字不能换一个嘛。。。。。

我们仔细来看,这个其实是一个最最基本的,比如cmake之类的工具,也就是编译器之类的,最基础的自带的一些工具,甚至于没有python,
然后我们讲解安装版和vscode版的区别,
install.bat安装版 ::我们使用install.bat去安装的时候,会使用操作系统内的python,而不是带一个内置python(vscode版却是内置的)。并且,这个安装主要就都是下载和解压缩复制文件,貌似没有操作系统关联的工作,重点是,这个脚本会把项目需要的工具包,安装到
这个位置,他么的名字也叫tools,位置难找,而且文件夹名字一样,我会误以为框架目录下那个就是工具包。其他那个目录交个base_tools多好,反正后续的工具都是安装在其他位置。
vscode插件版::这个插件版本,在配置插件时候有两个文件夹,一个是框架位置,一个是工具包位置。框架位置是你必须选中的就是刚才那个加压缩后的框架位置,所以,两个版本框架位置可以共用(工具位置按照我现在理解也可以共用,但是我就不尝试了,因为我对比了一下文件夹,默认安装,两个文件夹内容都不一致)。框架就选择解压缩后的就行,然后工具包,就是会自动完成安装的工作,而不需要再去脚本执行命令。这个时候,后续项目用到的文件夹,就是你指定的文件夹了。这个关系搞清楚,就不再混淆了。

、、、、、、、、、、、前面是两个版本的区别和关系、、、、、、、、、、、、、、、、、、
好了,两个版本的关系搞清楚了,就不再有啥困扰的了

vscode在他自己的终端窗口去执行命令,就会按照vscode的配置文件中的目录,也就是你的插件安装指定的tools目录中去下载和安装qemu了。
出现在自己定义的文件夹了。
vscode插件版本,在终端中输入
idf monitor qemu
启动qemu。至于右下角那个讨厌的按钮,好像是vscode自带插件的启动方式,好像还需要配置脚本,太多太乱了,有一个能用就行了,我就不再研究了。

==========================================
再说一下xtensa和riscv32两种架构,在乐鑫里主要对应esp32c3和esp32S3,两种最主要的芯片区别在这,架构不同,性能和耗电也不同,应用的方向也不同。
早期的esp32系列是Xtensa架构,8266是RISC 架构。
这么看乐鑫好像esp32和8266算是第一代,每个架构各一个产品系列
到最近几年第二代主流芯片就是c3和s3这俩最火了,也是每个架构各一个。
我只用过这四个芯片,所以给我的主观感受是这样,好了,本文结束了。