何春辉的Tiny386将ESP32-S3变成一台功能齐全的386电脑。
He Chunhui's Tiny386 Turns an ESP32-S3 into a Fully-Functional 386-Powered PC

原始链接: https://www.hackster.io/news/he-chunhui-s-tiny386-turns-the-humble-esp32-s3-into-a-fully-functional-386-powered-desktop-pc-5454cf6e36a1

开发者何春辉取得了一项了不起的成就:使用名为Tiny386的模拟器,在微小的Espressif ESP32-S3微控制器上运行Windows 95和其他16/32位软件。这个项目有效地将这款低成本芯片变成了一台可用的“90年代PC。 Tiny386是一个可移植的、基于C99的x86模拟器,围绕一个定制的i386 CPU模拟器构建(约6千行代码)。虽然缺乏调试等功能,但它成功地模拟了足够的架构来运行经典软件,如Doom,甚至启动Linux。 尽管ESP32-S3的成本和功耗远低于原始386处理器,但其240MHz双核处理器在外部RAM的帮助下,足以进行模拟。该模拟器包括模拟的VGA图形、网络和声卡选项(PC扬声器、Adlib、SoundBlaster)。 该项目在GitHub上开源,展示了现代微控制器重现和运行遗留软件的潜力。

## Tiny386:基于ESP32-S3的386 PC 何春辉创建了“Tiny386”,这是一款能够将ESP32-S3微控制器变成一台可运行的386 PC的模拟器。该项目在Hacker News上引发了关于其性能的讨论,一些人推测其性能可能与真正的386系统相当。用户建议使用Speedsys和Landmark等DOS游戏进行基准测试,以测试其能力。 对话还涵盖了ESP32-S3开发板的负担能力,包括带有内置显示器的选项,价格在20-30美元之间。多位用户推荐了Waveshare、Spotpear(通过AliExpress)和Microcenter的Inland品牌,以提供经济实惠的板卡。 有趣的是,该项目支持足够多的486/Pentium指令,理论上可以启动现代Linux,但一些人认为它更适合较旧的系统,如Windows 3.11。该项目突出了现代微控制器的惊人能力及其在复古计算方面的潜力。
相关文章

原文

Developer He Chunhui has turned the humble Espressif ESP32 microcontroller into a fully-fledged '90s personal computer with Tiny386 — a resource-efficient emulator capable of running Microsoft Windows 95 and a range of 16- and 32-bit software packages on the low-cost chip.

"Tiny386 is a x86 PC emulator written in C99," Chunhui explains of the project. "The highlight of the project is its portability. It now boots Windows 9x/NT on MCU [Microcontroller Units] such as [the Espressif] ESP32-S3. The core of the project is a built-from-scratch, simple and stupid [Intel] i386 CPU emulator. Some features are missing, e.g. debugging, hardware tasking, and some permission checks, but it should be able to run most 16/32-bit software."

What once took a shiny new desktop computer can be achieved with a low-cost microcontroller — thanks to Tiny386. (📹: He Chunhui)

The 80386, more commonly known as the 386 and later rebadged as the i386, was released in 1985 as the successor to the best-selling 80286, expanding the nascent x86 architecture's capabilities with a six-stage instruction pipeline and support for 32-bit operation with an on-board memory management unit. It was, at the time, a powerful chip and found a home in desktops, laptops, and even servers of the era.

The Espressif ESP32-S3, by contrast, is a low cost — but nevertheless highly capable — microcontroller, available for a fraction of the price of the 386 in its heyday and drawing considerably less power. Despite this, it's also a lot more powerful: the 386 was available in clock speeds of 12MHz up to 40MHz; the ESP32-S3 features a pair of Tensilica Xtensa LX7 cores running at 240MHz. That gap in power means, somewhat surprisingly, it's possible to emulate a mostly-functional 386 PC using just the ESP32-S3 plus some external pseudo-static RAM.

The Tiny386 runs on the microcontroller itself — though is designed for portability to other platforms, with Chunhui releasing a demo that runs in-browser — and, despite having some functionality stripped out, can run a wide range of software including, naturally, Id Software's 1993 classic first-person shooter Doom. The project borrows peripherals from other emulators to flesh out the system, adding VGA graphics capabilities, an emulated Ethernet network interface, and even a choice of three sound devices: PC speaker, Adlib OPL2 synthesis, and Creative Labs' SoundBlaster 16.

"To boot [a] modern Linux kernel and [Microsoft] Windows, some 486 and 586 instructions are added," Chunhui notes of the overall feature set. "The CPU emulator is kept in ~6k LOC [Lines Of Code]. There is also an optional x87 FPU [Floating-Point Unit] emulator. For firmware, the BIOS/VGABIOS comes from [the] SeaBIOS [project]. Tiny386 also supports booting [the] Linux kernel directly, without traditional BIOS."

Full source code for the project is available on GitHub under the permissive BSD three-clause license, with Chunhui having demonstrated success booting it on the low-cost Guition JC3248W535 ESP32-S3-based LCD development board. Additional information is available on Hackaday.io, with an in-browser demo available via GitHub Pages.

联系我们 contact @ memedata.com