ホーム フォーラム Texas Instruments マイコン C2000 F021 フラッシュについて

このトピックには6件の返信が含まれ、2人の参加者がいます。4 年、 4 ヶ月前 uchidaK さんが最後の更新を行いました。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #10794 返信

    ttkkttkk
    参加者

    F021 フラッシュについて

    デバイス型番:F2837xD

    何度も申し訳ございません。
    F2837xDでF021のフラッシュライブラリを使おうとしています
    1.フラッシュ初期化 Fapi_InitializeAPI
    2.FMC初期化バンク0 Fapi_setActiveFlashBank( Fapi_FlashBank0 )
    3.消去コマンド発行 Fapi_issueAsyncCommandWithAddress( Fapi_EraseSector, 0x088000)
    4. Fapi_checkFsmForReady
    5.ブランクチェック
    oReturnCheck = Fapi_doBlankCheck( 0x088000, 0x4000, &oFlashStatusWord )

    の順にFLASH書込みの前処理を行っているのですが
    5項のブランクチェックにて戻り値oReturnCheckがFapi_Status_Successが
    帰ってこず、Fapi_Status_FsmReadyが返ってきます

    これにはどういった原因が考えられるでしょうか?

    #10796 返信

    ttkkttkk
    参加者

    追記いたします
    1項~3項のoReturnCheckの値は基板によって
    0x3E8,Fapi_Status_FsmReadyになるのですが
    (上記Expression WindowでWatchした結果)
    その後の if( oReturnCheck != Fapi_Status_Success )
    には入らず、あたかもFapi_Status_Successが返ってきているかのような動きをしております

    #10804 返信

    uchidaK
    従業員

    ttkkttkk様

    お世話になっております。

    Fapi_doBlankCheckについては、Fapi_Status_FsmReadyの戻り値は返さないAPIであるため、Fapi_doBlankCheck自体が実行されていない可能性が考えられます。

    下記のサンプルコードでは、貴社が実施されているコードと同様の内容が実行されているかと思います。

    こちらのサンプルコードでも同様の問題は発生しますでしょうか?

    C2000Ware_x_xx_xx_xx\device_support\f2837xd\examples\cpu1\flash_programming_dcsm\cpu01

    問題が発生しない場合、ソフトウェアとしてどのような差分があるかを確認いただくと、原因究明の参考になるものと考えます。

    また、カスタムボードで動作を見られている場合は評価ボードと動作を比べていただき、問題が再現するかどうか、ハードウェアについて何か原因が考えられないか、という点についても確認いただけますと幸いです。

    以上、参考になれば幸いです。

    uchidaK

    #10823 返信

    ttkkttkk
    参加者

    回答ありがとうございます。

    提示頂いたほうのflash_programming_dcsm_cpu01では
    doBlankCheckでもsuccessが戻り値として返ってきました

    GROUP
    {
    .TI.ramfunc
    { -l F021_API_F2837xD_FPU32.lib}

    } LOAD = FLASHD,
    RUN = RAMLS03,

    cmdファイルの上の部分において
    LOADやRUNの場所は変更していますが、それが何か関係しているのでしょうか?

    また、素朴な疑問でもうしわけないのですが
    flash_programming_dcsm_cpu01とflash_programming_cpu01ではどんな違いがあるのでしょうか?

    #10841 返信

    uchidaK
    従業員

    ttkkttkk様

     

    ご連絡が遅くなり申し訳ございません。

    記載いただいている内容自体は問題ないかと思います。

    下記サンプルコードは動作しないということでしょうか?

    動作は評価ボードで確認いただいておりますでしょうか?

    C:\ti\c2000\C2000Ware_2_00_00_02\device_support\f2837xd\examples\dual\flash_programming\cpu01\flash_programming_cpu01.c

    また、双方のサンプルコードの違いですが、”flash_programming_dcsm_cpu01″ は 名前の通りdcsm(dual core security module)を使用しております。

    DCSMについての詳細は下記159ページから記載がございます。

    https://www.tij.co.jp/jp/lit/ug/spruhm8i/spruhm8i.pdf?&ts=1589246105249

    以上、参考になれば幸いです。

    uchidaK

    #10842 返信

    ttkkttkk
    参加者

    回答ありがとうございます

    サンプルコードではoReturnCheckで正常(Fapi_Status_Success)が
    戻り値として返ってくるのに対し、
    自作で作ったほうのコードではoReturnCheckが他の値(0x3E8,Fapi_Status_FsmReady)で帰ってきている理由が
    知りたいということです

    動作は評価用ボードF2837xDのControlCardを使用しております
    ちなみにですが、
    Fapi_doBlankCheckまでは同じ値を返してきています。

    すみませんが、よろしくお願いいたします。

    #10849 返信

    uchidaK
    従業員

    ttkkttkk様

    お世話になっております。

    恐れ入りますが、現時点までの頂いた情報では、理由の判断は難しいと考えております。

    動作するサンプルコードの差分はリンカーコマンドファイルのみでしょうか?

    また、動作するサンプルコードから具体的にどこを変更すると現象が再現するかを、確認いただけませんでしょうか。

    お手数をお掛けし申し訳ございませんが、よろしくお願いします。

    uchidaK

7件の投稿を表示中 - 1 - 7件目 (全7件中)