STM32Cube WL
ファームウェア･パッケージ
ファームウェア･パッケージ
レビジョン 1.0

ハードウェア抽象化レイヤのドライバをはじめとするSTM32Cube ファームウェア･ドライバのプレゼンテーションへようこそ。

1

概要

ユーザ設定に応じてす
べての STM32 ファミリに対応する初期化コード生成機能

2

このプレゼンテーションは STM32WL を中心として説明していますが、包括的なソフトウェアツール STM32Cube は次の機能を提供します。
• STM32CubeMX：グラフィック･ウィザードを使用して初期化 Cコードを自動生成できる、グラフィック･インタフェースを備えたソフトウェア設定ツール• シリーズ単位で提供される包括的な組込みソフトウェアプラットフォーム（STM32WL シリーズ向けの STM32CubeWL など）• STM32Cube HAL：STM32 ポートフォリオの製品間で最大限の移植性を実現する STM32 抽象化レイヤ組込みソフトウェア• Low Layer （LL） API：HAL よりもハードウェアに近い、専門家向けの高速軽量な層を提供。LL API を使用できるペリフェラルは一部のものに限られます。
• 一貫性のあるミドルウェアコンポーネント群。FatFS とFreeRTOS™、LoRaWAN®、Sigfox、SubGHz_Phy、KMS、Secure Engine、mbed Crypto など• すべての組込みソフトウェアユーティリティおよびサンプ
ル一式
2

概要
デモンストレーション

アプリケーション例

アプリケーション･レベル

セキュア･エンジン

信頼できるファームウェア

オーディオ･アドオン

USB PD
ライブラリ

USB
デバイス･ライブラリUSB
ホスト･ライブラリ

STM32
ネットワーク･ライブラリ

ファイル･システム
FATFS

ミドルウェアアプリケーション側の利点• すべての STM32 シリーズと互換性あり

ハードウェア抽象化レイヤ

BSP コンポーネント• オープンソース BSD ライセンスによるソースコード

下位レイヤ

ドライバ

評価ボード

ユーティリティ• 単一パッケージ

BSP ドライバ

STM32ボード

キー管理
サービス

ディスカバリ･ボード

Nucleo ボード

STM32
シリーズ

（1）ミドルウェア･コンポーネントの組み合わせは STM32 シリーズに依存

3

組込みソフトウェアパッケージは、階層化アプローチを採用しています。

• 下位レベル：ハードウェア抽象化レイヤ（HAL & LL）。ライブラリとサンプルが置かれています。
• ミドルウェアレベル：ライブラリ群とアプリケーション（LoRaWAN、Sigfox、KMS、SBSFU、RTOS、FileSystem など）。
• アプリケーションレベル：ST ボード上で使用するデモンストレーション。
組込みソフトウェアはシリーズ（STM32WL、STM32L5、STM32L4、STM32WB、STM32G0、STM32H7 など）別に用意され、共通モジュールには全面的に移植可能な API で対応します。
組込みソフトウェア初期化コードは STM32CubeMX から生成されるので、ユーザはコア･アプリケーションのコードに集中できます。

3

主な機能
レイヤ

HAL/LLカテゴリ

用意されている組込みソフトウェア

アナログ

アナログ/デジタル変換、コンパレータ

タイマ

タイマ、RTC、ウォッチドッグなど

暗号化

CRC、AES、PKA、乱数発生器など

セキュリティ

グローバル TrustZone コントローラ

システム

Flash、RAM、IO、DMA、クロック、電源（低消費電力モード）、プロセッサ間通信、ハードウェアセマフォ

コネクティビティ

I2C、USART、SPI、I2S

インタフェース

シリアルオーディオRTOS

CMSIS-RTOS ラッパーを使用した FreeRTOS（オープンソースの RTOS）

ファイル･システム

オープンソースのファイル･システム FatFS

LoRaWAN

LoRa 広域ネットワーク

ミドルウェア
Sigfox

アプリケーションKMS

キー管理サービス

セキュアエンジン

セキュアブート･セキュアファームウェア更新用意されているサンプル

STM32WL ボード上の約 214 点のサンプル

STM32WL ボード上の約 38 点のアプリケーション

デモンストレーション ST ボードのすべてを紹介するデモンストレーション

ST ボード向けの 2 つのデモンストレーション･プロジェクト

4

