フォーラムへの返信
-
投稿者投稿
-
グリッジの件は削除させていただきます。サンプルコードでは発生しません。別のコード同等の初期化をしていますが、ブレークして小数点以下をデバッガのレジスタ変更で行ったいました。その過程で間違えた値をどこかに違った値を書き込んでしまったのかもしれません。そのときは実数部分が3より大きければ方形波になっていましたので英文を添付しました。
基板は、弊社オリジナルです。失礼しました。
All ePWM modules operating in HRPWM incur only a 3-SYSCLKOUT cycle minimum duty cycle
limitation when high-resolution period control is not used. If high-resolution period control is enabled,
there is an additional duty cycle limitation 3-SYSCLKOUT cycles before the end of the PWM period信号波形を見ると付加された部分とメインのPWMパルスとの間にグリッジが発生していますが回避方法はありますか、
Attachments:
解決しました。
古い SFO_v8_fpu_lib_build_c28.lib をリンクしていたこと、
また、SFO() のトレーニング方法が以前と異なるようで、
サンプルに合わせたところハイレゾ部分が信号に付加されるようになりました。//
// Calling SFO() updates the HRMSTEP register with calibrated MEP_ScaleFactor.
// HRMSTEP must be populated with a scale factor value prior to enabling
// high resolution period control.
//
while(status == SFO_INCOMPLETE)
{
status = SFO();
if(status == SFO_ERROR)
{
error(); // SFO function returns 2 if an error occurs & # of MEP
} // steps/coarse step exceeds maximum of 255.
}解決しました。ありがとうございました。
もう一つ質問があります。
演算で 商(/)を求めるなど昔にはCLA Math Libraryがあったと思いますが、
こちらの定義が無くても演算の速度は変わらないでしょうか、
よろしくお願いします。ご説明有難うございました。
当方の誤りは、TZCTLの設定がデフォルトHi-Zであるため評価回路側でpull downしていたためDo Nothingとはならず、negate状態となっていました。そのためTZDCSELを選択しただけでTZが働くことにより勘違いしていました。
最後に、投稿をクローズするにはどうすればよいのでしょうか、
簡単に説明いただけると助かります。
Attachments:
回答いただいた内容は、DCの出力を直接繋いだルートになると思いますが、では、DCAEVENT2.force
の信号はCBCのマルチプレクサを経由してTlipモジュールに入れることはできないのでしょうか?色々と調べていただき感謝します。
有難うございました。ご指摘の通り、初期の問題点は解決できました。
有難うございました。最後に確認ですが、
・リセットスタート時は、ウオッチドッグはスタートしているのでしょうか、
・ライブラリに関して、参照すべきページを具体的に教えて頂けませんか、よろしくお願いします。
その後 インラインアセンブラにも外部参照である宣言を付け加えることで
この部分のエラーは解決できましたが、
__asm(” MOVL XAR4, #_stack_pointer”);今度は、リンク部分で以下のメッセージが表示されてしまいました。
atal error: object files have incompatible formats
(“C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.12.1.LTS/lib/rts2800_fpu32.lib<
boot28.asm.obj>” = TI-COFF, “./F2807x_Adc.obj” = ELF)
gmake: *** [UPS.out] Error 1
gmake: Target ‘all’ not remade because of errors.ブートがリンクできない模様です。
コンパイラ 18.1より18.12へ場ジョンアップ後 添付の様に
Output FormatをLegacy(COFF)よりeabi(ELF)に変更したところ
インラインアセンブルで使用しているラベル(変数)が未定義になってしまいます。
実体は、C言語により行っています。対策をご教示ください。
定義部
unsigned short task_chg_no;C言語ソース
task_run_no = task_chg_no;__asm(” MOVL XAR4, #_stack_pointer”);
__asm(” MOVL XAR5, #_task_chg_req”);コンパイルのエラーメッセージ
The following symbols are undefined:
_task_chg_no
_stack_pointer
_task_chg_reqErrors in Source – Assembler Aborted
gmake: *** [Task1(power)/Lib_PWM.obj] Error 1Attachments:
回答有難うございます。
.eBssの初期かについてですが、二度でまになりますが、.eBssを0で埋めてからBoot内のBss_init()モジュールを呼び出して初期値を再転送しています。
多分、.eBssのグローバル変数にテーブール情報がブートより渡されているのと思います。
それで、main冒頭で0値の初期化処理を行うと単体(Flash Boot)で実効できないのだと推測していますが、どうなんでしょうか、EABIについて、オプションについて説明いただけませんか、Allow extern C functions to propagate exceptions (EABI only). 理解できません。
また、指摘のRAM GS4は、コマンドファイルの定義で、GS4(GS5,GS6)を合わせた物として12KWordよって24Kbyteして使用しています。
よろしくお願いします。
BSSクラスの初期化ですが、デバッガを繋いでダウンロード、リセットをすると前値が残っている為に、
プログラムが誤動作してしまいます。やはり、初期値なしグローバル変数は0に初期化する必要性があります。よろしくお願いします。
-
投稿者投稿