wokwi-features
QEMU
wokwi-features | QEMU | |
---|---|---|
130 | 190 | |
65 | 9,313 | |
- | 1.7% | |
0.0 | 10.0 | |
over 2 years ago | 4 days ago | |
C | ||
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wokwi-features
-
Getting into Robotics as a Software Engineer
No, no - I have a half a dozen RPi's of varying revisions. Since they run Linux and the SDcards are less than robust, anytime you accidentially trip the power (which to me happens several times during hardware debugging sessions) you risk scrambling the rootfs and thus need to reflash a new SDcard. Some SDcards get damaged.
I recommend using Arduino and/or Wokwi (https://wokwi.com/) to get started.
- Wokwi – Simulate IoT Projects in the Browser
- Simulate IoT Projects in the Browser
-
Embedded Rust Education: 2023 Reflections & 2024 Visions
More Wokwi Integration: Wokwi is an amazing embedded simulator and is great for getting started quickly. For a learner, there's no need for toolchain setup or even the purchase of hardware. There are many features as well that make it quite a flexible tool supporting a lot of features right from the browser. Users can also vote for more features. Still maybe at some point, one might want to tinker with physical hardware. However, at that point, they would have gained some confidence first. Currently, only ESP boards are supported with Rust on Wokwi. I hope for the variety to expand soon.
-
Need advice on Arduino projects and programming
In addition to the other great suggestions here I wanted to point out that you can practice and learn a lot for free using an online simulator such as wokwi.com and tinkercad.com (among others)! And you don't have to buy an Arduino or any parts to get started!
-
Arduino calender clock project
And you can prototype all of this first to get it working for free using an online simulator at sites like wokwi.com or tinkercad.com!
-
How do I get better at Low level programming
If you don't have the budget for real hardware consider the simulator at https://wokwi.com/ It works with Rust (at least for ESP32, haven't tried other architectures). Bonus: you can't blow up the electronics by a wiring mistake.
-
Have many folks played around with Chatgpt and FastLED?
I spent a bit of time today with a few FastLED programs and uploaded them to wokwi.com on a simulated Arduino Nano and a WS2812 strip of 64 LED's (not in a 2D matrix). The chatgpt requests I made were:
-
Jumperless: Breadboard Without Jumper
https://tinyurl.com/yr34sym6
https://wokwi.com/ is great for simple, digital only stuff.
https://fritzing.org/ will kind of lay out the PCB for you, but it's kind of a pain in the ass.
Wokwi and Fritzing are more "Breadboard Simulators" than real circuit simulators, but they do have their place.
-
I built a working automated dry chamber with an Arduino and a thermoelectric wine cooler and want to make the project open source.
Another cool thing you may want to try is making a simulator https://wokwi.com/
QEMU
-
QEMU Version 9.0.0 Released
My most-wanted QEMU feature: https://github.com/qemu/qemu/commit/a2260983c6553
Using `gic-version=3` on macOS you can now use more than 8 cores on ARM chips.
-
Autoconf makes me think we stopped evolving too soon
A better solution is just to write a plain ass shell script that tests if various C snippets compile.
https://github.com/oilshell/oil/blob/master/configure
https://github.com/oilshell/oil/blob/master/build/detect-pwe...
Not an unholy mix of m4, shell, and C, all in the same file.
---
These are the same style as a the configure scripts that Fabrice Bellard wrote for tcc and QEMU.
They are plain ass shell scripts, because he actually understands the code he writes.
https://github.com/qemu/qemu/blob/master/configure
https://github.com/TinyCC/tinycc/blob/mob/configure
OCaml’s configure script is also “normal”.
You don’t have to copy and paste thousands of lines of GNU stuff that you don’t understand.
(copy of lobste.rs comment)
-
WASM Instructions
Related:
A fast Pascal (Delphi) WebAssembly interpreter:
https://github.com/marat1961/wasm
WASM-4:
https://github.com/aduros/wasm4
Curated list of awesome things regarding WebAssembly (wasm) ecosystem:
https://github.com/mbasso/awesome-wasm
Also, it would be nice if there was a WASM (soft) CPU for QEMU, which (if it existed!) would go here:
https://github.com/qemu/qemu/tree/master/target
-
Revng translates (i386, x86-64, MIPS, ARM, AArch64, s390x) binaries to LLVM IR
> architectural registers are always updated
In tiny code, the guest registers (global TCG variables) are stored in the host's registers until you either call an helper which can access the CPU state or you return (`git grep la_global_sync`). This is the reason why QEMU is not so terribly slow.
But after a check, this also happens when you access the guest memory address space! https://github.com/qemu/qemu/blob/master/include/tcg/tcg-opc... (TCG_OPF_SIDE_EFFECTS is what matters)
But still, in the end, it's the same problem. What QEMU does, can be done in LLVM too. You could probably be more efficient in LLVM by using the exception handling mechanism (invoke and friends) to only serialize back to memory when there's an actual exception, at the cost of higher register pressure. More or less what we do here: https://rev.ng/downloads/bar-2019-paper.pdf
-
State of x86-64 emulation of non-MacOS binaries
Um, in case you don't know, UTM (based on QEMU) is out for quite a while.
-
Multipass: Ubuntu Virtual Machines Made Easy
Some of these tools include Oracle VM VirtualBox (that I've used since before the acquisition of Sun Microsystems by Oracle), VMWare Workstation Player, and QEMU, but last year, I found out about Multipass.
-
Libsodium: A modern, portable, easy to use crypto library
For C/C++ projects that use meson as the build system, there is an excellent way to manage dependencies:
https://mesonbuild.com/Wrapdb-projects.html
https://mesonbuild.com/Wrap-dependency-system-manual.html
meson will download and build the libraries automatically and give you a variable which you pass as a regular dependency into the built target:
https://github.com/qemu/qemu/tree/005ad32358f12fe9313a4a0191...
https://github.com/harfbuzz/harfbuzz/tree/main/subprojects
https://github.com/harfbuzz/harfbuzz/blob/37457412b3212463c5...
Or, if you're using proper operating systems, they're managed by the usual package manager, just like everything else.
-
Top 6 Virtual Machine Software in 2023
For all the users of the Linux platform, QEMU is the VM that you should go for. This software comes without any price tag and works as an emulator of various machines with utmost ease and completion; the software uses dynamic translations to emulate hardware peripherals and enhances its overall performance. If you are using QEMU as a virtualizer, then it will function exactly like the host system (provided you have the right set of hardware).
- Show HN: I'm 17 and wrote this guide on how CPUs run programs
-
UTM for Developers
In this tutorial, we set up macOS and Windows virtual machines on UTM, a macOS application that provides a GUI wrapper for QEMU, a powerful open-source emulator and virtualizer. UTM allows you to easily manage and run virtual machines without memorizing complex commands. It also has special handling for macOS, making it simpler to install compared to other virtual machine software.
What are some alternatives?
fritzing-app - Fritzing desktop application
UTM - Virtual machines for iOS and macOS
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
TermuxArch - Experience the pleasure of the Linux command prompt in Android, Chromebook, Fire OS and Windows on smartphone, smartTV, tablet and wearable https://termuxarch.github.io/TermuxArch/
WS2812FX - WS2812 FX Library for Arduino and ESP8266
Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
BIPES - BIPES: Block based Integrated Platform for Embedded Systems allows text and block based programming for several types of embedded systems and Internet of Things modules using MicroPython, CircuitPython, Python or Snek. You can connect, program, debug and monitor several types of boards using network, USB or Bluetooth. No software install needed!
Vagrant - Vagrant is a tool for building and distributing development environments.
epaper_templates - Template-oriented driver for e-paper displays
xemu - Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
led-2d-spiral - 2D LED Spiral for Wokwi AVR Simulator
em-dosbox - An Emscripten port of DOSBox