
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
PSoC® 4 と PSoC 6 MCU のソフトウェアアーキテクチャの違い - KBA220606 - Community Translated (JA)
Community Translated by MoTa_728816 Version: **
質問:
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 用ファームウェアの開発に関する詳細は以下のドキュメントが用意されています: