ODeV framework The Blog, a place where thoughts run free...

What is a Platform?



I am approaching this question from my point of view, as embedded software developer.

Long time ago, when I was still a student, I saw a very interesting presentation about software. A key moment was in this minute of video I would like to share with you.

eLooM_blog_what_is_a_platfprm

These were the words that made me think

… the goal here is to literally eliminate 80% of the code that every developer has to write for their app because it’s in common with every other app and let them focus on just the 20% of their code that’s unique and value add to their app”.

(If you are interested, you can watch the full video on YouTube).

That is exactly what make macOS, iOS or even Windows a platform for software developers. We have all the software frameworks and the tools (like IDE, GUI designer, etc.) to make great applications. The order is not accidental. It always starts from good application frameworks, source code, library, collection of objects that a developer can reuse as it is to program for the platform. Code that just works on the platform, because, quoting Steve Jobs again

… the line of code that a developer can write the fastest, the line of code that a developer can maintain the cheapest, and the line of code than never breaks for the user, is the line of code the developer never had to write”.

Then there are the tools, like an IDE, to help a developer to take advantage of that frameworks. The integration of these three elements, great hardware, great application frameworks, great software tools, make a platform.

This idea has been with me since then and it is one of the key point of the eLooM framework for STM32. That is what we are trying to do, a platform for STM32 (not The Platform). There is an important difference between an embedded application and, for example, an iOS application: the hardware for STM32 embedded applications change so much, while, on the other side, we have different models of iPhone (hardware), but their number is very small. Every time an ST customer designs an embedded application powered by STM32, he designs a new board with different components around the MCU.
But this does not make impossible to design an application framework that a developer can use as it is, that just works.

eLooM-SDK, available on stm32-hotspot, is the result of many years of work. Thanks to the adoption of modern object oriented programming paradigm, the framework has key features to become part of a platform for STM32. It has been designed to model multi tasking embedded low power application. It adopts the concept of reusable fw components. Here, reusable does not means that a developer can copy & paste code snippets from some example based on eLooM, but he can reuse the core framework and the eLooM_Components as it is. For example, all the demo applications in the SDK for all the supported boards, as well as all the function packs built with the framework, share the exact same code available as eLooM Component (DPU, SensorManager, EMData), and it just work (unless we find a bug… but this is another story).

eloomtx-sdk_folder_structure

The framework is extensible thanks to the adoption of inheritance and virtual functions. The sofisticate implementation of a state machine that is defined at application level makes easy the implementation of low power features, because it allows to dynamically reconfigure all the application tasks and the hardware (the framework takes care of the complex runtime interaction during the transaction from one state to the other). It has been designed with STM32CubeMX in mind to configure the hardware IP of the chosen STM32, and it has been developed with STM32CubeIDE, so it is natively integrated with the IDE.

Of course eLooM is not perfect and it is not complete, in the sense that it does not cover all the hardware features of the huge STM32 portfolio.

At the end, what is a Platform? My answer is: we have a platform when a developer can focus on just the 20% of his code that's unique and value add to his app.

If you have any comment I will be glad to hear from you.
blog comments powered by Disqus

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.