MBED double framework

Hi,
one of the most important feature on platformio is the Mbed support, because you know that mbed do not have an official offline compiler.

But from many months we have two different Mbed framework.
we have the mbed-classic and the mbed-os

The mbed-classic (also named mbed-dev) is not the old mbed, and the mbed-os is not the new and it do not sobstitute the classic. it’s two different product that will always mantained.
The mbed-classic do not include an OS, you can add to it an OS if you want, but it do not have an integrated ones. So it is the classic single thread mbed library.

The mbed-os include an OS, and the main itself work on a thread, so the threading system is always included also if you only blink a led

Platformio need support the two framework separately, this is the link:
framework: mbed-dev (mbed-dev - mbed library sources. Supersedes mbed-src. | Mbed)
framework: mbed-os (GitHub - ARMmbed/mbed-os: Arm Mbed OS is a platform operating system designed for the internet of things)

I find endless source of confusion in mbed, as if there was 2 or 3 teams working in parallel without any synchronization (mbed-os, mbed-classic aka mbed-dev, perhaps mbed-cli as well). There are targets that was once perfectly supported by mbed before merging with mbed-os and now do not seem to be supported by either mbed-os nor mbed-lib. I’ve been told mbed-classic is limited to “officially released” platforms, so eg. STM32F0-DISCOVERY is not supported because a) it doesn’t have enough flash (48KB while mbed-os requires at least 64KB) and b) was not “officially released for mbed-classic” (as if the support code in old mbed felt from Mars). mbed-classic github repo has been merged with mbed-os but while it was there mbed-dev - mbed library sources. Supersedes mbed-src. | Mbed has been dubbed “official mirror” and now what, is it official repo where development of mbed-classic continues? In parallel?

I really would like to get some clarification from ARM people. And less mess.

1 Like

Mded-classic is merged in mbed-os because it is the base for mbed-os.
If you find a bug in the low level mbed funtion, like my bug opened on the wait funtion for the F103 mcu, the mbed team solve it on mbed-dev, and he release a new mbed-dev version, and at the end the new mbed-dev will merged inside the mbed-os

So the two product remain always present.
If you want use an os framework you use mbed-os, if you want use a classic framework whitout threading, you use mbed-classic (mbed-dev)

So for platformio it is a very important step create two framework.
Framework mbed-dev
Framework mbed-os

@zcoda
I understand that is there actually some problem on some board, but it is not a Platformio problem.
Platformio, imho, must support the two mbed framework, when the user will found problem on a specific mbed function will open an issue on mbed support page.

Platformio will help on mbed-dev testing and on mbed-os testing.

Here is build script for ARM mbed GitHub - platformio/builder-framework-mbed: ARM mbed build script for PlatformIO Build System.

Would be good if someone helps us with porting.