ブートローダープログラムを作成し、アドレス0x400000から0x420000に配置しました。シリアルポート経由でプログラムをアップデートすると、コア0だけが動作し続ける。他のコアも動かすにはどうすればいいですか?
こんにちは@zhangyu5454さん
スタートアップコードでコアを有効にすることができます。デフォルトのS32DSプロジェクトの起動コード(startup_cm7.s)を参照してください。
例えば、CM7_2_ENABLE == 1 の場合、起動コードはシステム起動時に CM7_2 を有効にします。
コアは、CM7_0アプリケーションから後から有効化することも可能で、関連するレジスタを直接設定するか、MCU MCALドライバやPower_Ipドライバを使用することで可能です。この例を参照してください。
BR、ダニエル
ご回答ありがとうございます。Power_Ip を使ってみましたが、プログラムに「Power_Ip_Init(&Power_Ip_HwIPsConfigPB);」という行が現れると、デバッグプロセスが自動的に終了してしまいます。さらに、リセットボタンを押さなくてもリセットランプが点灯したままになり、結果としてデバイスが全く動作しなくなります。IP_MC_MEを使用すると、プログラムは正常に実行されますが、結果が何も生成されません。他のコンポーネントも起動しない。このコードスニペットはモデル388ではうまく動作していないようです。
こんにちは@zhangyu5454さん
MCUがシステムリセットを経た場合、リセットのソースを読み取る必要があります。
電話してみていいよ
Power_Ip_GetResetReason();
main() の開始時、
Power_Ip_Init();
おそらく根本原因はV15スイッチドモード電源であり、ハードウェアデザインと一致している必要があります。
BR、ダニエル
こんにちは@zhangyu5454さん
では、リセットの理由は何ですか?
推測するなら、POR/LVRだろう。
V15は基板上でどのように電源供給されていますか?
Power_IPを適切に設定していますか?
よろしくお願いいたします。
ダニエル
よろしくお願いします。
こんにちは、 @zhangyu5454 さん、
PCB上でSMPSを使用していると理解していますので、設定ツールで有効にする必要があります:
SXOSCについては、無効になっていることを確認してください。
ご返信ありがとうございます。私はこれらの機能についてあまり詳しくありません。関連するサンプルファイルやチュートリアルファイルはありますか?S32K358のサンプルコードを参考にしようとしましたが、うまくいきませんでした。V15電源については、外部の3.3Vからトランジスタを介してマイクロコントローラで制御され1.5Vが生成され、1.1Vもマイクロコントローラ制御で生成されることがわかりました。また、私のハードウェア設計に32.768のクリスタルオシレーターがなく、プログラムがループ内でClock_Ip_ExtOsc.cで止まってしまうことにも気づきました
Do {
SxoscStatus = ((Clock_Ip_apxXosc[インスタンス]-統計>STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT);
TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks);
} 一方で(((0U == SxoscStatus) && (FALSE = TimeoutOccurredd));