1112941_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1112941_ja-JP

1112941_ja-JP

iMX8QXP:RPMSGを使用してM4およびA35をウェイクアップします<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

参照コードは、L4.14.78 GA1.0.0 BSP および M4 SDK 2.5.1 に基づいています。

iMX8QXP MEKボードでテストされており、iMX8QMボードでも動作するはずです。

L4.14.78 GA1.0.0 BSPでは、M4 FreeRTOSとA35 Linux間のRPMSGにMU_5が使用されており、SC_R_MU_5BはM4側、SC_R_MU_5AはA35側です。Linux側では、このテストに「imx_rpmsg_tty.ko」を使用しましたが、このドライバーはデフォルトのBSPでモジュールとしてビルドされています。

ケース1:M4はA35をウェイクアップします。

「L4.14.78_rpmsg_wakeup.patch」をLinuxカーネルに適用すると、このパッチによりRPMSGウェイクアップ機能が有効になります。

「rpmsg_lite_pingpong_rtos.tar.bz2」はM4側のテストコードです。Linux + M4 rpmsg ソフトウェアでボードを起動した後、次のテストコマンドを実行します。

1.A35 UART側で、次のコマンドを実行します。

# エコー有効 > /sys/bus/platform/devices/90000000.rpmsg/power/wakeup

    # insmod ./imx_rpmsg_tty.ko

# /unit_tests/Remote_Processor_Messaging/mxc_mcc_tty_test.out /dev/ttyRPMSG30 115200 R 100 1000 &

    # echo deadbeaf > /dev/ttyRPMSG30

# エコー mem > /sys/power/state

2. M4 UART側:

Linux側から「echo deadbeaf > /dev/ttyRPMSG30」を実行すると、「Got ping...」と言い、そこで待ってから、A35 suspend commane "echo mem > /sys/power/state"を実行した後、Linuxがサスペンドします。次に、M4 UART側から「c」キーを押すと、RPMSGがA35に送信され、A35Linuxが起動します。

ケース2:A35はM4をウェイクアップします。

「power_mode_switch_rpmsg_wakeup.tar.bz2」はM4側のテストコードで、Linux + M4 rpmsgソフトウェアでボードを起動した後、M4 UARTはA35 RPMSGドライバーの準備が整うのを待ちます。テストコマンド:

1.A35 UART 側で、次のコマンドを実行して RPMSG ドライバーを準備完了にします。

    # insmod ./imx_rpmsg_tty.ko

# /unit_tests/Remote_Processor_Messaging/mxc_mcc_tty_test.out /dev/ttyRPMSG30 115200 R 100 1000 &

    # echo deadbeaf > /dev/ttyRPMSG30

2.これで、M4 UARTはピンポンメッセージを表示して、RPMSGの準備ができていることを確認します。M4が電源スイッチメニューにあるので、M4 UARTでVLLS電源モードを選択します。

Hを押して入力:VLLS - Very Low Leakage Stopモード

    ... ...

RPMSG の場合は R を押します。

M4 UARTで「R」キーを押すと、M4は「RPMSGメッセージを送信してウェイクアップ」を印刷し、サスペンドモードに移行します。

3. A35側からM4をウェイクアップし、RPMSGに任意のデータを送信します。

    # echo deadbeaf > /dev/ttyRPMSG30

M4が再開し、再び電源スイッチメニューに移動します。

SDK フォルダ (2 つの M4 サンプル コードをコンパイルします)。

SDK/ボード/mekmimx8qx/multicore_examples/rpmsg_lite_pingpong_rtos

SDK/ボード/mekmimx8qx/demo_apps/power_mode_switch

i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlusRe:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

実際、私は現在5.4.24カーネルを使用しています。ドライバーは大きく異なり、MU ISRコードが表示されません。このカーネルに関するアップデートはありますか?

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちはシ ヴァ・プラバカラ

「arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts」ファイルの変更を除いて、パッチを適用できると思います。RPMSGドライバーは、iMX8MMとiMX8QXPで同じです。

しかし、M4側については、iMX8MMのMU割り込みを生成するコードはありません。自分で実装する必要があります。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Qiang_FSL情報をありがとう、SCUが利用できず、パッチも適用されない可能性があるため、MU割り込みを有効にするための詳細を提供していただけますか?

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちはシヴァプラバカラ、

iMX8MMはiMX8QXPとは異なり、iMX8QXPにはすべてのウェイクアップイベントを管理するSCUがありますが、iMX8MMにはありません。

しかし、ウェイクアップソースは同じだと思います、Linuxがサスペンドモードに進む前にMUウェイクアップ割り込みを有効にすると、M4はこの割り込みを使用してAコアをウェイクアップできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

iMX8MMに関する私の以前の質問に関する助けは大歓迎です。また、5.4.24カーネルにはpathc L4.14.78_rpmsg_wakeup.patchが必要ですか?

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう Qiang Li - Mpu Se

確認してみます

ありがとうございます

ヴィノス S、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

SCFW APIはほぼ同じなので、8QXPから8QMにコピーできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se

お返事ありがとうございます。

BOARD_EnablePadWakeup(sc_pad_tパッド、ブールイネーブル、sc_pad_wakeup_t pad_wakeup_config)はIMX8QX専用で、IMX8QMを探しています

ありがとう&よろしく、

ビノスS

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

M4側では、BOARD_EnablePadWakeup(sc_pad_tパッド、ブールイネーブル、sc_pad_wakeup_t pad_wakeup_config)を呼び出すだけでPINウェイクアップを設定できます。

PINがM4パーティションに割り当てられていることを確認する必要があります。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se

お返事ありがとうございます。可能であれば、sc_pad_set_wakeupを使用してM4からACoreをウェイクアップするサンプルコードを提供してください。

よろしくお願いします。

ビノスS

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

はい、ウェイクアップソースとして1つのピンを使用するのが最善の方法です、たとえば、このPINをM4パーティションに割り当て、sc_pad_set_wakeup()を呼び出してウェイクアップソースにすると、このPINを使用してM4をウェイクアップできます。また、ACoreパーティションに割り当て、sc_pad_set_wakeup()でウェイクアップソースを設定した場合、このPINはACoreをウェイクアップできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se,

電源キーがあります。Arm Cortex M4のコード側に電源キーのウェイクアップ(押す代わりに、コードにハードコード)を登録することは可能ですか?

ありがとう&よろしく、

ビノスS

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se

Linuxソース(imx_rpmsg.c)を提供していただけますか&必要なファイル) パッチ適用

ありがとうございます

ヴィノス S、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi,

ケース1を追ってみたところ、

通常、私はメッセージを送受信することができます。しかし、システムの一時停止後、私は目を覚ますことができません。

# cat ./sys/devices/platform/imx_rpmsg/90100000.rpmsg1/power/wakeup

イネーブル

# cat /proc/interrupts

105:         49          0          0          0          0          0     GICv3 217 Level     imx-mu-rpmsg

ちゃんとパッチを貼りました。私の場合、rpmsg1 が使用されています。

Linux Version: 4.14.98

OS: Android 9

ありがとう&よろしく、

ヴィノス S、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

4.14.98 BSPはハードウェアパーティションを追加したため、2.5.1 SDKコードを直接実行することはできませんが、SDK2.5.2コードを実行し、動作後に関連するテストコードを移植する必要があると思います。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se,

私も同じパッチに従っています。

 

ここでM4マイコンが停止(GETCHAR)し、入力を提供できませんでした

 

qiang_debug 開始を追加
PRINTF("pingを受け取りました...\r\n");

(1)ながら
{
ch = GETCHAR();
if(ch == 'c')
壊す;
}  

//qiang_debug add end

 

