The ESP32 is a popular microcontroller from Espressif that can be used in many embedded applications. Robotic joints, smart car chargers, beer vat agitators and automated bread mixers are a few examples where this system-on-a-chip excels. It is cheap to buy and has a number of vendors providing low-cost development board kits that come with the microcontroller and many external connection points with peripherals. There is a large software ecosystem for the ESP32. Espressif maintains an SDK containing many C-language sample projects providing a starting point for a huge variety of software services and I/O needs. Third party projects provide additional sample code as well as support for other programming languages. For example, MicroPython is a mature project with sample code and officially supported by Espressif. The SDK provides tools to not just build an application but also merge a flash image, flash to the microcontroller and monitor the output. Is it possible to build the ESP32 load and emulate on another host OS? This paper explores the QEMU emulator and its ability to emulate the ethernet interface for the guest OS. Additionally, we look into the concept of containerizing the entire emulator and ESP32 load package such that a microcontroller flash image can successfully run with a one-step deployment of a Docker container.
翻译:ESP32是由Espressif推出的一款流行的微控制器,可用于许多嵌入式应用,例如机器人关节、智能汽车充电器、啤酒桶搅拌器和自动面包搅拌器等。它价格便宜,并且有许多供应商提供带有微控制器和许多外部连接点与外围设备的低成本开发板套件。ESP32有着庞大的软件生态系统,Espressif维护着一个SDK,其中包含许多C语言示例项目,为巨大的软件服务和I/O需求提供了一个起点。第三方项目提供了额外的示例代码以及对其他编程语言的支持。例如,MicroPython是一个成熟的项目,有样例代码,由Espressif官方支持。本文探讨了QEMU仿真器及其在客户机操作系统下仿真以太网接口的能力。此外,我们还研究了将整个仿真器和ESP32负载包装为容器的概念,以便微控制器闪存映像文件可以成功运行,并能够通过一步部署Docker容器实现。