フォーラムへの返信

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • 返信先: CLAが動作しない現象について #13733

    NICO
    参加者

    エミュレータ―の CPU Reset実行時には、CPUへのリセット信号は出力されていませんが、
    どのようにして初期化しているのでしょうか?

    返信先: CLAが動作しない現象について #13728

    NICO
    参加者

    CPU Reset前後のレジスタの内容を添付します。
    EPWM,ADC,CAN全て初期化されているようです。

    尚、CCSは6.2.0で、GELファイルはサンプルのf28065.gelをそのまま使用しています。

    返信先: CLAが動作しない現象について #13725

    NICO
    参加者

    返信ありがとうございます。
    Gelファイルの中身を確認しました。
    OnReset(int nErrorCode)
    {
    C28x_Mode();
    Unlock_CSM();
    Device_Cal();
    CLA_Clock_Enable(); /* Enable CLA clock – allows to debugger to set CLA breakpoints after reset */

    // EMU_BOOT_SARAM(); /* Set EMU Boot Variables – Boot to SARAM */
    // EMU_BOOT_FLASH(); /* Set EMU Boot Variables – Boot to flash */

    CLAのクロックが有効化されていることを確認しました。

    ところで、上記処理では、EPWMなど他のレジスタの初期化は行っていないようですが、
    実際にはCPU Reset後に初期化されています。
    どのような仕組みで初期化しているのでしょうか。

    返信先: CLAが動作しない現象について #13682

    NICO
    参加者

    すみません。どうしても理解できないので教えてください。
    SysCtrlRegs.PCLKCR3.bit.CLA1ENCLKの初期値を確認したところ
    CPU Reset後:1 → Resume 後:0
    CPU Reset後:1 → Restart後:1
    となっています。

    本来であれば、CPU Reset後は0に初期化されるべきだと思いますが、
    0の状態でもCPU Resetを行うと1にセットされてしまいます。
    同じレジスタのCOMxENCLK,DMAENCLK,USB0ENCLKは0に初期化されるようです。
    これはエミュレータの仕様でしょうか?

    返信先: CLAが動作しない現象について #13651

    NICO
    参加者

    原因が分かりました。
    CLAのクロックを有効化していないことが原因でした。
    SysCtrlRegs.PCLKCR3.bit.CLA1ENCLK = 1;
    を追加したところ正常に動作しました。

    返信先: CLAが動作しない現象について #13649

    NICO
    参加者

    返信ありがとうございます。
    リンク先の内容を確認しましたが、memcpyについては、InitFlash()の後に実行していますし、
    CLA以外の機能については問題なく動作するため現象が異なるように思います。
    また、CLAについてはconstデータは使用していないため、constデータのmemcpyは行っていません。

6件の投稿を表示中 - 1 - 6件目 (全6件中)