STM32CubeIde v1.14.0
STM32CubeIde v1.14.0
Release note
Introduction
This release note is updated periodically to keep abreast of STM32CubeIDE evolution, problems, and limitations. Check the
STMicroelectronics website at www.st.com/stm32softwaretools for the latest version. For the latest release summary, refer to
Table 1.
Type Summary
Customer support
For more information or help concerning STM32CubeIDE, contact the nearest STMicroelectronics sales office or use the ST
community at community.st.com. For a complete list of STMicroelectronics offices and distributors, refer to the www.st.com
webpage.
Software updates
Software updates and all the latest documentation can be downloaded from the STMicroelectronics support webpage at
www.st.com/stm32cubeide.
DT61952V1
1 General information
1.1 Overview
STM32CubeIDE is an integrated development environment (IDE) based on the Eclipse® framework. It is aimed at
users developing embedded software in C/C++ for the STMicroelectronics STM32 products. It uses an enhanced
GNU toolchain for STM32, based on GNU Arm Embedded. It has an integrated version of STM32CubeMX and
MCUFinder, which allows easy project configuration as well as the generation of the corresponding initialization C
code through a step-by-step process. Furthermore, STM32CubeIDE integrates the command-line version of
STM32CubeProgrammer (STM32CubeProg) for flash memory handling while using the ST-LINK GDB server.
This allows the STM32 device programming through debug interfaces (JTAG and SWD).
STM32CubeIDE is based on the following technology, with STMicroelectronics specific enhancements:
• Eclipse® 2023-09 and CDT™ version 11.3.0
• GNU tools for STM32, based on GNU Tools for Arm Embedded Processors 11.3.rel1.20230912-1600
• GNU GDB (GNU tools for STM32 11.3.rel1.20230912-1600) 12.1.90.20220802
• The bundled JRE™ is Adoptium® Temurin™ 17.0.8.1_1 and JavaFX-17.0.2
• ST-LINK_gdbserver 7.5.0, supporting ST-LINK/V2 and STLINK-V3
• SEGGER J-Link GDB server V7.92h
• STM32CubeProgrammer (STM32CubeProg) v2.15.0
• Open On-Chip Debugger 0.12.0-00024-gc3ff39f8b
Windows® specific build tools:
• BusyBox v1.31.0.st_20231205-1600_longpath: mkdir.exe, rm.exe, echo.exe
• make-4.4.1_st_20231030-1220_longpath: make.exe
Linux® specific build tools:
• make-4.4.1_st_20231030-1220: make
macOS® specific build tools:
• make-4.4.1_st_20231030-1220: make
STM32CubeIDE supports STM32 32-bit products based on the Arm® Cortex® processor.
Note: • Eclipse is a registered trademark of the Eclipse foundation.
• Adoptium and Temurin are trademarks of the Eclipse foundation.
• Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
1.4 Licensing
STM32CubeIDE is delivered under the Mix Ultimate Liberty+OSS+3rd-party V1 software license agreement
(SLA0048).
The open-source and third-party software components used in the development of STM32CubeIDE and their
licenses are listed in a zip file available from the product page at STMicroelectronics www.st.com web site.
Table 2 provides the description of the licenses of additional components in STM32CubeIDE.
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
• Video tutorials:
– Information Center updated with new videos
– Tutorial Video access added in the help menu
• Microprocessor Linux® bootloader deployment:
– Integration of OpenSTLinux Distribution v4.1.0
– Creation of “MPU SSH weston” connection for GTK application debug
• SFRs view:
– Possibility to create tabs with subsets of peripherals and registers
– Dump of all peripheral registers to a file
– Possibility to read the registers via live channel
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
• RTOS support improvements: full call stack for all tasks in the Debug view
• New feature highlight in the Information Center
• Projectless debug support: debug is possible with an elf file and no STM32 project
• Thread-safe malloc solution
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
ID Summary
101797 Updating the .ioc file no longer opens multiple project files on MPU projects.
102318 The Manage Embedded Software dialog now works correctly on macOS®.
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
ID Summary
Build system improvements with respect to incremental builds. The build system now detects additional GUI
88719
option changes.
90364 Fixed issue with STM32CubeMX building libraries in the wrong order.
95784 Linux® tar.gz generic installer packages now report if the installation failed due to insufficient disk space.
96347 STM32CubeMX no longer reverts C++ projects to C projects upon the next code generate operation.
STM32CubeIDE 1.6.0 bundles a new JRE™ supporting Java® 11 fixing issues with Eclipse® Marketplace plug-
98703
ins such as eGit.
98999 STM32H7 series: fixed issue with missing memory regions in linker scripts.
99421 STM32WB30xx: fixed issue with memory region Ram_Shared being set to the wrong address.
STM32Cube project generation outside the “default location” no longer cleans the folder in case of folder
99537
access permission issues.
100002 FreeRTOS™ and Azure® RTOS ThreadX debug views now support dark theme.
100209 Fixed issue leading to main.c being generated in the wrong folder for hierarchical projects.
ID Summary
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.4.x
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
With STM32CubeIDE v1.5.0, the option “Disable thread-safe initialization of local static objects (-fno-
threadsafe-statics)” has changed the default value from “true” to “false”. This means that both flash
memory and RAM usages are slightly increased with respect to previous versions of STM32CubeIDE, with the
benefit of removing a potential race condition in the embedded code. To preserve the old behavior, make sure
that the checkbox for the option is checked under [Project properties]>[C/C++ Build]>[Settings]>[Tool
Settings]>[MCU G++ Compiler]>[Optimization].
ID Summary
89316 Debug configuration for STM32L4+ is missing low-power and watchdog selections for ST-LINK GDB server.
93098 Headless build script should return with the same exit code as sub-process.
ID Summary
90615 [STM32CubeMX] Unexpected project data deletion when some utilities are used.
90636 [STM32CubeMX] IRQ priorities for some "Non-System" IPs are set to minimal values after project migration.
90727 [STM32CubeIDE] Fixed issue with OpenOCD not being able to use with third-party debug probes.
• Additional support for STM32MP1 devices: STM32 MPU OpenSTLinux 2.0 SDK and project support
• Additional support for STM32H7 devices
• Additional support for STM32G4 devices
• OpenOCD support improvements
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.2.0
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
ID Summary
47930
STM32CubeIDE Serial Wire Viewer selecting large amounts of data to copy to the clipboard no longer crashes
62821
STM32CubeIDE.
87084
Debugging a project using ST-LINK GDB server on a board and having multiple boards connected to the PC
72289
works if Shared ST-LINK is selected.
An STM32MP1 project generated with STM32CubeMX can be debugged in both the engineering and
73302
production modes.
ID Summary
79013 Changing the call order in the Advanced Settings tab can now be saved.
81455 It is now possible to save the DDR tuning configuration.
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE v1.2.0
or later versions. Existing projects made with a previous version of STM32CubeIDE must be imported and
copied into the new workspace.
ID Summary
63770 The Linux® installers no longer install any packages before the license agreement is accepted.
The run configuration and [Run] button now allow the user to download and reset the device without launching
64277
a full debug session.
66769 Importing the ioc file created by stand-alone STM32CubeMX is now fully supported.
72960 Peripherals are correctly initialized when creating an STM32CubeIDE project for several STM32G4 boards.
72978 Now all STM32CubeIDE projects for STM32H7 boards can be built.
Pin assigment in ioc-editor pinout view on STM32L5, STM32MP1 and STM32H7 devices now works and
73657
leads to a dirty ioc file no longer requiring the user to manually generate code with the Alt + K shortcut.
75322 It is now possible to adjust JTAG/SWD frequency through the UI for ST-LINK GDB server.
Debug in low-power modes are now selectable in the debug configuration dialog when using ST-LINK GDB
75927
server.
75934 It is now possible to configure watchdog counters during debugging for ST-LINK GDB server.
Fix for external Flash loaders. Added option –external-init to the ST-LINK GDB server. Use this option
76789
to call Init() after reset. Calling Init() was previously the default behavior.
80498 It is now possible to use absolute paths to .elf files in the debug configuration.
ID Summary
The macOS® installer displays incompatible version dialog when installing the stlink-server package. This can
62132
safely be ignored.
66327 Updating field [HCLK] in tab Clock Configuration is difficult.
Importing a project from an earlier version into the current one will hang STM32CubeIDE when opening the .
69113
ioc editor. This only affects macOS®.
In the STM32CubeMX .ioc editor under [Project Manager]>[Code Generator], there is a [settings] button
69233
that is not yet implemented.
Null Pointer Exception occurs when trying to create a new debug configuration on a hierarchical root project,
70529
selecting OpenOCD debug probe, and changing some options.
ID Summary
For importing an MPU project, consult application note Getting started with projects based on the STM32MP1
73310
Series in STM32CubeIDE (AN5360).
73521 For STM32H7 devices using OpenOCD, the Cortex®-M7 must launch the debug session first.
Projects with a debug configuration from a previous version of STM32CubeIDE need to disable, click [apply],
73635
and then enable SWV and Live Expressions.
ST-LINK GDB-server debugger may lose control over STM32H7 dual-core devices during reset operations.
73652 This is less prevalent if Flash loading is disabled. Preferrably use multiple use case oriented debug
configurations.
ST-LINK GDB-server debugger may fail while attaching to a core in a low-power state, even if option Halt
73785 all cores is enabled. This is circumvented by waiting to attach to the core until the application has exited
any low-power state.
The [Reset] toolbar button might fail during a multi-core debug scenario. Restart of the debug session is then
73790
required.
ST-LINK GDB-server does not work properly with the macOS® version of STM32CubeIDE. The use of
73890
OpenOCD or J-Link is required.
78587 STM32L5 empty projects have incorrect linker scripts.
Important: STMicroelectronics recommends that a new workspace is created for the work done with STM32CubeIDE
v1.1.0. Existing projects made with a previous version of STM32CubeIDE must be imported and copied into the
new workspace.
ID Summary
64364 The [Help]>[Data refresher] can be invoked several times without pop-up dialog.
The creation of static libraries with the option add libraries as reference leads to the unintended
65331
generation of the Drivers folder.
Creating a BOARD project with Code generator options add necessary library files as
65482 reference.. and initialize all peripherals with default settings can cause
build errors if BOARD depends on the USB library.
66391 The Generate code operation re-includes excluded files in folders that are created by STM32CubeMX.
The user cannot change Application Structure from Basic to Advanced or vice versa without losing user's
68131
code.
When creating an empty project, the FPU is enabled in the build settings, but the project is generated without
69380
a SystemInit function to initialize FPU at run-time.
Pre- and post-build steps, build configuration, and non-STM32CubeMX generated files inside project and
71371
others get deleted when project is regenerated.
ID Summary
Conditional breakpoints do not work. Fixed in ST-LINK and J-Link provided that Live expressions is
56619
enabled.
61897 On macOS®, the ioc editor does not show the Peripheral categories frame on the left side by default.
62712 Opening one ioc file and trying to open a second ioc file while the first one loads causes the IDE to crash.
65141 The uninstaller sometimes does not work on non-English Windows® installations.
65335 The font size menu is not available for ioc editor content.
65452 Changing from HAL to LL driver or vice versa in the ioc editor does not save the ioc file.
The USE_HAL_DRIVER symbol is not properly removed when switching from HAL to LL driver, which can
65458
cause build failure.
ID Summary
67014 Fixed project nature warning message when importing SW4STM32 projects.
3.27.1 Features
• Integration of STM32CubeMX that provides services for:
– STM32 microcontroller selection
– Pinout, clock, IP, and middleware configuration
– Project creation and generation of the initialization code
• Based on Eclipse®/CDT, with support of Eclipse® add-ons
• GNU C/C++ for Arm® toolchain and GDB debugger:
– GNU Arm Embedded
– GNU tools for STM32, with enhancements compared to the standard toolchain
• Additional advanced features including:
– Build Analyzer view
– Static Stack Analyzer view
– CPU core, IP register, and memory views
– Live Expressions view
– System analysis and real-time tracing views (SWV)
– Fault Analyzer view
– ITM software tracing
– SFR view
• Support of STMicroelectronics ST-LINK/V2 and STLINK-V3:
– ST-LINK_gdbserver 5.2.2
– OpenOCD 0.10.0+dev00021-g524e8c8
• Support of SEGGER J-Link
– SEGGER J-Link gdbserver v6.44c
• Import of projects from Atollic® and AC6 System Workbench for STM32
Revision history
Table 15. Document revision history
Contents
1 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Host PC system requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Setup procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Cross-selector data disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 STM32CubeIDE v1.14.1 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Previous release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 STM32CubeIDE v1.14.0 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 STM32CubeIDE v1.13.2 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 STM32CubeIDE v1.13.1 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 STM32CubeIDE v1.13.0 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 STM32CubeIDE v1.12.1 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.6 STM32CubeIDE v1.12.0 release information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.6.1 New feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.6.2 Fixed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6.3 Known problems and limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
List of tables
Table 1. STM32CubeIDE v1.14.1 release summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Table 2. Complementary component licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Table 3. Main issues fixed in STM32CubeIDE v1.6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Table 4. Main issues fixed in STM32CubeIDE v1.6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Table 5. Main issues fixed in STM32CubeIDE v1.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Table 6. Main issues fixed in STM32CubeIDE v1.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Table 7. Main issues fixed in STM32CubeIDE v1.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Table 8. Main issues fixed in STM32CubeIDE v1.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table 9. Main issues fixed in STM32CubeIDE v1.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table 10. Main issues fixed in STM32CubeIDE v1.3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 11. Main issues fixed in STM32CubeIDE v1.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 12. Main issues fixed in STM32CubeIDE v1.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 13. Main issues fixed in STM32CubeIDE v1.0.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Table 14. Main issues fixed in STM32CubeIDE v1.0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Table 15. Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21