Community Translation - Manage Working Flash Space for Both Cores of PSoC® 6 - KBA224173

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

cross mob
YoOb_1790021
Level 5
Level 5
Distributor - Marubun (Japan)
First solution authored 10 likes received 10 likes given

Hi,

I will translate this KBA224173 into Japanese.

Manage Working Flash Space for Both Cores of PSoC 6 - KBA224173

https://community.cypress.com/docs/DOC-15264

----------------------------------

Best regards,

obana

0 Likes
3 Replies
YoOb_1790021
Level 5
Level 5
Distributor - Marubun (Japan)
First solution authored 10 likes received 10 likes given

Hi,

I tried to translate this KBA224173 into Japanese.

Manage Working Flash Space for Both Cores of PSoC® 6 - KBA224173

https://community.cypress.com/docs/DOC-15264

----------------------------------

タイトル:PSoC® 6の両方のコア用の作業用フラッシュ領域を管理する

質問:

PSoC® 6プロジェクトでは、両方のコアが作業用フラッシュを占有しているとビルドエラーが発生する可能性があります。両方のコア用の作業用フラッシュ領域を適切に管理するにはどうすればよいですか?

回答:

PSoC 6の場合、デフォルトでは、コンパイラーは常に両方のコアにEEPROMエミュレーション用に作業用フラッシュの全範囲(0x14000000-0x14008000)を割り当てます。どちらのコアも同じフラッシュオブジェクトで動作します。単一コアからメモリ範囲内での非同期操作があると、ビルドエラーが発生します。

作業用フラッシュを占有する複数のコンポーネントが同時に使用されている場合、たとえば、Bluetooth Low Energy(BLE)と EEPROM では、elf ファイルの生成中にビルドエラーが発生します。このエラーは、ボンディングリストを保存するためにBLEに割り当てられた作業フラッシュ領域があり、そしてこの領域はBLEホストが存在するコアにのみに割り当てられるために発生します。2つのコア間のこの非同期により、ビルドが失敗します。

ビルドエラーを回避するには、以下の方法に従います:

方法1:作業用フラッシュを1つのコアのみに割り当てる

1つのコアのみが作業用フラッシュにアクセスする必要がある場合は、リンカーファイルから関連セクションを削除して、手動で他のコアを分離します。ここでは、Arm® Cortex® M4 のみが作業用フラッシュにアクセスすると仮定します。次に、Cortex M0+ リンカーファイル(cy8c6xx7_cm0plus.ld)の次のコード スニペットのいずれかをコメントアウトまたは削除します:

スニペット1:

em_eeprom         (rx)    : ORIGIN = 0x14000000, LENGTH = 0x4000    

スニペット2:

/* Emulated EEPROM Flash area */

.cy_em_eeprom :

   {

KEEP(*(.cy_em_eeprom))

} > em_eeprom

ここで、cy_em_eeprom は、システムによって自動的に em_eeprom 領域に定義される唯一のセクションです。

方法2:2つのコアそれぞれの作業用フラッシュ領域に分割する

この方法を実装するには、2つのコアのそれぞれのリンカーファイルを変更します:

cy8c6xx7_cm0plus.ld:

em_eeprom (rx)    : ORIGIN = 0x14000000, LENGTH = 0x4000   

cy8c6xx7_cm4_dual.ld:

em_eeprom         (rx)    : ORIGIN = 0x14004000, LENGTH = 0x4000

デフォルトでは、コンパイラは両方のコア用に作業用フラッシュの全範囲を割り当てます (ORIGIN = 0x14000000, LENGTH = 0x8000)。方法2では、コアごとに1つずつ、2つの別々の部分に手動で分割します。1つのコアが自身の作業用フラッシュ領域に発行したアクションは、他方のコアに指定された領域に影響を与えません。

この方法の欠点は、割り当てられると、各コアのメモリ空間の範囲が固定されることです。各コアに必要な大まかなメモリサイズを認識し、適切に割り当てる必要があります。

----------------------------------

Best regards,

obana

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

Hello, Obana 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 delay of internal review, 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
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

My 2nd review is done.

I picked up the part that would be fixed as follows:

> 単一コアからメモリ範囲内での非同期操作があると、ビルドエラーが発生します。

< 単一コアのメモリ範囲で非同期操作が発生すると、ビルドエラーが発生します。

Thanks,

Kenshow

9-Nov-2020

0 Likes