ホーム フォーラム Texas Instruments マイコン MSP430 ファーム書き換えでベリファイエラー

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

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

    ikeda777
    参加者

    ファーム書き換えでベリファイエラー

    デバイス型番:MSP430FR2355

    CCSでビルドしたファームを書き換えようとすると
    MSP430: File Loader: Verification failed: Values at address 0x081B0 do not match Please verify target memory and memory map.
    とエラーが発生し、デバッグができない状態となってしまいます

    手順としては
    ・CCSでソースコードをビルド
    ・デバッグボタン(虫マーク)押下してデバッグ開始
    です

    ボードはMSP-EXP430FR2355 LaunchPad の評価基板を使用し、ボード上に実装されているeZ-FET Debug Probeの
    USBコネクタとPCを接続しています
    CCSのバージョンは最新の10.1.0 です

    エラーが発生した状態でBSLツールを接続すると、BSL Password is error! 状態となっています
    再度BSLツールを接続し、BSL Password is correct!と書き換えたあとは、CCSで再度ファームの書き込みが可能となりますが、
    コードを変更し、再度書き込みを行おうとすると、ベリファイエラーが発生します

    このため、CCSを使って効率よく評価実験ができない状態となっております
    解決方法をご教示願います

    #13129 返信
    umamiti
    umamiti
    従業員

    ikeda777様

    今回のエラーの内容は、CCSが指定された実行ファイルを使用してターゲットメモリの内容を検証し、ターゲットメモリにロードしようとしたときに、不一致が発生していることが考えられます。
    (今回、不一致が発生しているアドレス0x081B0は、Main: code memory領域となります。)
    一般的な原因として、CCSが実行ファイルをターゲットに正常にロードできなかったことが考えられます。詳細につきましては、Data Verification Errorsをご参照下さい。

    まずは次の項目についてご教示頂けますでしょうか?
    ・リンカーコマンドファイルは、デフォルトから変更されていますでしょうか
    →リンカーコマンドファイルは、プロジェクト内の.cmdファイルから確認することが出来ます。

    ・デバッガーのメモリマップは、デフォルトから変更されていますでしょうか
    →デフォルトでは無効になっております。デバック画面のメニューバー->Tools->On-chip Flashで開かれたWindow内のMemory Mapを選択することで確認方法出来ます。

    ・デバイスに接続し、実際の0x081B0アドレスのデータをご確認頂けますでしょうか?
    →エディット画面のメニューバー->View->Target Configurationsで開かれたWindow内の、.ccxmlファイルを右クリックし、Launch Selected Configurationを選択します。デバック画面に切り替わった後、メニューバー->Connect Targetでデバイスに接続後、メニューバー->View->Memory Browserで特定のアドレスのデータが確認出来ます。

    ・書き込みを行なうファームの中で、FRAM領域の書き込み保護機能を使用されていますでしょうか。

    ・新たにCCS Projectを作成(main関数のみのシンプルなものなど)し、書き込みが可能かお試し頂けますでしょうか?

    ・「BSL Password is error!」と表示された際のBSLの送信コマンドは、「RX Password」コマンドになりますでしょうか?
    →「RX Password」コマンド送信時に、パスワードが不一致の場合は、FRAM領域がMass Eraseされます。結果として、FRAM領域が初期状態となり、新たにファームを書き込むことが可能になっている可能性があり、BSLツール接続時の実施内容について確認させていただければと思います。

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

    #13135 返信

    ikeda777
    参加者

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

    以下、確認事項の回答となります。ご確認お願いします。

    > ・リンカーコマンドファイルは、デフォルトから変更されていますでしょうか
    > →リンカーコマンドファイルは、プロジェクト内の.cmdファイルから確認することが出来ます。
    変更なしです。プロジェクトを新規作成したものと一致してます。

    > ・デバッガーのメモリマップは、デフォルトから変更されていますでしょうか
    > →デフォルトでは無効になっております。デバック画面のメニューバー->Tools->On-chip Flashで開かれたWindow内のMemory Mapを選択することで確認方法出来ます。
    Start: 0x0, End: 0xFFFFFFFFFFFFFFFF, Attributes: RAM
    特に設定してません。

    > ・デバイスに接続し、実際の0x081B0アドレスのデータをご確認頂けますでしょうか?
    作成した関数をコールする際の引数の数値を変更し、FW のバイナリが意図通りに変化していることを確認してます。(バイナリの差分は1byteのみ)

    > ・書き込みを行なうファームの中で、FRAM領域の書き込み保護機能を使用されていますでしょうか。
    CCS General > FRWP は無効にしてます。

    > ・新たにCCS Projectを作成(main関数のみのシンプルなものなど)し、書き込みが可能かお試し頂けますでしょうか?

    新規プロジェクトを New CCS Project から Target を MSP430FR2355 とし、Compiler は TI v20.2.0.LTS を、Templates から Empty Project (with main.c) を選択して作成しました。
    この FW を問題発生後のターゲットに CCS の Debug でロードしましたが、
    `
    MSP430: File Loader: Verification failed: Values at address 0x08000 do not match Please verify target memory and memory map.
    MSP430: GEL: File: C:\(…省略…)\Empty.out: a data verification error occurred, file load failed.
    `
    となり、プログラム先頭から FRAM 更新が失敗するようです。

    別の未使用ターゲットに対して、上記の新規プロジェクトの FW をロードすると、
    `
    MSP430: Error initializing emulator: A firmware update is required for the MSP430 Debug Interface (MSP-FET430UIF / MSP-FET / eZ-FET). Click the “Update” button to update the firmware and launch your debug session (this may require several update steps). DO NOT UNPLUG THE INTERFACE DURING THE UPDATE.
    `
    と初回 eZ-FET の更新が求められますが、もちろん問題なく FRAM 更新でき、プログラムを多少変更してからの FRAM 再更新もできてます。

    また、問題が発生するプロジェクトは MSP430Ware から作成していたため、
    再度 MSP430Ware 3.80.10.09 の Example Projects > 00_EMPTYPROJECT > emptyProject を Import してみましたが、こちらも問題なく FRAM 更新できてます。
    (プロジェクトのプロパティ > CCS General で Variant を FR4133 から FR2355 に変更し、また、driverlib をコンパイルするために CCS Build > MSP430 Compiler > Processor Options で data model を small から large に変更してます)

    > ・「BSL Password is error!」と表示された際のBSLの送信コマンドは、「RX Password」コマンドになりますでしょうか?

    「BSL Password is error!」は RX Password コマンドで初期パスワードを送信した際に表示されておりました。
    こちらはパスワードを一致させると後続の RX Data Block コマンドで FRAM を更新できることを確認しており、
    また、TX Data Block で更新後の FRAM を取得できることも確認しております。BSL は問題なく動作してそうです。

    問題発生後のターゲットに対してブレイクポイントの設定や、Register、Memory にアクセスすることは可能なため、単純に FRAM の更新ができなくなっているように見えます。
    また、BSL でパスワード不一致させて初期化させた後は再度 FRAM の更新ができております。

    以上、宜しくお願い致します。

    #13140 返信
    umamiti
    umamiti
    従業員

    ご確認いただきまして、ありがとうございます。

    リンカーコマンドファイル、デバッガーのメモリマップはデフォルトから変更していないとのこと、承知いたしました。

     

    >作成した関数をコールする際の引数の数値を変更し、FW のバイナリが意図通りに変化していることを確認してます。(バイナリの差分は1byteのみ)

    →エラーが発生した際の、エラー内容に表示されているアドレスにある実際のデータの内容は、0xFFFFが表示されますでしょうか?もしくは、0または特定のデータが表示されますでしょうか?
    前回は0x81B0となり、今回は0x8000となっておりましましたが、FW更新が出来ない際には、以前のFWのデータが格納されているか、別のデータが格納されているのか確認できればと思っております。

     

    >別の未使用ターゲットに対して、上記の新規プロジェクトの FW をロードすると、
    >と初回 eZ-FET の更新が求められますが、もちろん問題なく FRAM 更新でき、プログラムを多少変更してからの >FRAM 再更新もできてます。

    →未使用ターゲットにつきましては、今までと同様にFWの内容を変更しようと、問題なく書き込みが可能という認識で合っていますでしょうか。
    別のターゲットでも同様の書き込みエラーが出ない場合は、ボード自体に問題がある可能性がございます。

     

    BSL でパスワード不一致させて初期化させた後は、再度 FRAM の更新ができていることから、何らかの理由で、FRAMメモリがEraseされていない可能性がございます。ですので、お手数ですが以下の項目についてお試し頂けますでしょうか?

    ・コネクト時にFRAM領域をEraseし、プロジェクトの書き込みをお試し頂けますでしょうか。
    プロジェクトのProperties->Debug->MSP43x Optionを選択し、Connention Optionsにて「On conect, erase main, information~~」にチェックを入れることで設定可能です。

    ・FRAM更新が出来ないターゲットに接続し、手動でFRAM領域をEraseした後、再度プロジェクトの書き込みをお試し頂けますでしょうか。
    フラッシュメモリを手動で消去してみてください。デバック画面のメニュー->Tools->On-Chip Flashを選択し、Erase Settingにて0x8000~0xFFFFの範囲をMase Eraseすることが可能です。

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

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