Giter Club home page Giter Club logo

esp32-tinyemu's Introduction

TinyEMU on ESP32 (and other systems, embedded or otherwise)

This project is based on Fabrice Bellard's TinyEmu RISCV emulator ported to Windows and ESP32.

It uses virtual memory based on files to provide the emulator with desired RAM.

  • RISC-V system emulator supporting the RV128IMAFDQC base ISA (user level ISA version 2.2, priviledged architecture version 1.10) including:
    • 32/64/128 bit integer registers
    • 32/64/128 bit floating point instructions (using the SoftFP Library)
    • Compressed instructions
    • Dynamic XLEN change
  • VirtIO console, network, block device, input and 9P filesystem (inactive at this time)

ESP32

IMAGE ALT TEXT HERE

  • it takes about 5 seconds to start the kernel
  • 1:35 more to get to the init
  • 3:20 more to run init and get to bash
  • 24 more seconds to finish ls -l in the root

Currently there's no support for networking but it should be pretty easy to implement, though I'm not sure how functional its going to be given the above stellar execution time.

Compile and Upload to ESP32

pio run -e esp32 -t upload

Basic Configuration

The arguments for running temu on ESP32 are hardcoded to root-riscv32.cfg on sdcard under emu subfolder, you should put your bbl, kernel and rootfs in the same folder and configure it:

{
    version: 1,
    machine: "riscv32",
    memory_size: 128,
    bios: "bbl32.bin",
    kernel: "kernel32.bin",
    cmdline: "console=hvc0 debug ignore_loglevel earlycon=sbi root=/dev/vda rw",
    drive0: { file: "rootfs32.bin" }
}

How to build your own linux

Please see buildroot-tinyemu

References

esp32-tinyemu's People

Contributors

drorgl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.