STM32 Embedded Software
STs Offer
STM32 Embedded Software Offer - Overview
Abstraction
Level
Virtual
Machines
With partners
.Net, Java
IS2T, Oracle,
Mountainer, .
Mbed Core
Standard
Peripheral
Libraries
C partners
Micrium, SEGGER,
HCC, .
STM32Cube
STM32Snippets
STM32 Device
-specific
f.i.: STM32F072
Portability Level
STM32 Series
-specific
f.i.: STM32F1
STM32 Family
-specific
Cortex-M based
MCUs
-specific
Any MCU
Beyond MCU
world
ST Offering. Free
Partners Offer
Focus on STs Offer (Free)
STM32Snippets
What is it ?
A collection of code examples, directly based on STM32 peripheral registers, available in
documentation and as software bundles
Target Audience
low level embedded system developers, typically coming from an 8 bit background, used to
assembly or C with little abstraction
Features:
Limitations:
Highly Optimized
Register Level Access
Specific to STM32 devices, not portable directly
between series
Small code expressions
Not matching complex peripherals such as USB
Closely follows the reference manual
Lack of abstraction means developers must
understand peripheral operation at register level
Debugging close to register level
Portability
Optimization
(Memory & Mips)
+++
Available (today) on STM32 L0 and F0 series
Easy
Readiness
Hardware coverage
Standard Peripheral Libraries (SPL)
What is it ?
Collection of C Libraries covering STM32 peripherals
Target Audience
Embedded systems developers with procedural C background. All existing STM32 customer
base prior to the STM32Cube launch, willing to keep same supporting technology for future
projects, and same STM32 series
Features:
Limitations:
Average optimization, fitting lots of
situations
No need for direct register manipulation
100% coverage of all peripherals
Specific to certain STM32 series.
No common HAL API prevents application
portability between series
Easier debugging of procedural code
Middleware libraries may not be unified for each
series
Extensions for complex middleware such
as USB/TCP-IP/Graphics/Touch Sense
Doesnt support forward STM32 series starting
with STM32 L0 and F7
Portability
Optimization
(Memory & Mips)
Easy
Readiness
Hardware coverage
++
++
++
+++
STM32Cube - Embedded software
User code
What is it ?
Full featured packages with drivers, USB, TCP/IP, Graphics,
File system and RTOS
Set of common application programming interfaces, ensuring
high portability inside whole STM32 family
STM32Cube
Middleware
STM32Cube
STM32 Hardware abstraction layer
Target Audience
Embedded system developers with a strong structured C background. New customers
looking for a fast way to evaluate STM32 and easy portability
Features:
Limitations:
High level and functional abstraction
May be challenging to low level C programmers
in the embedded space.
Easy port from one series to another
100% coverage of all peripherals
Integrates complex middleware such as
USB/TCP-IP/Graphics/Touch Sense/RTOS
Can work with STM32CubeMX tool on the
PC to generate initialization code
Higher portability creates bigger software
footprints or more time spent executing
adaptation code
Not Available (today) on STM32 F1 series
Portability
Optimization
(Memory & Mips)
Easy
Readiness
Hardware coverage
+++
++
+++
++
ST Embedded software offer Comparison
Offer
Portability
STM32Cube
Easy
Readiness
+++
STM32Snippets
Standard Peripheral Library
Optimization
(Memory & Mips)
Hardware
coverage
++
++
++
+++
+++
++
+++
++
ST Embedded software offer - Positioning
Abstraction
Level
STM32Cube Embedded Software packages
Libraries, released independently
STM32Cube Middleware level
TCP/
IP
USB
Host /
Device
Gfx
FAT
File
Sys.
RTOS
Touch
Standard Peripheral Libraries
TCP/
IP
USB
Host /
Device
Gfx
FAT
File
Sys.
RTOS
STM32Cube HAL
(Hardware Abstraction Layer)
STM32Snippets
STM32 Device
-specific
f.i.: STM32F072
Touch
Portability Level
STM32 Series
-specific
f.i.: STM32F1
STM32 Family
Availability
Available for STM32
Offer
STM32Snippets
Now
N.A.
N.A.
N.A.
N.A.
N.A.
Now
N.A.
Standard Peripheral Library
Now
Now
Now
Now
Now
N.A.
N.A.
Now
STM32Cube
Now
Jan. 15
Now
Now
Now
May 15
Now
Now
What solution to choose ? An FAQ
1.
I want to use a small footprint MCU, what should I use?
Abstraction has a cost. Therefore, if you need to take benefit from every single bit of
memory, STM32Snippets will be the best choice
2.
I come from 8-bit MCU world, what should I use?
If you prefer direct register manipulation then the STM32Snippets would be a good starting
point. However, if you prefer structure C level programming, then we recommend using
the STM32Cube or SPL
3.
I today use SPL on STM32F103. Should I switch to STM32Cube?
If you intend to use only MCUs that are part of the same series in the future (in this case
STM32 F1 series), then you should remain using SPL
If you plan to use different STM32 series in the future then we recommend considering
STM32Cube as this will make it much easier to move between series
4.
I need a mix of portability and optimization. What can I do?
You can use the STM32Cube and replace some of the calls with your specific optimized
implementations, thus keeping maximum portability and isolating areas that are not
portable, but optimized
10
Migrating between offers
To
From
STM32Snippets
SPL
STM32Cube
Not possible
Not possible
Easy within same STM32 serie.
Not possible today
Easy within same STM32 serie.
Ex: Between STM32F072 and STM32F030
STM32Snippets
Almost not possible between
different series
Ex: Between STM32F103 and STM32F334
Standard
Peripheral Library
(SPL)
Ex: Between STM32F401 and STM32F429
Some (but not all) SPL functions
can be replaced with Snippets
Difficult between different
STM32 series
Note: ST studies addition of APIs in
STM32Cube to ease that migration
Ex: Between STM32F100 and STM32F407
STM32Cube
embedded
software package
Some (but not all) STM32Cube
functions can be replaced with
Snippets
Not possible
Yes. Across all STM32 family
11
Thank you
/STM32
@ST_World
st.com/e2e
http://www.st.com/stm32embeddedsoftware
12