What ODeV framework is?
- 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.
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).
Fig.2 - INIT task
Features
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.
Whatch the videos
A short videos shows how to create the Hello World application and another give a quik look at ideas behind the framework.