1 Reply Latest reply on Apr 27, 2020 6:31 PM by JuyoungJ_06

    Community Translation - Differences Between PSoC 4 and PSoC 6 MCU Software Architecture - KBA220606

    MoTa_728816

      Hi,

       

      I'd like to translate KBA220606 into Japanese.

       

      moto

       

      Original KBA: KBA220606

      Differences Between PSoC 4 and PSoC 6 MCU Software Architecture - KBA220606

       

      Translated by: MoTa_728816

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

      タイトル: PSoC® 4 と PSoC 6 MCU のソフトウェアアーキテクチャの違い - KBA220606

       

      ヴァージョン: *A

       

      質問:

      PSoC 4 と PSoC 6 MCU  のソフトウェアアーキテクチャの主な違いは何でしょうか? PSoC 4 のファームウェアを直接 PSoC 6 MCU に移植することは可能ですか?

       

      回答:

      他の PSoC アーキテクチャ用に作成されたファームウェアは PSoC 6 と互換性がありません。主な違いは PSoC 6 が Arm® Cortex®-M0+ と Cortex-M4 の両コアを持つデュアルコアアーキテクチャであることです。PSoC6 のデザインを作成する場合、ファームウェアはそれぞれのコアにコード(main.c ファイル等)を提供する必要があります。

       

      更に、PSoC 4 と PSoC 6 MCU デバイスは コンポーネントベースの API を使用します。しかし、PSoC 6 MCU では、API は Cypress Peripheral Driver Library (PDL) v3.0.x 上に構築されています。各コンポーネントはデュアルコアアーキテクチャを透過的にサポートするように再設計されています。これはファームウェアの視点からは PSoC 4 用に生成されたコードや API は PSoC 6 と PDL に対して互換性が無いということになります。

       

      例えば、SCB UART コンポーネントを考えます。コンポーネントベースの関数を呼んでそのペリフェラルを有効にすることができます。

       

      UART_Start() ;

       

      ここで UART は SCB UART コンポーネントのインスタンス名です。その関数の中に実際に生成されるコードは PSoC 4 と PSoC 6 MCU では全く異なります。その他の UART API コールもその引数も同様に異なります。PSoC 6 MCU では、コンポーネントベースの API は PDL のラッパーとなります。UART_Start() 関数は PDL の Cy_SCB_UART_Init() 関数を呼び出します。

       

      PSoC 6 MCU では、PSoC Creator の コンポーネント API を使用せずに、PDL 関数を直接呼び出すことも可能です。この場合の記述は以下のようになります:

       

      Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context) ;

       

      ここで UART_HW、UART_config、UART_context はそれぞれ、ハードウェアのベースアドレスへのポインタ、インスタンスの設定ストラクチャへのポインタ、コンテクストストラクチャへのポインタとなります。PDL を使用すると開発者が望む場合には PSoC Creator™ を使用しなくても PSoC 6 MCU アーキテクチャ用のファームウェアを作成することが可能になります。

       

      しかし、PSoC Creator ではトップデザインにコンポーネントを配置することで、そのインスタンスの設定を反映したストラクチャが生成されます。ファームウェアでその生成されたストレクチャを PDL 関数のコールに使用することが可能なため、ファームウェア開発の負担を軽減できます。

       

      同様に、BLE API もデュアルコアアーキテクチャをサポートするように再開発されました。PSoC 6 MCU with BLE Connectivity 用の BLE ソースコードはミドルウェアとして PDL とともに提供されます。PSoC 6 MCU の BLE 用 API は PSoC 4 BLE / PRoC™ BLE のものと異なります、そのため一方を使用するファームウェアは他方に直接移植することはできません。

       

      その上、ブートローダのアーキテクチャと設計プロセスも PSoC 4 と PSoC 6 では異なります。PSoC 6 は Cypress Peripheral Driver Library (PDL) 3.0.x に含まれている Cypress Bootloader SDK を使用します。これはブートローダの短期開発を可能とする呼出し可能な関数とその他の要素から構成されている API です。詳細は AN213924 - PSoC 6 MCU Bootloader Software Development Kit (SDK) Guide をご参照ください。

       

      PDL に関する詳細は <PDLのインストールディレクトリ>\doc にある PDL User Guide をご参照ください。さらに、PSoC 6 MCU 用ファームウェアの開発に関する詳細は以下のドキュメントが用意されています:

       

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

       

      17-Apr-2020

      moto