こんにちは、
Goldbox上でLLCEのサンプルを動作させようとしています。
CAN2CANのサンプルコードを少し修正したところ、S32DSからデバッグすると正常に動作しました。
しかし、U-bootから実行しようとすると、実行はされるものの、U-boot自体がハングアップしてしまう。
私が実行しているコマンドは以下のとおりです。
dcache オフ; mw.q 0x34000000 0x0 0x100000; dcache オン
fatload mmc 0:2 ${loadaddr} /llce.elf
bootm7 ${loadaddr} VTABLE
バス上でCANトラフィックは確認できているので例は実行中ですが、U-bootがフリーズしてコマンドを受け付けられなくなりました。
デバッグの結果、問題の原因はPlatformInit()呼び出し、特にクロックを設定するコードにあることが分かりました。
しかし、そのコードを削除すると、サンプルコードは動作しなくなります。
何かご提案はありますか?
こんにちは、 @GioMusto
ご返信ありがとうございます。
はい、S32G2向けであってG3ではありませんが、導入された方法は似ています。
初期バージョンのソフトウェアパッケージに基づいているため、最近のバージョンのソフトウェアの組み合わせを使った際のステップバイステップガイドとは見なせません。
BR
チェイン
こんにちは、 @GioMusto
投稿ありがとうございます。
ご指摘の問題は、M側とA側の間のクロックまたはその他のリソースの競合が原因である可能性があります。
1. S32G製品では、デフォルト設定でA53側で動作するBSPがシステムへの排他的アクセス権を持つことを前提と設計されており、他のソフトウェアコンポーネントによる潜在的な競合を考慮しません。一方、Mコアアプリケーションではクロックやメモリなどの重要なリソースにも触れる可能性があります。重要なリソースに関して、起こりうる競合や再構成を避けるために、コードのあらゆる部分に注意を払う必要があります。
2. M7アプリケーションとLinux BSPを同時に動作させる場合、推奨される方法は、まずM7ブートローダーを起動してリソースを管理することです。これはAN13750で紹介されました
BR
チェイン
こんにちは、 @GioMusto
ご返信ありがとうございます。
1. 一般的には、S32DS3.5.x(例えば3.5.14)の使用をお勧めします。S32Gと作業するためのもの(S32G RTDリリースのリリースノートに記載されています)。以下のパッケージが少なくともインストールされていることを確認してください:(RTDおよび開発パッケージ)
chenyin_h_0-1786010049364.png
2. プロセスを簡略化するために、S32DSにサンプルプロジェクトをインポートし、IVTツールを開くことができます。例:
chenyin_h_1-1786010241259.png
それから、IVTツールで自分の画像を元にブロブを生成できるかどうか試してみてください。
BR
チェイン
AN13750と「S32G3XX向けシステムレベルブートローダー統合例」に従って、M7ブートローダーを構築しようとしています。
SAFパッケージがないためブートローダーは少し苦労しながらもコンパイルできましたが、今はS32DSのIVTツールで動けなくなりました。
新しいプロジェクトを作成し、S32G399A、Cortex-M7_0を選択して設定を作成すると、「IVTツールは現在のプロセッサをサポートしていません。DCD、QuadSPI、DDR、eFuseについても同様です(スクリーンショットを参照)。
私は何が間違っているのでしょうか?
IVT_error.png