while (msg.データ <= 100)
{
PRINTF("pingを待っています...\r\n");
rpmsg_queue_recv(my_rpmsg, my_queue, (unsigned long *)&remote_addr, (char *)&msg, sizeof(THE_MESSAGE), NULL, RL_BLOCK);
msgです。データ++;
     

qiang_debug 開始を追加
PRINTF("pingを受け取りました...\r\n");

(1)ながら
{
ch = GETCHAR();
if(ch == 'c')
壊す;
}  

qiang_debug 追加終了
PRINTF("ポンを送信しています...\r\n");
rpmsg_lite_send(my_rpmsg, my_ept, remote_addr, (char *)&msg, sizeof(THE_MESSAGE), RL_BLOCK);
}

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

通常、Linuxがサスペンドするときに割り込みを有効にしておくと、その割り込みを使用してLinuxをウェイクアップできます。

flex can devie treeに次の文字列を追加して試してみることができます:

&flexcan1 {

ウェイクアップソース;

};

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう Qiang Li - Mpu Se

ON / OFFボタンの代わりにVMCUからのFlex CANウェイクアップはありますか?

よろしくお願いします。

ヴィノス S、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

power_mode_switchアプリケーションは、M4をLinuxと一緒にサスペンドしないので、M4が動作し続けるときはON/OFFボタンでLinuxをウェイクアップできますし、Linux側で「echo mem > /sys/power/state」コマンドでLinuxを単独でサスペンドすることもできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Qiang Li-Mpu Seさん、迅速な返信ありがとうございます。

あなたの指摘から、私は power_mode_switch アプリケーションがシステムをウェイクアップできることを知っています。

そうでしょう。

よろしくお願いします。

ビノスS

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

リリースされたBSPの場合、ACoreとM4コアの両方が一緒にスリープとウェイクアップに行きます。

M4の動作をテストするには、RPMSGデバイスツリーで「fsl-imx8qxp-mek-rpmsg.dtb」などのLinuxリリースのBSPを使用し、M4側では「MEK-MIMX8QX-SDK\boards\mekmimx8qx\demo_apps\power_mode_switch」を使用し、Linuxを一時停止するとM4はウェイクアップを維持します。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se

Deep Sleepは、IMX8QM-MEKボードを搭載した Android 9 Automotive で動作しています。しかし、M4からどうやって目覚めるのかわかりません。現在、MEKボードに存在する電源キー(SW1)によるウェイクアップ。

以下の手続きが進めません。あなたは私が目覚めを見つけるのを手伝ってくれますか?

ありがとうございます

ビノスS

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Raluca Popa,

申し訳ございませんが、そのような消費電力データはありません。しかし、M4をMEKボードだけで動かすのが近いと思います。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang_FSL,

電力消費量の測定は可能ですか?私は、Cortex AがDSMにあり、M4がそれをウェイクアップする場合に興味があります。

現在、mini用の同様のアプリに取り組んでいます。VDD_GPU_VPU_DRAMの消費電力が非常に多いことに気づきました(8MMini:Cortex AがDeep Sleepにあり、Cortex MがアクティブのときにGPU / VPU / DDR_PHY電力をカットする方法)。

消費電力を分析したことがあるのかどうか疑問に思っていましたが、これについていくつかの結論を知っておくと役に立ちます。

ありがとうございます!

ラルカ

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ここでの解決策は、

IMX8QM-MEK LinuxとAndroidの電源管理の違い 

よろしくお願いします。

VinothSです。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

このドキュメントはiMX8MQには使用できません。SCUとハードウェアパーティションはありません。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

このアプリケーションをi.MX8MQボードに適用しようとしています。使用:

カーネルバージョン - 4.14.78

SDK バージョン - 2.7.0

RPMSG 共有ベース Addr は0xb8000000です。

私が抱えている問題は、ウェイクアップオプションがないことです。以下は存在しません。

/sys/bus/platform/devices/b8000000.rpmsg/power/wakeup

ウェイクアップオプションがない理由はありますか?これは追加が必要なデバイスツリーオプションですか?

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Qiang Li - Mpu Se ,

目が覚めた後、私はそのような結果を得ました、

mek_8q:/ $ cat /sys/power/pm_wakeup_irq
cat: /sys/power/pm_wakeup_irq: データがありません

よろしくお願いします。

ビノスS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

迅速な返信をありがとうQiang Li

