ホーム › フォーラム › Texas Instruments › マイコン › C2000 › F2837xD CPU2でのデバッグ このトピックには2件の返信が含まれ、2人の参加者がいます。5 年前に Yojiro さんが最後の更新を行いました。 3件の投稿を表示中 - 1 - 3件目 (全3件中) 投稿者 投稿 2019年11月21日 7:46 PM #9037 返信 ttkkttkk参加者 F2837xD CPU2でのデバッグ デバイス型番:F2837xD CPU2をデバッガ上でF5,F6なりでステップ実行でデバッグしているのですが CPU2でグローバル変数が更新されない現象が発生しています 例としてですが g_AAA++; の一文をExpressionsウインドウでg_AAAの値を確認しても 更新がされない 考えられる原因について何かわかりませんでしょうか 2019年11月22日 11:57 AM #9042 返信 ttkkttkk参加者 すいません自己解決できました。 CPU2でのグローバル変数が0x014000~配置されており CPU1側でMemCfgRegsのGSxMSELのMSEL_GS8、MSEL_GS9ビットをH にすると更新がされるようになりました。 一点質問なのですが、 グローバル変数、RAMに設定される変数がRAMGS8_9 に配置している設定はどこになるのでしょうか? 2019年11月25日 2:13 PM #9049 返信 Yojiro従業員 ttkkttkkさん メモリアクセスについて解決いただけたとのこと、承知いたしました。 TMS320F28379Dでは、リセット解除後はすべてのGSRAMは、CPU2ではRead onlyとなっております。 必要に応じてGSxMSELレジスタにてアクセス権をCPU2へ変更頂く必要がございます。 グローバル変数の配置につきましては、プロジェクトのリンカコマンドファイル(拡張子.cmd)にて定義されます。 C言語でグローバル変数を定義していただくと、その変数はセクション”.ebss”がコンパイラにて割り当てられます。 リンカコマンドファイルにて、このセクションを配置する先を「SECTIONS:」で定義しております。 .pinit : > FLASHB, PAGE = 0, ALIGN(4) .ebss : >> RAMLS5 | RAMGS0 | RAMGS1, PAGE = 1 .esysmem : > RAMLS5, PAGE = 1 上記の例では、.ebssセクションを「RAMLS5」と「RAMGS0」「RAMGS1」に定義しています。 C2000のアセンブラ・リンカはEABIとCOFFの2つのメモリモデルに対応しております。 この2つのメモリモデルでは、出力されるセクション名が異なるため、リンカコマンドファイルでは、”#if defined(__TI_EABI__)”によりそれぞれのモデルに対応させています。 しかし、現在のコンパイラはCOFFモデルにのみ対応となっておりますので、 #if defined(__TI_EABI__)…#else の#else側をご確認いただければと存じます。 ご確認のほど、よろしくお願いいたします。 投稿者 投稿 3件の投稿を表示中 - 1 - 3件目 (全3件中)