5 Replies Latest reply on Jun 30, 2019 7:42 PM by TaDa_1980266

    CY8CKIT-145-40XXのRAM容量不足

    TaDa_1980266

      CY8CKIT-145-40XXでデバッグ用バッファ(256byte)を追加するとRAMオーバーフローでエラーが発生しました。

        prj.M0120:Build error: region RAM overlowed with stack

      設定でRAM容量の増加は可能でしょうか?

       

      (環境)
      Hardware    : CY8CKIT-145-40XX PSoC 4000S Prototyping Kit
      IC          : CY8C4045AZI-S413
      Sofware     : PSoC Creator 4.2, CapSense
      Base Project: CY8CKIT-145 Code Example.zip

        • 1. Re: CY8CKIT-145-40XXのRAM容量不足
          MoTa_728816

          CY8CKIT-145-40XX に搭載されている CY8C4045AZI-S413 の SRAM は 4K Byte ありますので、

          その範囲では拡張できるかと思います。

           

          Workspace Explorer の <project名> > Design Wide Resource > System をダブルクリックして

          表示されるcydwr の Stack Size (bytes) の右側の Value (現在は 0x0400) を選択して

          上にある Heap Size と合計して、4K byte を超えない範囲で増やしてみてください。

          000-system-config.JPG

           

          moto

          • 2. Re: CY8CKIT-145-40XXのRAM容量不足
            TaDa_1980266

            Design Wide Resource > System の Stack Size を

            0x800(2048)、0xC00(3072)に変更してみましたが、

            状況変わらず、RAMオーバーエラー(prj.M0120)のままでした。

             

            改めて現状環境をビルドすると下記が表示されていましたので、

            私の環境ではSRAM容量4byteを既に使用済であり、1byteも増やせないという事でしょうか?。

             

            Flash used: 22086 of 32768 bytes (67.4%).

            SRAM used: 4096 of 4096 bytes (100.0%). Stack: 1024 bytes. Heap: 128 bytes.

            • 3. Re: CY8CKIT-145-40XXのRAM容量不足
              MoTa_728816

              2048 + 3072 = 5120 > 4096 (SRAM容量) ですので、エラーになってしまいます。

               

              実際にそれだけの容量が必要なアプリケーションを開発されておいでであれば

              当該デバイスでは容量不足と考えます。

               

              もし、実際の使用量が不明で当たりを付けられているということであれば、

               

              例えば

              HEAP 0x400 (1024 byte)

              STACK 0xA00 (2560 byte)

              等を試されてみては如何でしょうか?

               

              ※ 今実験してみましたところ、Heap:1024, Stack:2560 とした場合の

               SRAM使用量は 3872 で、 Heap + Stack よりも 288 byte 余分に必要でした。

              000-stack-size.JPG

               

              moto

              • 4. Re: CY8CKIT-145-40XXのRAM容量不足
                MoTa_728816

                失礼しました。

                 

                今、改めてご質問を拝見したところ

                > SRAM used: 4096 of 4096 bytes (100.0%). Stack: 1024 bytes. Heap: 128 bytes.

                Stack: 1024 byte, Heap: 128 byte の段階で SRAM オーバーフローを起こされているので

                既にプログラムのサイズがデバイスの限界を超えている可能性が高いかと思います。

                 

                敢えて、試すのであれば、Stack を少し小さくして状態が改善されるかをご確認いただき

                難しいようでしたなら、やはりより容量の大きいデバイスをご検討いただくか、

                プログラムの要求するリソースを少なくする等の方法をご検討いただく必要があるかと思います。

                 

                moto

                • 5. Re: CY8CKIT-145-40XXのRAM容量不足
                  TaDa_1980266

                  ありがとうございました。

                   

                  Stackサイズを半分(512byte)にすれば、SRAM容量が空きましたので、

                  まずはこれで進めます。

                   

                  Flash used: 22086 of 32768 bytes (67.4%).

                  SRAM used: 3584 of 4096 bytes (87.5%). Stack: 512 bytes. Heap: 128 bytes.