フォーラムへの返信
-
投稿者投稿
-
ご回答ありがとうございます。
EMU-bootでの確認、およびOTP領域への書き込みを行い、
ともに正常に動作いたしました。私の記載した以下の値について、一部表記ミスがありました。
後々このトピックを参照する方のために修正版を記載しておきます。
Z1-OTP-BOOTPIN-CONFIG(Z1OTP-GPREG1)(0x7800C):0x5AFFFFFF
Z1-OTP-BOOTDEF-LOW(Z1OTP-GPREG3)(0x7801C):0xFFFFFF03
Z1-OTP-BOOTDEF-HIGH(Z1OTP-BOOTCTRL)(0x7801E):0xFFFFFFFF(書き込み無し)この度はご対応ありがとうございました。
ご回答ありがとうございます。
ブートの仕組みについて非常にわかりやすい資料をありがとうございます。
また、On-Chip Flashツールについても確認できました。EMU-BOOTによるテストについて、
文中のReset > Run とは、CPU Reset > Resume ということでしょうか。
BMSPはすべて無効, Flashブートに設定するために、
0xD00番に0x5AFFFFFFを、0xD04番に0xFFFFFF03を設定したのですが、
上記動作の後はESTOP0位置にて停止し、特に何も起きません。また、同様の(B)のゼロピン、Flashブート設定時でOTP領域へ書き込む際は、
Z1-OTP-BOOTPIN-CONFIG(Z1OTP-GPREG1)(0x7800C):0x5AFFFF
Z1-OTP-BOOTDEF-LOW(Z1OTP-GPREG3)(0x7801C):0xFFFF03
Z1-OTP-BOOTDEF-HIGH(Z1OTP-BOOTCTRL)(0x7801E):0xFFFFFF(書き込み無し)と設定するつもりですが間違いないでしょうか。
以上ご確認のほどよろしくお願いします。
Attachments:
ご連絡ありがとうございます。
C2000Ware 3.00.00のサンプルコードからは問題が発生しませんでした。
また、Mathworksライブラリの使用時において、ODIV = 1(SYSPLLMULT.ODIV = 0)以外となる設定の際に
同現象が発生することの再現がとれましたので、Mathworksサポートに調査依頼を致しました。ご対応ありがとうございました。
ご回答ありがとうございます。
CCSを最新版にすることによって、Dcc0Regs内の値が確認できるようになりました。
PLLの設定についてはMathworks社のライブラリを使用しているのですが、
PLLのLockは100回まで試行する設定になっているので問題ないかと存じます。IsValidPLL()実行時の動作を確認すると、以下の場所でレジスタの値が異常であるようです。
—(略)—
// Clear Error & Done Flag
//
Dcc0Regs.DCCSTATUS.bit.ERR = 1; //Dcc0Regs.DCCSTATUS.allは1になるが、~.ERRは0のまま
Dcc0Regs.DCCSTATUS.bit.DONE = 1; //同上
—(略)—
// Configure COUNTER-0, COUNTER-1 & Valid Window
//
Dcc0Regs.DCCCNTSEED0.bit.COUNTSEED0 = dccCounterSeed0; // 代入値は98, Dcc0Regs.DCCCNTSEED0.allが98, ~.COUNTSEED0は262144(0x40000)
Dcc0Regs.DCCVALIDSEED0.bit.VALIDSEED = dccValidSeed0; // 代入値、~.all, =.VALIDSEED すべて4
Dcc0Regs.DCCCNTSEED1.bit.COUNTSEED1 = dccCounterSeed1; // 代入値は4000, ~.allは4000, ~.COUNTSEED1は65536(0x10000)// Enable Single Shot Mode
//
Dcc0Regs.DCCGCTRL.bit.SINGLESHOT = 0xA; //実行後の値が0—(略)—
// Wait until Error or Done Flag is generated
//
while((Dcc0Regs.DCCSTATUS.all & 3) == 0){} //.EERORも.DONEも0だが、~.allが1なので即抜けるAttachments:
ご回答ありがとうございます。
1番目のリンクの内容で正常に動作するようになりました。
原因も全く同じで、CLAタスクのコードサイズが大きいことにより
InitFlash();前にmemcpyしようとすると時間がかかりすぎて
ウォッチドッグに引っかかっていたようです。ご対応ありがとうございました。
ご回答ありがとうございます。
おっしゃる通りcontrolSUITEのサンプルを参照していた様です。
CCSおよびc2000wareを最新にして確認したところ、正常に動作いたしました。お忙しい所ご対応いただき誠にありがとうございました。
ご回答ありがとうございます。
>•CCSで実行しようとしているプログラムは、ローンチパッドで動作していたものでしょうか。
大変申し訳ありませんでした。製品の出荷時にプリインストールされているプログラムであり、
CCSから同じ設定で書き込んだところ、ローンチパッドでも同じ現象となりました。>•「書き込みは完了しますが、実行すると」とありますが、書き込み終了後は一度main関数の先頭が表示され~。
その通りです。>•プログラムが正常に書き込まれているか確認いただけますでしょうか。
verification successful となりました。>•書き込み後の実行の手順ですが、(書き込み後、ソースコード画面にmain関数の先頭が表示される場合ですが)
いずれの場合も試してみましたが同様の結果となりました。また、Project PropertyよりConfigrationをFlashからRAMに変更したところ、動作しました。
本件については、ハードウェアの問題でないことが分かったので既に解決済みとして頂ければと存じますが、
もしも上記の回答から予想の付く原因があれば、後学のためにご教示ください。以上よろしくお願いいたします。
-
投稿者投稿