2 Replies Latest reply on May 7, 2020 1:35 AM by JuyoungJ_06

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

    YoOb_1790021

      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

        • 1. Re: Community Translation - Manage Working Flash Space for Both Cores of PSoC® 6 - KBA224173
          YoOb_1790021

          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

          • 2. Re: Community Translation - Manage Working Flash Space for Both Cores of PSoC® 6 - KBA224173
            JuyoungJ_06

            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