Community Translation - Using ModusToolbox Configurator Tools in Mbed OS Applications – KBA228797

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

I'd like to translate KBA228797 into Japanese.

moto

Original KBA: KBA228797

Using ModusToolbox Configurator Tools in Mbed OS Applications – KBA228797

Translated by: MoTa_728816

====================

タイトル: Mbed OS アプリケーションで ModusToolbox コンフィグレータツールを使う - KBA228797

このドキュメントでは PSoC 6ベースの Mbed OS アプリケーションにおいて ModusToolbox™ コンフィグレータツールを使用する方法を説明します。例として CapSense® アプリケーションを取り上げます。このドキュメントでは Mbed OS ヴァージョン 5.14.0 もしくはそれ以降、 ModusToolbox ヴァージョン 2.0 もしくはそれ以降を対象とします。

PSoC 6 MCU ベースの Mbed OS アプリケーションでの デフォルトデバイスコンフィグレーション

Cypress PSoC 6 MCU ベースのデベロップメントキットはハードウェア (デバイス)の初期化/設定コードを Mbed OS アプリケーションフォルダ \mbed-os\targets\TARGET_Cypress\TARGET_PSOC6\TARGET_TARGET_NAME\ に含んでいます。例えば、CY8CPROTO-062-4343W のデバイスコンフィグレーションコードは \mbed-os\targets\TARGET_Cypress\TARGET_PSOC6\TARGET_CY8CPROTO_062_4343W\ にあります。下記はそのフォルダ内で重要なファイルのリストです。

  • ボードサポートパッケージ (BSP) ソースファイル: BSP ソースファイル (cybsp.c, cybsp.h) はハードウェア(BSP) 初期化関数 cybsp_init() を含みます。ターゲットの cybsp_init() 関数はアプリケーション起動コードの一部として mbed_sdk_init() 関数からコールされます。ブートシーケンスの詳細については https://os.mbed.com/docs/mbed-os/latest/reference/bootstrap.html をご参照ください。PSoC 6 MCU ベースターゲットの mbed_sdk_init() 関数の定義は \mbed-os\targets\TARGET_Cypress\TARGET_PSOC6\ にある mbed_overrides.c ファイルに含まれています。
  • COMPONENT_BSP_DESIGN_MODUS: このフォルダには下記リストの ModusToolbox コンフグレータベースのコンフィグレーションファイルと、その生成されたコードが置かれています。
    • デバイスコンフィグレータ生成コード: デバイスコンフィグレーションファイルの名称は design.modus で、生成されたコードは GeneratedSource フォルダに置かれています。cybsp.c 内の cybsp_init() 関数はデバイスコンフィグレータ生成のコード cycfg_system.c ファイルの一部である init_cycfg_system() をコールします。この init_cycfg_system() 関数はデバイスコンフィグレータで生成された cycfg_system.c ファイルの設定に従って、デバイスのコアクロックシステム初期化、フラッシュメモリのウエイトステート、その他のシステムレベルの設定を行います。
    • CapSense コンフィグレータ生成コード: CapSense のコンフィグレーションファイルは design.cycapsense という名称で、生成されたファイルは GeneratedSource フォルダに置かれています。すべの PSoC 6 MCU アプリケーションが CapSense の機能を使用するわけではないので、 デフォルトでは CapSense ファイルは GeneratedSource フォルダに生成されません。
    • QSPI インターフェースコンフグレータ生成コード: QSP のコンフィグレーションファイルは design.cyqspi という名称で、生成されたファイルは GeneratedSource フォルダに置かれています。

PSoC 6 MCU ベースの Mbed OS アプリケーションがコンパイルされると、ビルドシステムはそのターゲットの COMPONENT_BSP_DESIGN_MODUS フォルダ内のソースファイルもインクルードします。これは \mbed-os\targets\targets.json ファイル内の当該 PSoC 6 MCUベースターゲット用に “components_add”:[“BSP_DESIGN_MODUS”] を追加することで行われます。ビルドプロセスに使用するコンポーネントタイプラベルディレクトリについての詳細は https://os.mbed.com/docs/mbed-os/latest/reference/mbed-os-build-rules.html  をご参照ください。

PSoC 6 ベースの Mbed OS アプリケーションでのカスタムデバイスコンフィグレーション

PSoC 6 MCU ベースの Mbed OS アプリケーションで、先に説明したターゲットフォルダ内のデフォルトコンフィグレーションコードではなく、特別なデバイスコンフィグレーションが必要になるかも知れません。例えば Mbed OS アプリケーションで PSoC 6 MCU の CapSense 機能を使用するための、CapSense ミドルウェアコンポーネント の使用する場合です。CapSense を使用する Mbed OS サンプルアプリケーションは Cypress GitHub repository​ から入手できます。CapSense のサンプルはボタンとスライダーを使用しますが、これら設定は下記に説明する2種類のコンフグレーション関連設定の変更で生成されます。

  • デバイスコンフィグレータ (design.modus) で、アプリケーションに必要とされるように CapSense ブロック を有効にして設定を行い、該当する GeneratedSource ファイルを再度生成します。
  • CapSense コンフィグレータ (design.cycapsense) で、エンドアプリケーションが必要なボタンやスライダーウィジェットの設定を行い、該当する GeneratedSource ファイルを再度生成します。

これは Mbed OS フォルダ内にある当該ターゲットのデフォルト COMPONENT_BSP_DESIGN_MODUS コンポーネントの変更を必要とします。アプリケーションコンフィグレータを使用して、このフォルダ内のファイルを変更してファイルを生成する方法もありますが、異なる Mbed OS ヴァージョンや共有プロジェクト間を移動する場合に同じ処理を繰り返す必要が発生するため、好ましい方法ではありません。

より良い方法としては、変更を加えた COMPONENT_BSP_DESIGN_MODUS コンポーネントをアプリケーションのトップレベルフォルダの一部として、目的とする各ターゲット用のアプリケーションに必要な変更を反映することです。この手法は Cypress GitHub repository​ にある Mbed OS CapSense サンプルで踏襲されていて、各ターゲット用のカスタムコンフィグレーションは COMPONENT_CUSTOM_BSP_DESIGN_MODUS フォルダの中に置かれています。カスタム BSP コンフィグレーションをターゲットのビルドプロセスにインクルードさせるためには、アプリケーションフォルダのトップレベルにある mbed_app.json ファイルの各ターゲットアプリケーションの下に "target.components_add": ["CUSTOM_BSP_DESIGN_MODUS"] という設定を記述します。同時に Mbed OS ビルドプロセスがターゲット用のデフォルト COMPONENT_BSP_DESIN_MODUS コンポーネントをインクルードすることを避けるために、mbed_app.json ファイルには "target.components_remove": ["BSP_DESIGN_MODUS"] という行を記述して、このフォルダをビルドプロセスから除外する必要があります。

以下は CY8CPROTO_062_4343W ターゲット用に上記の変更を行った後に mbed_app.json ファイルがどのように見えるかのサンプルです

{

     "target_overrides": {

          "*": {

               "platform.stdio-convert-newlines": true

          },

          "CY8CPROTO_062_4343W": {

               "target.components_remove": ["BSP_DESIGN_MODUS"],

               "target.components_add": ["CUSTOM_BSP_DESIGN_MODUS"]

          }

     }

}

以下はこのアプローチを採用しているサンプルコードのリストです。

====================

10-Apr-2020

moto

0 Likes
2 Replies