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

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 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

0 Likes
1 Reply
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Tanaka-san

We receive your translation, it will be published to KBA to Community.

After upload, You will receive the points as the word of KBA.

Due to the current volume of works , Please bear with me for the delayed the response.

It could be delayed, but it will be processed soon.

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo