ホーム › フォーラム › Texas Instruments › マイコン › C2000 › Flashへの書込みについて このトピックには2件の返信が含まれ、2人の参加者がいます。4 年前に Ge さんが最後の更新を行いました。 4件の投稿を表示中 - 1 - 4件目 (全4件中) 投稿者 投稿 2020年11月16日 5:48 PM #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 2020年11月17日 10:32 AM #13689 返信 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) ~(省略)~ 以上、よろしくお願いいたします。 2020年11月17日 2:07 PM #13692 返信 zen135参加者 ありがとうございます。 解決いたしました。 2020年11月17日 2:09 PM #13693 返信 Ge従業員 ご連絡ありがとうございます。 また不明点が御座いましたらお問い合わせください。 投稿者 投稿 4件の投稿を表示中 - 1 - 4件目 (全4件中)