View on GitHub

Qemu STM32

QEMU with an STM32 microcontroller implementation

Download this project as a .zip file Download this project as a tar.gz file

Features

The latest release of QEMU STM32 includes the following features. Note that only basic functionality may be provided - there will inevitably be features (especially uncommon features) that are not emulated. I have included links to the relevant commits or files.

The Pebble Smartwatch also has a QEMU emulator with STM32 functionality (it was originally based on the QEMU STM32 project). It is located at: https://github.com/pebble/qemu . While I have not tried the Pebble emulator, it seems quite extensive, with more peripherals (e.g. I2C and SPI) and the ability to emulate different STM32 families.

What's New

July 15, 2016

April 2, 2016

June 6, 2015 - Release v0.1.3

Usage

The STM32 implementation is kept in the "stm32" branch (the "master" branch contains the unmodified QEMU code). The "stm32" branch may contain commits that make the software unstable or perhaps even uncompilable. Therefore, I recommend that you use the latest tagged release that looks like this: "stm32_v0.x.x". These are considered to be relatively stable, and at least minimally tested.

See the README file for more details on compilation, etc..

Goals

High level goals (in no particular order):

I have started a wiki page with a to-do list, much of which will never become reality.

Status

With a few exceptions, I am not actively developing new functionality. But I do perform maintenance as I have time, including:

I have not yet submitted any patches to QEMU mainstream for a couple of reasons:

  1. This project is still in a state of flux, and I would like the flexibility to change it without going through a patch process.
  2. I suspect it will take some time and effort to go through the submission process - time I would rather put into the project itself. I have also made changes to the core framework, which may not be acceptable in the main QEMU branch or which will need to be modified. I don't see much disadvantage to leaving this as a fork. That being said, there are core components that could benefit other parts of QEMU (i.e. The clock tree objects and unit testing framework) that should be submitted.

Contributions

I welcome and encourage any source code contributions.

Thank you to the following people for submitting patches: