フォーラムへの返信
-
投稿者投稿
-
CPU1_FLASH_STANDALONE
CPU2_FLASHをControlCARDにダウンロードしてデバッガなしで起動させたのですが
PWMが動きませんでした上記のadc_epwm_cpu01, cpu02は必ず
CPU01側から先に起動させる必要があるのでしょうか回答ありがとうございます
CPU1側でEPWM設定し、動作することは確認しております
C2000サンプルにあるadc_epwm_cpu01, cpu02において、
cpu02側にPWM4~6の設定を追加、InitEPwm1Gpio()と同じように
InitEPwm4,5,6Gpio()を追加、DevCfgRegs.CPUSEL0.EPWM4,5,6=1
を追加し、実行すると
PWM4~6が動作しました質問の趣旨が変わって申し訳ないのですが
デバッガなしの単体で起動する場合、どの組合せで起動すればよいのでしょうか
CPU1_FLASH_DEBUG
CPU1_FLASH_STANDALONE
CPU1_RAM_DEBUGCPU2_FLASH
CPU2_RAM_DEBUGデバッガ接続状態で、CPU1_RAM_DEBUG,CPU2_RAM_DEBUGでConfigurationを設定したところPWMが動きましたが、
デバッガ未接続の場合は動かなかったため質問した次第で、すみませんが回答よろしくお願いします回答ありがとうございます。
MUX設定とCSEL設定を入れ替えてみましたが
出力されませんでしたPWM4~6の設定はCPU2側で行っておりますが
何か関係してますでしょうかありがとうございます
flash_programming_cpu01.cを見ましたFapi_issueProgrammingCommandがフラッシュへのプログラムロード部分になるのでしょうか
プログラムの送信元はBufferになるのでしょうか何度もすみませんが回答をお願いします
回答ありがとうございます
CPU1はCPU1のみ、CPU2はCPU2のみしかプログラム書き換えができない
という意味でよかったでしょうか?同じ質問の繰り返しになってしまうかもしれませんが
以前教授頂いた、F2837xD_Sci_flash_kernelsのサンプルに
DCSM機能で書込み禁止エリアを設定すれば、ローダープログラムを書き込み禁止エリアにして
一部の機能のみプログラム入れ替えをすることは可能でしょうか?回答ありがとうございます。
メモリ配置の工夫とは具体的にどのような実装になるのでしょうか?
GSRAMの割り当てのことでしょうか?cmdファイルのメモリ配置のことでしょうか実際やりたい事は
1.コア1でコア2に対しプログラムを書き換えする。
(プログラム内容はコア1、コア2用の両方が入ったプログラム)
2.コア1用プログラムをコア2からコピーする。
3.コア1用、コア2用を実行する。度々すみませんが、ご教示お願いいたします。
Attachments:
すいません自己解決できました。
CPU2でのグローバル変数が0x014000~配置されており
CPU1側でMemCfgRegsのGSxMSELのMSEL_GS8、MSEL_GS9ビットをH
にすると更新がされるようになりました。一点質問なのですが、
グローバル変数、RAMに設定される変数がRAMGS8_9
に配置している設定はどこになるのでしょうか?WDTのdisable部分を追加してデバッガなしで起動したところ
実行されていることが確認できました。
ありがとうございました。回答ありがとうございます。
デバッガ未接続時にTESTL1が実行されないとのことですが、_c_int00からのコードが実行されるということでしょうか。それとも、全く動作していないように見えるということでしょうか。
これは後者の「全く動作していないように見える」です
_c_int00モジュール、TESTL1以降のモジュールどちらも
GPIO出力にてトグル操作をしていますが、何も出力されていなかったため
そのように判断しました。ひとまず、TESTL1ラベル処理でWDTをdisableにして一度試します。
すみません、もしわかりましたら教えてください
CodeStartBranch.asmを以下のように改造を行い、
.if WD_DISABLE == 1
LB wd_disable ;Branch to watchdog disable code
.else
;;;;;;;;;;;;;;;;; GPIO86 がL時にmain_testへ飛ばせるかどうかのテスト
MOVW DP, #0x1FC
MOVL @0x8, ACC
TBIT @0x11, #0x6
SB TESTL1, NTC
;;;;;;;;;;;;;;;;;
LB _c_int00 ;Branch to start of boot._asm in RTS library
.endifデバッガ接続でGPIO86をLにしたところ、正常にTESTL1ラベルのコードが
開始されるのですが、デバッガ未接続で起動させると
TESTL1ラベルのコードが開始されませんでした原因について何かわかりましたら回答をお願いいたします
何度もすみません
上記 F28377のControlCARDで 試そうとしておりますが
BootModeで使用するGPIO84, GPIO72は
当該プログラムの切り替えポートとしては利用不可でしょうか了解しました。
回答ありがとうございます。すみません、一点追加で質問させてください。
上記の2プログラムをCodeStartBranch.asmで分けるような
サンプルプログラムはありますか回答ありがとうございます。
すみませんが、確認させてください。
ブランチ命令分のサイズが確保されている箇所は/* Flash Rom */
BEGIN : origin = 0x080000, length = 0x000002 /* Program Start(Boot to FLASH) */上記のlengthのサイズが2wordしかないため
拡張する必要があるということでしょうかすみません、一点追加です
controlCARDのOTP、Z1_BOOTCTRLを0x49490B5Aと
変更してしまったのですが、SCI_Bootを選択することは可能でしょうか?何度も申し訳ございませんが回答をお願いします
-
投稿者投稿