STM32Cube パッケージはフル装備のソフトウェア製品であり、HAL、ミドルウェア、アプリケーションの 3 つのソフトウェア･レイヤを通じてすべての STM32 シリーズ間で最大限の移植性を実現します。
HAL/LL 層は、アナログからコネクティビティ、暗号化、セキュリティまで、さまざまなカテゴリの API を STM32 組込みペリフェラルに提供します。
開発段階の製品で HAL と LL を使い始める際に有用な充実したサンプル群が用意されています。
STM32CubeWL の構成要素は次のとおりです。
•FreeRTOS™ オープンソースソリューションによる CMSIS-RTOS 実装•
Mbed Crypto ライブラリ
オープンソースの FatFS ソリューションに基づく FAT ファイルシステム••
SubGHz_Phy（OSI モデルで MAC レイヤの上位を構成するすべてのレイヤで使用する共通物理レイヤ）
STMTouch タッチセンシング･ライブラリ･ソリューション
•LoRaWAN®、LoRa 広域ネットワーク•
Sigfox ライブラリ•
KMS（キー管理サービス）•
セキュアエンジン（機密性のある操作を実行するためにセキュリティで保護されている場所）

STM32CubeWL パッケージには、すべての組込みソフトウェア･コンポーネントを組み合わせた高度なデモも用意されています。
リリースノート、readme ファイル、関連するユーザマニュアルなどのドキュメント一式も提供されています。

各パッケージは、わかりやすい無償ライセンス条項の下で提供されます。

4パッケージの構成
ペリフェラルのレジスタ宣言、ビット定義、アドレス配置を定義する STM32WLxx
CMSIS ファイルを格納

サポート対象ボードのBSP ドライバ

STM32WLxx のHAL ドライバと LL ドライバ

FatFS ファイルシステム

RTOS FreeRTOS

SBSFU アプリケーションをビルドするためのセキュアなミドルウェア

Sub-GHz ミドルウェア（物理層と MAC 層）

Mbed Crypto
有用なユーティリティ群

設定済みプロジェクトとともにボード別にまとめられた一連のサンプル/
アプリケーション

パッケージの内容に関するすべての関連情報を提供するリリースノート：
主な変更点、サポート対象のデバイスとボード、サポート対象ツールチェーン、ファームウェアコンポーネント、バージョンなど

5

STM32CubeWL ファームウェア･ソリューションは、すべての STM32Cube ファームウェ
ア･パッケージ同様、このスライドに示した構造を持つ単一の ZIP ファイルとして用意されています。

このパッケージは、次の各主要フォルダで構成されています。
•Documentation フォルダ：ファームウェアパッケージとその内容に短期間で精通するうえで効果的な STM32CubeWL の手引書が置かれています。
•Drivers フォルダ：ST 独自のすべてのドライバが置かれています。
•CMSIS フォルダ：STM32WLxx のサポート対象デバイス、ペリフェラルレジスタ宣言、それらの関連ビットの定義、およびアドレス配置を定義するファイルが置かれています。
•STM32WLxx_HAL_Driver フォルダ：すべてのペリフェラルのドライバが置かれています。
•BSP フォルダ：サポートされているすべてのボードのドライバが置かれています。
•Middlewares フォルダ：サポート対象ミドルウェアについて ST またはサードパー
ティが提供するライブラリとスタックが置かれています。
•Projects フォルダ：サポート対象ボードごとのテンプレート、サンプル、アプリケーション、デモンストレーションのほか、それらを迅速、容易に実行するために必要な情報をすべて提供する設定済みプロジェクトと固有の readme ファイルが置かれています。
•Utilities フォルダ：提供しているプロジェクトで使用するその他のユーティリティのドライバが置かれています。
リリースノートには、パッケージすべての内容のリスト、主な変更の履歴、サポート対象のデバイスとボードに関する情報、既知の制限事項が記載されています。

5

サポート対象のデバイスとボード
stm32WLxx.h で定義されているマクロ

STM32WL シリーズのデバイスSTM32WL55xx

STM32WL55CC、STM32WL55JC

STM32WL54xx

STM32WL54CC、STM32WL54JC

STM32WLE5xx

STM32WLE5C8、STM32WLE5CB、STM32WLE5CC
STM32WLE5J8、STM32WLE5JB、STM32WLE5JC

STM32WLE4xx¥

STM32WLE4C8、STM32WLE4CB、STM32WLE4CC
STM32WLE4J8、STM32WLE4JB、STM32WLE4JC

ボード¥
STM32WL55 Nucleo

サンプル

アプリケーション

デモンストレーション

21439

26

STM32Cube は、その汎用アーキテクチャを通じて、移植性に優れたハードウェア抽象化レイヤ（HAL）を提供します。これにより、ミドルウェア･レイヤなどのレイヤを基にして開発段階でアプリケーション機能を実装できます。マイクロコントローラに関する詳しい知識は不要です。これにより、ライブラリ･コードを再利用できる機会が多くなり、他のデバイスへ確実、容易に移植できるようになります。
また、階層化アーキテクチャにより、STM32CubeWL はすべての STM32WL マイクロコントローラおよび ST の設計による開発ボードを全面的にサポートします。ユーザ側では、stm32WLxx.h
ファイルに正しいマクロを定義し、ファームウェアパッケージに用意されているボード固有の BSP ドライバ、サンプルプロジェクト、アプリケーションプロジェクトを使用するだけです。

