It’s important you understand STM32Cube first:
you can get more information about STM32Cube at those links:
- http://www.st.com/st-web-ui/static/active/en/jsp/common/swf.jsp?url=/st-web-ui/active/en/fragment/multimedia/e-presentation/product_pres/ePresSTM32Cube_final.swf&width=850&height=680&title=STM32Cube Basics
In few words, STM32Cube is therefore a mix of 2 elements:
- Embedded software bricks, running on the STM32, with eased mechanisms to switch between 2 STM32s
- A tool on the PC to help configuring an STM32 and generate initialization code that is matching this configuration
The embedded software bricks proposed by STM32Cube can be the roots to create some upper level packages, but keep same underneath base elements compatible.
STM32ODE is exactly this: ST as a company decided to propose a maximum of compatible software on all its components. For instance, a BLE transceiver connected to an STM32 will have its set of software based on STM32Cube embedded software bricks, making it easy at software level to mix components from ST origin. STM32ODE also defines some easy Hardware interconnection withe the STM32Nucleo prototyping boards.
OpenMems is a software library that sits on the very top of STM32Cube embedded software bricks, and matching MEMS components of ST (Motion, Gyros, etc).
Hope this helps !