GR-PEACHでのシリアルフラッシュの扱いについて

あまりに知識不足で、的外れな質問になっていたら申し訳ありませんが、
以下、ご教示下さい。

①GR-PEACHで、外部端末から設定された値を
シリアルフラッシュに保存したいと考えています。

この時、設定値用の変数をフラッシュ上に割り当てる必要があると考えていますが、
必要な設定手順(または参考資料)をご教示下さい。ユーザーズマニュアルを見てみましたが、
よく分かりませんでした。。

②GR-PEACHではプログラムはシリアルフラッシュ上で実行される様ですが、
実行速度が遅く、フラッシュの書き込み回数の上限もあることから、
プログラムはブート時にRAMに転送して実行したいと考えています。
こちらについても手順やサンプルプログラムなどがありましたらご教示下さい。

※開発環境はオンラインではmbed、オフラインではe2studioを使用しています。

Parents
  • wtysさん

    ①シリアルフラッシュ操作
    シリアルフラッシュ操作に対応したライブラリがあります。
    ライブラリ:
    github.com/.../mbed-os

    関数API:
    github.com/.../FlashIAP.h

    使用例:(RZ/A2M用プロジェクトですが、GR-PEACHでも同様に使用できます)
    github.com/.../sample_01_flash_write.cpp

    ②関数のRAM実行
    上記ライブラリを使用する場合、以下のように関数を「RAM_CODE」セクションに割り当てることで、関数がブート時にシリアルフラッシュからRAMにコピーされ、RAM上で実行されます。
    --------------------------------------
    #define RAM_CODE_SEC __attribute__((section("RAM_CODE")))
    static RAM_CODE_SEC void ram_execute( void );
    static void ram_execute( void )
    {
    /* hoge */
    }
    --------------------------------------
Reply
  • wtysさん

    ①シリアルフラッシュ操作
    シリアルフラッシュ操作に対応したライブラリがあります。
    ライブラリ:
    github.com/.../mbed-os

    関数API:
    github.com/.../FlashIAP.h

    使用例:(RZ/A2M用プロジェクトですが、GR-PEACHでも同様に使用できます)
    github.com/.../sample_01_flash_write.cpp

    ②関数のRAM実行
    上記ライブラリを使用する場合、以下のように関数を「RAM_CODE」セクションに割り当てることで、関数がブート時にシリアルフラッシュからRAMにコピーされ、RAM上で実行されます。
    --------------------------------------
    #define RAM_CODE_SEC __attribute__((section("RAM_CODE")))
    static RAM_CODE_SEC void ram_execute( void );
    static void ram_execute( void )
    {
    /* hoge */
    }
    --------------------------------------
Children