ホーム フォーラム Texas Instruments マイコン C2000 Flashへの書込みについて

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

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

    zen135
    参加者

    Flashへの書込みについて

    デバイス型番:TMS320F28374S

    F021_API_F2837xS_FPU32.libのFapi_issueProgrammingCommandを使用してFLASHへの書込みを行おうとしているのですが、下記エラーが返ってきます。
     Fapi_Error_AsyncIncorrectDataBufferLength

    現在行っているのは、F2837xS_sci_flash_kernelを参考に.datファイルをFLASHに書き込もうとしております。
    書込み最初のアドレスである0x87E64にてエラーになります。
    試しに強制的に0x87E60するとエラーは無くなります。
    書込みは16bit(word) x8で書き込んでおりますが、これが何か関係していますでしょうか?

    .datファイルの先頭部分を抜粋
    AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 08 00 09 58 A8 00 08 00 64 7E FF FF BA E5
    00 00 00 00 FF FF BB E5 00 00 00 00 FF FF BC E5
    00 00 00 00 FF FF BD E5 00 00 00 00 FE FF BE E5
    00 00 00 00 00 00 FF FF 00 E0 00 00 00 00 FF FF

    #13689 返信
    Ge
    Ge
    従業員

    お問い合わせありがとうございます。

    Fapi_issueProgrammingCommand()は一度に128bit(16bit word x8)をプログラムすることができますが、これは開始アドレスが、128bit境界にある場合のみとなります。0x87E64は128bit境界にないので、128bitの書き込みに失敗し、0x87E60は128bit境界になるので、正常に書き込みが行えているものと思います。

    参考情報:
    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/373542

    この問題を回避するには、リンカコマンドファイルで、Flashに割り当てるセクションに”ALIGN(8)”を付ける必要がございます。この記述で 16bit x 8 の境界にアラインされます。

    ~(省略)~
    .text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(8)
    .const : > FLASHF, PAGE = 0, ALIGN(8)
    ~(省略)~

    以上、よろしくお願いいたします。

     

    #13692 返信

    zen135
    参加者

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

    #13693 返信
    Ge
    Ge
    従業員

    ご連絡ありがとうございます。
    また不明点が御座いましたらお問い合わせください。

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