よろしくお願いします。

ビノスS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi vinothkumar s

あなたはそれを無効にすることができるかどうかを確認するために、フォローされたコマンドでウェイクアップの理由を取得できますか?

cat /sys/power/pm_wakeup_irq

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう Qiang Li - Mpu Se

はい、おっしゃる通り、私も同じことをしています。

自動ウェイクアップを無効にする可能性はありますか教えてください。

==> エコー mem > /sys/power/state

システムは、30〜40秒のシステムウェイクアップ後にディープスリープになります。

アプリケーションプロセッサ側で自動ウェイクアップを無効にすることは可能ですか?

よろしくお願いします。

ビノスS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

power_mode_switchをRVC M4コードにマージする必要があると思います。それは簡単なことではありません。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう Qiang Li - Mpu Se

はい、RVCを使用しています。デフォルトでは、M4はリアビューカメラのデモアプリケーションをロードします。

A35をウェイクアップするには、M4から power_mode_switch アプリケーションを実行する必要がありますか?

それで、私はボードで power_mode_switch をフラッシュする必要があります、私は正しいですか?

ありがとう&よろしく、

ヴィノス S、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Linux の単体テストを追加する必要はなく、Android Auto はすでに A35 と M4 間の通信に RPMSG を使用しています。「EVS/HVAC機能」は、Android User Guiderのドキュメントからご確認いただけます。

また、M4側のアプリケーションもAndroid BSPに含まれており、「android_build/vendor/nxp/mcu-sdk-auto」フォルダです。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Qiang Li - Mpu Seさん、お返事ありがとうございます。

>基本的に、Linux / Androidカーネルがサスペンドモードに移行すると、ウェイクアップソースを設定でき(ウェイクアップ割り込みを有効にしたまま)、M4はこれらの割り込みを使用してLinux / Androidをウェイクアップできます。

もう少し詳しく教えていただけますか?

この単体テストの追加方法を教えてください。

ありがとう&よろしく、

ビノスS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

基本的に、Linux / Androidカーネルがサスペンドモードに移行すると、ウェイクアップソースを設定でき(ウェイクアップ割り込みを有効にしたまま)、M4はこれらの割り込みを使用してLinux / Androidをウェイクアップできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう Qiang Li - Mpu Se

私はAndroid 9 Automotive(android_p9.0.0_2.1.1-auto)でIMX8QM-MEKに取り組んでいます。

カーネルバージョン - 4.14.98

SDK バージョン - 2.5.1

ユニットテストが見つかりませんので、私のソースにユニットテストを追加するための情報を提供してください。

可能であれば、MCU M4からA35へのCAN/GPIOウェイクアップを共有していただけませんか。

現在、私は電源管理のためのこの車両のドキュメントに従っています、

   https://source.android.com/devices/automotive/power/power

ありがとう&よろしく、

ビノスS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

NXPリリースBSPをユーザーガイダーとしてビルドすると、ユニットテストアプリケーションはデフォルトで組み込まれます。

M4 SDKの場合、SDKをダウンロードした後、その中にユーザーガイドドキュメントがありますので、それに従ってビルドできます。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi,

ユニットテスト(/unit_tests/Remote_Processor_Messaging)の追加方法を教えてください!

また、SDKを使用してこのデモアプリケーションを構築する方法は?

ありがとう&よろしく、

VInothS、

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、

ありがとう~仕事です。

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

申し訳ありませんが、ケース1のウェイクアップソースとしてRPMSGを有効にするための次の行を見逃してしまいましたが、現在は更新されています。

エコー対応 > /sys/bus/platform/devices/90000000.rpmsg/power/wakeup

Re:iMX8QXP:RPMSGを使用してM4とA35をウェイクアップする<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、

私はあなたのケース1のステップに従い、テストコマンド を実行できます 、「c」キーを押すと、imx8qxp mek A35がウェイクアップしません。

カーネルの再構成またはu-bootが必要ですか?

123.png

标记 (1)
无评分
版本历史
最后更新:
‎01-05-2026 09:31 AM
更新人: