ODeV framework designed for multitasking low power embedded applications powerd by STM32

What ODeV framework is?

ODeV is the result of the last several years of developing applications for STM32.
  • It is a well structured design pattern to model low power embedded application.
  • It is a framework providing the infrastructure to build your embedded applications.
  • It is a way to make firmware modular and easy to reuse.
  • And, most important, it has been tested on real consumer products.

The main idea

ODeV has been designed starting from one simple observation:

  We can image the firmware of an embedded application as a set of concurrent tasks,
  where each task uses one or more services, and a service uses one or more drivers.

This leads us to design a layered framework where at the bottom there is the Kernel. It is composed by FreeRTOS scheduler, the ARM CMSIS and the STM32Cube HAL.

On top of all layers there are the Application Tasks. Each task export one or more feature.

Layer architecture

Fig.1 - Layer architecture

In an ODeV application, the application tasks are called Managed Tasks. To coordinate the system activities and the managed tasks, there is a special task called INIT. It interacts with two optional application defined objects that are the Application Error Delegate (AED) and the Application Power Mode Helper (APMH).

INIT task

Fig.2 - INIT task


The framework provides the following features:

  • System Initialization
  • Tasks management
  • Power Mode management
  • 2nd Bootloader ready
  • Error management
  • Debug support
  • Eclipse (TrueStudio) integration
  • TA4 integration

More Information

API Documentation

The API documentation is genetared from the source code using Doxygen. It provides all the tecnical details about the framework and the simple demo provided with it.

We use cookies to personalize content and to provide a comment feature. To analyze our traffic, we use basic Google Analytics implementation with anonymized dat. If you continue without changing your settings, we'll assume that you are happy to receive all cookies on the stf12.org website. To understand more about the cookies please see this web page.