6サンプル概要•

ボードごとに、EWARM、MDK-ARM、STM32CubeIDE の各ツールチェーン向けとして設定済みのプロジェクトがあり、それにサンプル群が付属•

右の図はSTM32WL55 NUCLEOボード（注文コード： NUCLEO-WL55JC）のプロジェクト構造であるが、他のボードのプロジェクト構造もこれと同様•

これらのサンプルはその適用先のSTM32Cubeレベルに応じて分類され、次のように命名されている•レベル0のサンプル： 「サンプル」と呼ばれ、HALドライバを使用し、ミドルウェアコンポーネントは使用しない•

レベル1のサンプル： 「アプリケーション」と呼ばれ、各ミドルウェアコンポーネントの標準的な使用例を提供する•

レベル2のサンプル： 「デモンストレーション」と呼ばれ、HAL、BSP、ミドルウェアコンポーネントをすべて実装している•

TemplatesプロジェクトとTemplates_LLプロジェクトは、すべてのサポート対象ボードのファームウェアアプリケーションを速やかに構築するために提供されている•

STM32CubeProjectListファイルを使用すると、ファームウェアパッケージにある特定のサンプルへの迅速なアクセスやその検索ができる•

シングルコア･サンプルはすべて次の構造を持つ••¥Incフォルダ： すべてのヘッダファイル•¥Srcフォルダ： ソースコード•¥EWARM、¥MDK-ARM、¥STM32CubeIDE の各フォルダ： ツールチェーンごとの設定済みプロジェクト•

readme.txt： サンプルの動作説明および動作に必要な環境を記載

デュアルコアサンプルはすべて次の構造を持つ•

CM0PLUS¥IncフォルダとCM4¥Inc フォルダ： それぞれCM0PLUSとCM4のすべてのヘッダファイル•

CM0PLUS¥SrcフォルダとCM4¥Src フォルダ： それぞれCM0PLUSとCM4のソースコードファイル•Common¥フォルダ： CM0PLUSとCM4の共通ファイル•¥EWARM、¥MDK-ARM、¥STM32CubeIDEの各フォルダ： ツールチェーンごとの設定済みプロジェクト•readme.txt： サンプルの動作説明および動作に必要な環境を記載

7

ボードごとに、EWARM、MDK-ARM、STM32CubeIDE の各ツールチェーン向けとして設定済みのプロジェクトがあり、それにサンプル群が付属しています。
右の図は、STM32WL55 Nucleo ボードのプロジェクト構造ですが、他のボードのプロジェクト構造もこれと同様です。
これらのサンプルはその適用先の STM32Cube レベルに応じて分類され、次のように命名されています。
レベル 0 のサンプル：「サンプル」と呼ばれ、LL ドライバまたは HAL ドライバを使用していて、ミドルウェアコンポーネントは使用しません。
レベル 1 のサンプル：「アプリケーション」と呼ばれ、各ミドルウェアコンポーネントの標準的な使用例を提供します。
レベル 2 のサンプル：「デモンストレーション」と呼ばれ、HAL、BSP、ミドルウェアコンポーネントをすべて実装しています。
Template プロジェクトと Template_LL プロジェクトは、すべてのサポート対象ボードのファームウェア･アプリケーションを速やかに構築するために提供されています。

STM32CubeProjectList ファイルを使用すると、ファームウェアパッケージにある特定のサンプルへの迅速なアクセスやその検索ができます。
シングルコアのサンプルはすべて次に示す同じ構造を備えています。
¥Inc フォルダ：すべてのヘッダファイル¥Src フォルダ：ソースコード¥EWARM、¥MDK-ARM、¥STM32CubeIDE の各フォルダ：各ツールチェーンの設定済みプロジェクト
readme テキストファイル：サンプルの動作説明および動作に必要な環境を記載しています。
デュアルコアのサンプルはすべて次に示す同じ構造を備えています。
CM0PLUS¥Inc フォルダと CM4¥Inc フォルダ：それぞれ CM0PLUS と CM4 のすべてのヘッダファイ
ルCM0PLUS¥Src フォルダと CM4¥Src フォルダ：それぞれ CM0PLUS と CM4 のソースコードファイル
Common¥ フォルダ：CM0PLUS と CM4 の共通ファイル¥EWARM、¥MDK-ARM、¥STM32CubeIDE の各フォルダ：各ツールチェーンの設定済みプロジェクト
readme テキストファイル：サンプルの動作説明および動作に必要な環境を記載しています。

7

参考文書
ドキュメントの包括的なリストと STM32CubeWL ファームウェア
パッケージが当社の Web サイト www.st.com/stm32cubefw で公開されている

8

STM32CubeWL ファームウェアは、当社の Web サイト
www.st.com/stm32cubefw からダウンロードできます。
ご清聴ありがとうございました。

8