2252524_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2252524_ja-JP

2252524_ja-JP

MCALのスタンバイモードから機能リセット後のウェイクアップソース認識 - S32K3 RTD

お客様企業*: HERO MOTOCORP - 正規化
プロジェクト名*: 該当なし
お客様お問い合わせ*(氏名とメールアドレス): Aryan Kumar [email protected]
SWパッケージ情報*: S32K3_S32M27x リアルタイム・ドライバ ASR R21-11
HW* (ボード/チップセット/プラットフォーム): S32K3XX (S32K344)
SWバージョン*:バージョン6.0.0

チームの皆様、

MCAL でスタンバイ終了後のウェイクアップ ソースを知りたいというお客様がいます。プロセスと使用する API について説明している別の投稿を見ました。基本的に、Dan は (この投稿:解決済み: S32K3 MCAL RTD5.0.0 での WISR に関する質問 - NXP コミュニティ) 、Icu_Init() が Platform_Init() の前に呼び出されるとフラグがクリアされる、つまりコールバックでウェイクアップ ソースをチェックすることは RTD の制限のように見えると述べています。

また、Icu_GetInputState() は、Icu_Init() によって初期化する必要があるグローバル変数を使用します。つまり、お客様は WISR フラグをチェックするために Wkpu_Ip_GetInputState() 関数を呼び出すことしかできません。

SO、私が正しく理解していれば、ウェイクアップ ソースを読み取る方法は 3 つあります。

1. スタンバイ終了後にプラットフォームを有効にすると、MCU は WKPU_IRQn にジャンプし、WKPU チャネルを処理します。コールバックが必要な場合、お客様は Wkpu 構造を割り当てることで回避策を実装できます。

Wkpu_Ip_u32ChState[0].chInit = TRUE;
Wkpu_Ip_u32ChState[0].notificationEnable = TRUE;
Wkpu_Ip_u32ChState[0].WkpuChannelNotification = IcuSignalNotification_Wkpu;

これは期待どおりに動作します。

2.スタンバイ終了後にWkpu_Ip_GetInputState()を呼び出します。Icu_GetInputState()はIcu_Init()の前に呼び出すことはできませんが、Icuの初期化によってWISRフラグがクリアされます。ただし、関数に入る際に、要求されたチャネルのWISRビットとIREERビットの両方が有効になっている場合、WISRはクリアされません。

Snag_153c0e4f.png

Snag_153c1a74.png

私の理解が正しければ、これらは Icu_Init() の呼び出し時にクリアされる、ということでいいのでしょうか?

3. WISR/WISR_64 レジスタを直接読み取ります。

これら 3 つの方法では、ベアメタルまたは IP レイヤーのいずれかが使用されます。質問が2つあります。

  • Wkpu_Ip_GetInputState() を正しく実装するにはどうすればいいですか?
  • 6.0.0 または 7.0.0 のいずれかで、MCAL レイヤーの修正または実装はありますか?もしSOなら、実装を共有してもらえますかCAN?

これをテストするために使用したプロジェクトを添付しました。WKPU[42]が設定されています。SWはS32DS v3.6.4 + RTD 6.0.0です。

よろしくお願いします、
ジュリアン

優先度: 中S32_CONFIG_TOOLS32_FLASH_TOOLS32DS出典: 直接お客様Re: Wakeup Source Recognition after function reset from standby mode in MCAL - S32K3 RTD

こんにちは@DanNguyenDuy

迅速な対応をありがとう、ダン!お客様にお知らせ致します。

よろしくお願いします、
ジュリアン

Re: Wakeup Source Recognition after function reset from standby mode in MCAL - S32K3 RTD

こんにちは@Julián_AragónM

1. AUTOSAR 要件に従います。Icu モジュールは、MCAL レイヤーでウェイクアップ ソースを直接チェックできる機能を提供しません。Icu はウェイクアップ ソース情報を EcuM モジュールに転送し、このモジュールはウェイクアップ ソースをチェックします。RTD ドライバでは、EcuM はスタブ モジュールです。

ECU ステート マネージャー AUTOSAR CP R21-11 の仕様」に従います。

DanNguyenDuy_1-1764672092014.png

2. Icu 構成で、ユーザーが「IcuWkpuStandbyWakeSupport」を有効にすると、Icu_Init() は WISR フラグをクリアしません。

DanNguyenDuy_0-1764669163056.png

プロジェクトで、Wkpu_Ip レイヤーのウェイクアップ ソースを確認するには、以下のコードを参照します。

DanNguyenDuy_2-1764672411408.png

Icu_Init() 関数の前に Platform_Init(NULL_PTR); を呼び出すと、何らかの理由で WISR フラグが消去されることがわかりました。SO、この関数を Icu_Init() 関数の後に呼び出しました。

よろしくお願いいたします。

ダン


Tags (1)
No ratings
Version history
Last update:
‎12-03-2025 05:25 AM
Updated by: