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

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

1

概要

2

STM32CubeMX

STM32CubeG0

STM32CubeL0

STM32CubeL1

STM32CubeH7

STM32CubeL4

STM32CubeF7
STM32CubeF4

STM32CubeF0
STM32CubeF1

STM32CubeF3
STM32CubeF2

このプレゼンテーションは STM32G0 を中心として説明していますが、包括的なソフトウェアツール STM32Cube は次の機能を提供します。
• STM32CubeMX：ユーザの選択に基づいて初期化コードを生成する、グラフィック・インタフェースを備えたソフトウェア設定ツール• STM32CubeG0 など、STM32 シリーズごとに提供される包括的な組込みソフトウェアパッケージ：- ハードウェア抽象化レイヤ（HAL）と Low Layer （LL）の API- RTOS、USB、TCP/IP、グラフィックなど、一貫した一連のミドルウェアコンポーネント

2

概要
評価ボード

ディスカバリ・ボード

3

Nucleo ボード

ボードのデモンストレーション

ミドルウェアレベルのサンプルUSB
ホスト・ライブラリUSB
デバイス・ライブラリ

グラフィックSTemWin

ファイルシステム
FATFS

RTOS
FreeRTOSUSB Power
Delivery
ミドルウェアミドルウェアレベル

オーディオ・アドオン

LibJPEG

ネットワーキング
LwIP TCP/IP

Polar SSL

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

HAL のサンプル
ボード・サポート・
パッケージ（BSP）

Low Layer API(LL)

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

アプリケーション側の利点

PC
ソフト• すべてのSTM32シリーズと互換性あり• オープンソースBSDライセンスによるソースコード

下位レベル・ドライバ

STM32シリーズ

STM32F0

STM32F1

STM32F2

STM32F3

STM32F4

STM32F7

STM32H7

STM32L0

STM32L1

STM32L4

STM32G0

組込みソフトウェアパッケージは、階層化アプローチを採用しています。
• 下位レベル：ハードウェア抽象化レイヤ（HAL）。ライブラリとサンプルが置かれています。
• ミドルウェアレベル：一連のライブラリとサンプル（RTOS、USB、TCP/IP など）。スライドの図には、STM32G0 の関連ライブラリ（FAT ファイルシステム、FreeRTOS、および USB PowerDelivery）を示しています。
• アプリケーション・レベル：ST 製ボード上で使用するデモンスト
レーション。

組込みソフトウェアはシリーズ（STM32G0、STM32L4 など）別に用意され、共通モジュールには全面的に移植可能な API で対応します。
組込みソフトウェア初期化コードは STM32CubeMX から生成されるので、ユーザはアプリケーション・コードの開発に集中できます。

3

主な機能
レイヤ
HAL

ミドルウェアアプリケーション

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

アナログ

アナログ・デジタル変換など

タイマ

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

コネクティビティ

I2C、USART、SPI、I2S、SDMMC、CECなど

RTOS

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

USB Power Delivery

PDスタック、デバイス・ポリシー・マネージャ、ポリシー・エンジン、プロトコル層

ファイルシステム

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

デモンストレーション

STのボード向け完全デモンストレーション

4用意されているサンプル
ST の評価ボード*で動作する最大 66 点のサンプル

ST の評価ボード*で動作する最大 10 点のアプリケーション

STのボード向けの最大 1 点のデモンストレーション・プロジェクト*：STM32G0 シリーズ

STM32Cube パッケージはフル装備のソフトウェア製品であり、HAL、ミドルウェア、アプリケーションの 3 つのソフトウェアレイヤを通じてすべての STM32 シリーズ間で最大限の移植性を実現します。
HAL レイヤは、アナログからコネクティビティまでの STM32 組込みペリ
フェラル の API を提供します。
開発段階の製品で HAL を使い始める際に有用な充実したサンプル群が用意されています。
ミドルウェア・レイヤには、USB Power Delivery 一式が含まれています。
また、オープンソース・ソリューションの FreeRTOS ベースの CMSISRTOS 実装、およびオープンソースの FatFS ソリューションに基づくFAT ファイルシステムも含まれます。
STM32CubeG0 パッケージには、すべての組込みソフトウェアコンポーネントを組み合わせた高度なデモも用意されています。
リリースノート、readme ファイル、関連するユーザマニュアルなどのドキュメント一式も提供されています。
各パッケージは、わかりやすい無償ライセンス条項の下で提供されます。

4パッケージの構成

5

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

ペリフェラルのレジスタ宣言、ビット定義、アドレス配置を定義するSTM32G0xx CMSIS
ファイルを格納すべてのモジュール向けのSTM32G0xx HALドライバ

USB Power Deliveryスタック
サードパーティ・ミドルウェア：

 FATファイルシステムとFreeRTOS
設定済みプロジェクトとともにボード別にまとめられた一連のサンプル／アプリケーション

