xref: /qemu/docs/system/arm/stm32.rst (revision 727385c4)
1STMicroelectronics STM32 boards (``netduino2``, ``netduinoplus2``, ``stm32vldiscovery``)
2========================================================================================
3
4The `STM32`_ chips are a family of 32-bit ARM-based microcontroller by
5STMicroelectronics.
6
7.. _STM32: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
8
9The STM32F1 series is based on ARM Cortex-M3 core. The following machines are
10based on this chip :
11
12- ``stm32vldiscovery``  STM32VLDISCOVERY board with STM32F100RBT6 microcontroller
13
14The STM32F2 series is based on ARM Cortex-M3 core. The following machines are
15based on this chip :
16
17- ``netduino2``         Netduino 2 board with STM32F205RFT6 microcontroller
18
19The STM32F4 series is based on ARM Cortex-M4F core. This series is pin-to-pin
20compatible with STM32F2 series. The following machines are based on this chip :
21
22- ``netduinoplus2``     Netduino Plus 2 board with STM32F405RGT6 microcontroller
23
24There are many other STM32 series that are currently not supported by QEMU.
25
26Supported devices
27-----------------
28
29 * ARM Cortex-M3, Cortex M4F
30 * Analog to Digital Converter (ADC)
31 * EXTI interrupt
32 * Serial ports (USART)
33 * SPI controller
34 * System configuration (SYSCFG)
35 * Timer controller (TIMER)
36
37Missing devices
38---------------
39
40 * Camera interface (DCMI)
41 * Controller Area Network (CAN)
42 * Cycle Redundancy Check (CRC) calculation unit
43 * Digital to Analog Converter (DAC)
44 * DMA controller
45 * Ethernet controller
46 * Flash Interface Unit
47 * GPIO controller
48 * I2C controller
49 * Inter-Integrated Sound (I2S) controller
50 * Power supply configuration (PWR)
51 * Random Number Generator (RNG)
52 * Real-Time Clock (RTC) controller
53 * Reset and Clock Controller (RCC)
54 * Secure Digital Input/Output (SDIO) interface
55 * USB OTG
56 * Watchdog controller (IWDG, WWDG)
57
58Boot options
59------------
60
61The STM32 machines can be started using the ``-kernel`` option to load a
62firmware. Example:
63
64.. code-block:: bash
65
66  $ qemu-system-arm -M stm32vldiscovery -kernel firmware.bin
67