2025年7月

The Espressif DevCon24 showed it. https://www.bilibili.com/video/BV1UAHCejEcX/?spm_id_from=333.337.search-card.all.click&vd_source=a24e9520e198932372f0c014624cafa4 Official Doc: https://github.com/espressif/esp-toolchain-docs/blob/main/qemu/esp32c3/README.md It can:

  • Output UART to stdio
  • use internet
  • Use external Flash
  • Use GDB
  • simulate eFuse
  • Sim graphical interface But the QEMU is not perfect. it seems that QEMU can't simulate a lot of peripherals. Like BLE, ADC/DAC, PWM, I2C and so on. So may be you need printf to show them in UART.

When calculating width in CSS, the border and padding is not included. If I make width: 100% and set content in the center with some borders and paddings, the content will not in the center and will be pushed a few to right and bottom. So I can set the following CSS to make width to contain border and padding.

box-sizing: border-box;

A protocol is used for communicating between master and slave device. A suggested minium protocol structure is: HEAD + LENGTH + MSG_TYPE + DATA + TAIL. You can add SEQUENCE if the lower tranmission layer can't guarantee correct data sequence. You can add CHECKSUM if the lower tranmission layer can't guarantee correct data content. HEAD is to determine where a package starts from. LENGTH and TAIL can work together to determine if a package is received completely. A large package could be splited into several small packages and sent seperately. For example, BLE mtu is 20 byte by default, which is very small to send big data.