STM32CubeG0 ファームウェアソリューションは、すべての STM32Cube ファーム
ウェアパッケージ同様、このスライドに示した構造を持つ単一の ZIP ファイルとして用意されています。
このパッケージは、次の各主要フォルダで構成されています。
•Documentation フォルダ：ファームウェアパッケージとその内容に短期間で精通するうえで効果的な STM32Cube G0 の手引書が置かれています。
•Drivers フォルダ：ST 独自のすべてのドライバが置かれています。
- CMSIS フォルダ：STM32G0xx のサポート対象デバイス、ペリフェラルレジスタ宣言、それらの関連ビットの定義、およびアドレス配置を定義するファイルが置かれています。
- STM32G0xx_HAL_Driver フォルダ：すべてのペリフェラルのドライバが置かれています。
- BSP フォルダ：サポートされているすべてのボードのドライバが置かれています。
•Middlewares フォルダ：ST またはサードパーティが提供するサポート対象のミドルウェア・ライブラリとスタックが置かれています。
•Projects フォルダ：サポート対象ボードごとのテンプレート、サンプル、アプリケーション、デモンストレーションのほか、それらを迅速、容易に実行するために必要な情報をすべて提供する設定済みプロジェクトと固有の readme ファイ
ルが置かれています。
•Utilities フォルダ：提供しているプロジェクトで使用するその他のユーティリティのドライバが置かれています。

5

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

6

STM32G0 デバイス

STM32G070xx

STM32G070KB、STM32G070CB、STM32G070RB、STM32G070K8、
STM32G070C8、STM32G070R8、STM32G070K6、STM32G070C6、
STM32G070R6、STM32G070GB、STM32G070KB、STM32G070CB、STM32G070G8、STM32G070K8、STM32G070C8、STM32G070G6、
STM32G070K6、STM32G070C6、STM32G070xBY6

STM32G071xx

STM32G071KB、STM32G071CB、STM32G071RB、STM32G071K8、
STM32G071C8、STM32G071R8、STM32G071K6、STM32G071C6、
STM32G071R6、STM32G071GB、STM32G071KB、STM32G071CB
STM32G071G8、STM32G071K8、STM32G071C8、STM32G071G6、
STM32G071K6、STM32G071C6、STM32G071xBY6STM32G081xx

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

6サンプルの概要 (1/2)

7• ボードごとに、EWARM、MDK-ARM、SW4STM32の各ツールチェーン向けとして設定済みのプロジェクトがあり、それにサンプル群が付属• この図に示されているのは、NUCLEO-G071RBボードのプロジェクト構造だが、他のボードのプロジェクト構造もこれと同じである• これらのサンプルはその適用先のSTM32Cubeレベルに応じて分類され、次のように命名されている• レベル0のサンプル：「サンプル」と呼ばれ、HALドライバを使用し、ミドルウェアコンポーネントは使用しない• レベル1のサンプル：「アプリケーション」と呼ばれ、各ミドルウェアコンポーネントの標準的な使用例を提供する• レベル2のサンプル：「デモンストレーション」と呼ばれ、HAL、BSP、ミドルウェアコンポーネントをすべて実装している

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

7

サンプルの概要 (2/2)

8• Templatesプロジェクトは、すべてのサポート対象ボードのファームウェア・アプリケーションを速やかに構築するために提供されている• STM32CubeProjectListファイルを使用すると、ファームウェア･パッケージにある特定のサンプルへの迅速なアクセスやその検索ができる• サンプルはすべて次の構造を持つ• ¥Inc フォルダ：すべてのヘッダファイル• ¥Src フォルダ：ソースコード• ¥EWARM、¥MDK-ARM、¥SW4STM32：各ツールチェーンの設定済みプロジェクト• readme.txt：サンプルの動作説明および動作に必要な環境を記載• *.ioc ファイルを使用すると、CubeMx内のFW サンプルのほとんど（CubeMx 5.0以降）を開くことができる

Templates プロジェクトは、すべてのサポート対象ボードのファームウェア・アプリケーションを速やかに構築するために提供されています。
STM32CubeProjectList ファイルを使用すると、ファームウェアパッケージにある特定のサンプルへの迅速なアクセスやその検索ができます。
サンプルはすべて次の構造を持ちます。
- ¥Inc フォルダ：すべてのヘッダファイル- ¥Src フォルダ：ソースコード- ¥EWARM、¥MDK-ARM、¥SW4STM32 の各フォルダ：各
ツールチェーンの設定済みプロジェクト
readme テキストファイル：サンプルの動作説明および動作に必要な環境を記載しています。
サンプルのほとんどに .ioc ファイルがあり、CubeMX ツールからファームウェアを設定できます。

8ドキュメント

9

STM32G0シリーズ固有のドキュメントSTM32G0シリーズ固有のドキュメント
STM32CubeF7ファームウェアパッケージに付属する
STM32CubeProjectListファイルと同内容

STM32G0シリーズ固有のドキュメントSTM32 の一般ドキュメント
STM32 の一般ドキュメント
STM32 の一般ドキュメント STM32G0シリーズ固有のドキュメント

STM32CubeG0ファームウェアパッケージにも付属する  最初に読むべきドキュメント
STM32 の一般ドキュメント
STM32 の一般ドキュメント
STM32 の一般ドキュメント
STM32 の一般ドキュメント

STM32G0シリーズ固有のドキュメント

STM32Cube G0 ファームウェアパッケージには充実したドキュメントが用意されています。すべての STM32 シリーズに共通のドキュメントもあれば、 STM32G0 シリーズに固有のドキュメントもあります。
ユーザマニュアル『Getting started with the STM32CubeG0Firmware Package』は、STM32Cube ファームウェアパッケージの使用に当たって最初に目を通すべきドキュメントです。

9

STM32CubeG0ファームウェア - 参照

10

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

STM32Cube G0 ファームウェアは、当社 Web サイト
www.st.com/stm32cubefw からダウンロードできます。

10