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

Issues

This project is based on an old version of QEMU. There have been efforts to upgrade this project to use a newer version of QEMU see issue #20 for more discussion. Thanks goes to fariouche for making an attempt at updating the QEMU version in their fork of QEMU_STM32, though I am not sure of its status (see posts here and here for more info).

Notably, QEMU STM32 is dependent on Python2, making it incompatible with newer versions of GNU/Linux (thank you to jmfriedt for reporting this - see this post for more info).

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.

Other QEMU STM32 Projects

What’s New

September 12, 2021

December 5, 2018

October 18, 2018

August 15, 2018

July 24, 2018 The following changes have been added in the stm32 branch, though not yet included in a release.

July 15, 2016

April 2, 2016

June 6, 2015 - [Release v0.1.3] (https://github.com/beckus/qemu_stm32/releases/tag/stm32_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: