Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / pigweed / repo / pw_sys_io_baremetal_stm32f429 / docs.rst
1 .. _module-pw_sys_io_baremetal_stm32f429:
2
3 -----------------------------
4 pw_sys_io_baremetal_stm32f429
5 -----------------------------
6
7 ``pw_sys_io_baremetal_stm32f429`` implements the ``pw_sys_io`` facade over
8 UART.
9
10 The STM32F429 baremetal sys IO backend provides device startup code and a UART
11 driver layer that allows applications built against the ``pw_sys_io`` interface
12 to run on a STM32F429 chip and do simple input/output via UART. The code is
13 optimized for the STM32F429I-DISC1, using USART1 (which is connected to the
14 virtual COM port on the embedded ST-LINKv2 chip). However, this should work with
15 all STM32F429 variations (and even some STM32F4xx chips).
16
17 This backend has no configuration options. The point of it is to provide bare-
18 minimum platform code needed to do UART reads/writes.
19
20 Setup
21 =====
22 This module requires relatively minimal setup:
23
24   1. Write code against the ``pw_sys_io`` facade.
25   2. Specify the ``dir_pw_sys_io_backend`` GN global variable to point to this
26      backend.
27   3. Build an executable with a main() function using a toolchain that
28      supports Cortex-M4.
29
30 .. note::
31   This module provides early firmware init and a linker script, so it will
32   conflict with other modules that do any early device init or provide a linker
33   script.
34
35 Module usage
36 ============
37 After building an executable that utilizes this backend, flash the
38 produced .elf binary to the development board. Then, using a serial
39 communication terminal like minicom/screen (Linux/Mac) or TeraTerm (Windows),
40 connect to the device at a baud rate of 115200 (8N1). If you're not using a
41 STM32F429I-DISC1 development board, manually connect a USB-to-serial TTL adapter
42 to pins ``PA9`` (MCU TX) and ``PA10`` (MCU RX), making sure to match logic
43 levels (e.g. 3.3V versus 1.8V).
44
45 Sample connection diagram
46 -------------------------
47
48 .. code-block:: text
49
50   --USB Serial--+    +-----STM32F429 MCU-----
51                 |    |
52              TX o--->o PA10/USART1_RX
53                 |    |
54              RX o<---o PA9/USART1_TX
55                 |    |
56   --------------+    +-----------------------
57
58 Dependencies
59 ============
60   * ``pw_sys_io`` facade
61   * ``pw_preprocessor`` module