フォーラムへの返信
-
投稿者投稿
-
ご返信いただきありがとうございます。
無事に動作したとのことで安心いたしました。
また不明点が御座いましたらお問い合わせください。以上、よろしくお願いいたします。
お問い合わせありがとうございます。
VIENNA_NON_LINEAR_VOLTAGE_LOOPはPowerSUITEベースのプロジェクトの場合変更ができません。
プロジェクトインポート時に、以下のnonpowerSUITEバージョンのプロジェクトをインポートいただくと、VIENNA_NON_LINEAR_VOLTAGE_LOOPを1に変更してご利用いただけます。
以上、よろしくお願いいたします。
ご連絡いただきありがとうございます。
GPIO(LED)によりイレースコマンド実行(完了しているかは不明)まで進んでいるのを確認できてます。
承知いたしました。
プロジェクトですが、カスタムされた基板ありきのプロジェクトなので、お試し頂くのは難しいと思いますが、プロジェクト送付は可能です。
ありがとうございます。TIの評価ボードで再現可能でない場合には弊社で動作検証ができませんので、問題点を特定できるかは現状判断ができませんが、プログラムのフローは確認可能です。
別途メールにてご連絡させていただきますので、そちらのメールに返信する形でプロジェクトをお送りいただけますでしょうか。以上、よろしくお願いいたします。
ご連絡ありがとうございます。
それはデバッグモードでも同様でしょうか?
デバッグモードでも同様と考えます。
また、先程返信に少し補足をしますと、「FLASH書き換えプログラムはRAMにコピーする必要がある」と記載しましたが、FLASHを書き換えるのは、FLASH APIになりますので、こののライブラリ(F021_API_F2837xS_FPU32.lib)がRAMにコピーされていればFLASH書き換えが可能となります。
以上、よろしくお願いいたします。
お問い合わせありがとうございます。
デバッグモードだと、イレースも成功し期待した動作をする。
通常モードだと、リセットがかかり、main関数に戻ってくる。弊社でもデバッグモードと通常モード(Flash boot mode)でEraseを実行してみましたが、上記のような現象は再現できませんでした。
通常モードでEraseコマンドの発行時にリセットがかかるとのことですが、これはGPIOなど使って、Eraseコマンドまでは実行されていることを確認できているということでしょうか。
弊社でも同様の問題を再現可能なシンプルなテストプロジェクト等をお送りいただくことは可能でしょうか。
お送りいただければ、そちらのプロジェクトをベースに調査をさせていただきます。以上、よろしくお願いいたします。
今回LiveFirmwareUpdateについて色々とご質問させて頂きましたが、プロジェクトを一つで行う場合はブートに伴うプログラムはRAMに展開する必要がある。
プロジェクトをブート用とアプリ用に分けて作成し、FLASHの領域も分けて作成した場合は、アプリ用側のアップデートに限りブートに伴うプログラムをRAMに展開する必要はない。(展開せずにアップデートできていました。)
上記認識で問題ございませんでしょうか?このブートの伴うプログラムというのは、FLASH書き換えプログラムのことでしょうか。その場合にはRAMに展開する必要がございます。FLASHを書き換える動作をしていないプログラムについては、RAMに展開する必要はございません。
以上、よろしくお願いいたします。
エミュレータ―の CPU Reset実行時には、CPUへのリセット信号は出力されていませんが、
どのようにして初期化しているのでしょうか?エミュレータのCPU ResetはXRS リセットとは異なるものなので、XRSピンからリセット信号は出力されませんが、デバイスの内部ではハードウェアリセットとほぼ同等の動作となっております。
(エミュレータからのリセットは、XRSのリセットと異なり、PLLのレジスタなど一部のレジスタは初期化されません。)
このエミュレータからのリセットについては、テクニカルリファレンスマニュアルにはあまり情報が無いのですが、マニュアル内で”debugger reset”と検索すると、いくつか情報がでてきますのでご参考ください。以上、よろしくお願いいたします。
情報ありがとうございます。
こちらはハードウェアの仕様となります。デバイスのテクニカルリファレンスマニュアルのレジスタの説明ページをご覧いただくと、リセット後のレジスタ初期値が記載されており、CCSリセットにより、この初期値に設定されます。以上、よろしくお願いいたします。
ご連絡ありがとうございます。
ところで、上記処理では、EPWMなど他のレジスタの初期化は行っていないようですが、
実際にはCPU Reset後に初期化されています。
どのような仕組みで初期化しているのでしょうか。弊社の環境にて、CPU Reset後にEPWMが初期化されるか確認をしてみましたが、特に初期化されている様子はございませんでした。CPU Reset後にEPWMレジスタが、どのような設定値になったかお教えいただけますでしょうか。
以上、よろしくお願いいたします。
解決されたとのことで安心いたしました。
また不明点が御座いましたらお問い合わせください。
スレッドが長くなりましたので、新たにスレッドを作成し、そちらに回答させていただきました。
以下のリンクをご参考いただけますでしょうか。
以上、よろしくお願いいたします。
zen135様
お問い合わせありがとうございます。
添付のファイルに特定のSectorのみEraseしプログラムをロードする方法について纏めましたのでこちらをご参考いただけますでしょうか。
Attachments:
ブートプロジェクトのBEGINを0x080000
アプリプロジェクトのBEGINを0x088000
とした場合、ブートからアプリに移動する際は((void (*)())0x088000)(); アプリからブートに移動する際は((void (*)())0x080000)(); という認識でよろしいでしょうか?ご認識のとおりとなります。
また、起動はどちらのプロジェクトから起動しますでしょうか?
FLASHブートの場合には、0x80000がプログラムの開始アドレスとなりますので、上記の仕様の場合ブートプロジェクトから起動することになります。
以上、よろしくお願いいたします。
本質問についてはメールにて回答させていただきます。
ブート用プロジェクトとアプリ用プロジェクトを作成する件承知いたしました。
干渉しないようにというのは、cmdファイルにてFLASH領域及びRAM領域が干渉しないという理解でよろしいでしょうか?ご認識のとおりとなります。ブート用プロジェクトの起動が常にリセット後のみであれば、RAM領域の干渉は気にする必要はございません。
起動時はブート用プロジェクトから起動しその後アプリ用プロジェクトで動作と考えております。
その際、アプリ用プロジェクトの開始アドレスにはどのようにジャンプすればよろしいでしょうか?((void (*)())0x0A0000)();などをコールして、開始アドレスにそのままジャンプしていただければ問題ございません。
また、開始アドレスはどのように指定しますでしょうか?(cmdファイル内のcodestart?)
アプリ用プロジェクトのcmdファイル内のBEGINのアドレスを変更いただくと開始アドレスを変更可能となります。
以上、よろしくお願いいたします。
-
投稿者投稿