Mbedは、32ビットARM Cortex-Mマイクロコントローラをベースとした、インターネット接続デバイス(モノのインターネットデバイス)向けの開発プラットフォームおよびオペレーティングシステムです。このプロジェクトは、 Armとその技術パートナーによって共同開発されました。[ 1 ] 2024年7月現在、MbedはArmによって積極的に開発されていません。[ 2 ]
フルバージョンはリアルタイムオペレーティングシステム(RTOS)ですが、リソースが限られているデバイスは非RTOSサブセットを使用することもできます。[ 3 ]
このプラットフォームは、以下の機能を備えた開発環境を提供します。
Mbedアプリケーションを開発する主な方法は、クラウドサービスを利用してmbedアプリケーションを構築・コンパイルするオンラインIDEであるArm Online IDE「Keil Studio Cloud」を使用することです。アプリケーションは、Keil μVision、IAR Embedded Workbench、Arduino IDE、Eclipseなどの他の開発環境とGCC ARM Embeddedツールを使用して開発することも可能です。
Mbed OSは、IoTデバイス上で動作するマイクロコントローラファームウェアを作成するためのMbed C/C++ソフトウェアプラットフォームとツールを提供します。マイクロコントローラ周辺機器ドライバ、ネットワーク機能、RTOSおよびランタイム環境、ビルドツール、テストおよびデバッグスクリプトを提供するコアライブラリで構成されています。これらの接続は、mbed-rtosをサポートするMbed TLSやwolfSSLなどの互換性のあるSSL/TLSライブラリによって保護できます。
コンポーネントデータベースは、最終製品を構築するためにマイクロコントローラに接続できるコンポーネントやサービス用のドライバライブラリを提供する。

Mbedプラットフォームにはさまざまなハードウェアデモボードがあり、最初のものはオリジナルのMbedマイクロコントローラボードです。Mbedマイクロコントローラボード(「mbed NXP LPC1768」として販売)は、NXPマイクロコントローラをベースにしたデモボードで、96 MHzで動作するARM Cortex M3 コア、 512 KBのフラッシュ、32 KBのRAM、イーサネット、USBデバイス、CAN、SPI、I2C などの複数のインターフェース、その他のI/Oを備えています。[ 21 ] [ 22 ] Mbedマイクロコントローラは、2010年にEDNイノベーションアワードのソフトウェア/組み込みツール部門で最優秀賞を受賞しました。[ 23 ]
NXP LPC2368 ( ARM7TDMI-S )、NXP LPC1768 ( Cortex-M3 )、NXP LPC11U24 ( Cortex-M0 ) [ 24 ]マイクロコントローラを搭載した様々なバージョンのボードがリリースされました。
Mbedハードウェア開発キット(HDK)はOEM向けに設計されており、Mbed OSをサポートするカスタムハードウェアを構築するための情報を提供します。これには、開発ボード、OEMモジュール、および量産に適した再プログラム可能な製品を容易に作成するために使用できるインターフェースファームウェアと回路図が含まれています。
このプロジェクトは、Armが他の主要なテクノロジー企業やMbed開発者コミュニティと協力して開発しています。開発と貢献はさまざまなレベルで行われています。
Mbed OSは、これまでも、そして現在も、数多くの異なる開発ツールをサポートしています。
Mbedプラットフォームのアプリケーションは、無料のオンラインコードエディタおよびコンパイラであるMbedオンラインIDEを使用して開発できます。プロジェクトはクラウド、つまりリモートサーバー上でARMCC C/C++コンパイラを使用してコンパイルされるため、ローカルPCにWebブラウザをインストールするだけで済みます。Mbed IDEは、分散Mercurialバージョン管理を使用してコードをインポート、エクスポート、共有できるプライベートワークスペースを提供し、コードドキュメントの生成にも使用できます。[ 25 ]
Mbedオンラインコンパイラにはデバッグ機能は含まれておらず、ユーザーがコンパイル済みのコードを.binファイルとしてダウンロードし、それをMbedボード(USBフラッシュドライブとして認識される)に手動でコピーするという開発サイクルに依存していた。
Mbed Online Compilerは2023年3月1日にサービスを終了し、Keil Studio Cloudに置き換えられました。[ 26 ]
Mbed OSのオフライン開発のニーズを満たすために、ARMはMbed CLIを提供しています。これは、コマンドラインからMbed OSプログラムを作成、インポート、コンパイルできるPythonパッケージです。また、外部のGitリポジトリやMbedのライブラリリポジトリと統合されており、リモートソースからライブラリをダウンロードおよび更新するコマンドを提供しています。[ 27 ]
Mbed CLIは内部的に2つの異なるコードベースで構成されています。mbedコマンドを提供するmbed-cli pipパッケージは、ユーザーからのコマンドを受け付け、Mbed OSとライブラリをダウンロードできるフロントエンドとして機能します。mbed-cliフロントエンドは、MbedおよびMbedを使用するソフトウェアをコンパイルするために、mbed-osリポジトリ内のビルドツールスクリプトを呼び出します。これらのスクリプトは、適切なコンパイルオプションを決定し、コンパイラとリンカを実行する役割を担います。
長年の開発を経て、複雑なビルドツールスクリプトの保守はMbed OS開発者にとって大きな負担となっていた。そのため、彼らはビルドツールコードを凍結し、代わりにMbed CLI 2の作成に取り組むことになった。[ 28 ]
Mbed Studioは、Mbed OS専用に設計されたデスクトップIDEです。2019年2月に初めてリリースされたMbed Studioは、オンラインコンパイラよりも多機能な編集環境を提供し、インテリジェントなコード補完機能やデバッグサポートなどを備えています。オンラインコンパイラと同様に、新しいMbedプロジェクトの作成や、GitリポジトリおよびMbedライブラリリポジトリからのライブラリへの依存関係の宣言を標準でサポートしています。
Mbed Studio は、C/C++ コンパイラとして、ARM から IDE への組み込み用に特別にライセンス供与された Arm Compiler 6 を使用しています。デバッグ機能については、Mbed Studio はpyOCDデバッグブリッジソフトウェアを使用しており、pyOCD がサポートするデバイスのみをデバッグできます。IDE 自体はEclipse Theiaをベースにしており、Web ブラウザで実行できるように簡単に適応できるように設計されていました。このプロジェクトは後に Keil Studio Cloud として実現しました。[ 29 ] Mbed Studio は当初 Windows と Mac のホスト プラットフォームをサポートしていましたが、2020 年 6 月に 1.0 リリースされた際に Ubuntu Linux で実行できるように移植されました。[ 30 ]
Mbed Online Compiler と同様に、Keil Studio Cloud はローカルマシンに開発ツールをインストールすることなく Mbed OS アプリケーションを開発できます。ただし、改良されたインテリジェントなコード補完機能や Git を使用した組み込みのバージョン管理など、多くの追加機能をサポートしています。Online Compiler とは異なり、Keil Studio Cloud はWebUSB機能を使用してブラウザから直接サポートされている Mbed ボードにダウンロードしてデバッグできます。これにより、デスクトップ IDE が提供するものと同等の、真のワンクリックビルドおよびデバッグエクスペリエンスが実現します。ただし、この機能はすべての Mbed ボードまたはデバッグプローブをサポートしているわけではありません。[ 26 ]