2つのzephyr rtosの間で、OpenAMPを使って通信
- はじめに
FRDM MCXN947
(https://www.nxp.jp/design/design-center/development-boards-and-designs/FRDM-MCXN947)
および、zephyrのサンプルアプリケーションプログラム(samples/subsys/ipc/openamp)を使用して、2つのCortex-M33上のzephyr rtosとの間で、OpenAMPにより通信動作が行われるのかを確認した際の記録メモです。
- 確認に利用したzephrのサンプルアプリケーションのあるディレクトリ
samples/subsys/ipc/openamp
- ビルド時のパラメータ
west build -b frdm_mcxn947/mcxn947/cpu0 --sysbuild samples/subsys/ipc/openamp -p always
- 実行時のシリアルコンソールに対するログメッセージの出力
*** Booting Zephyr OS build v4.2.0-5452-g169cf86969d7 ***
Starting application thread!
OpenAMP[master] demo started
Master core received a message: 1
Master core received a message: 3
Master core received a message: 5
Master core received a message: 7
Master core received a message: 9
Master core received a message: 11
Master core received a message: 13
Master core received a message: 15
Master core received a message: 17
Master core received a message: 19
Master core received a message: 21
Master core received a message: 23
~中略~
Master core received a message: 89
Master core received a message: 91
Master core received a message: 93
Master core received a message: 95
Master core received a message: 97
Master core received a message: 99
OpenAMP demo ended.
- 動作確認のため、同一のシリアルコンソールに対して、2つのzephyrのログメッセージを出力するための変更
samples/subsys/ipc/openamp/remote/board/frdm_mcxn947_mcxn947_cpu1.overlay
/ {
chosen {
/*
* shared memory reserved for the inter-processor communication
*/
zephyr,ipc_shm = &sramh;
zephyr,ipc = &mailbox0;
+ zephyr,console = &flexcomm4_lpuart4;
};
/* Delete MBOX Driver node */
/delete-node/ mbox@b2000;
soc {
mailbox0: mailbox@400b2000 {
compatible = "nxp,lpc-mailbox";
reg = <0x400b2000 0xEC>;
interrupts = <54 0>;
resets = <&reset NXP_SYSCON_RESET(0, 26)>;
status = "okay";
};
};
};
+&flexcomm4 {
+ status = "okay";
+};
+
+&flexcomm4_lpuart4 {
+ status = "okay";
+};
+
+&flexcomm2 {
+ status = "disabled";
+};
+
+&flexcomm2_lpuart2 {
+ status = "disabled";
+};
- 変更後の実行時のシリアルコンソールに対するログメッセージの出力
※排他処理はしていないので、ログは混ざる。
** BootinZe*p*h*y rB OoSo tbiunigld v 4.2Z.e0p-54h52-ygr1 69cOf8S6 9b69du7 *i*l*d
Svt4ar.tin2g a.p0p-lic5at4ion 5thr2ead!-
1
d6Op9ecnfA8M6P9[6m9ad7st e*r*]*
ieSmtoa rstartted
ng application thread!
OpenAMP[remote] demo started
Remote core received a message: 0
Master core received a message: 1
Remote core received a message: 2
Master core received a message: 3
Remote core received a message: 4
Master core received a message: 5
~中略~
Remote core received a message: 16
Master core received a message: 17
Remote core received a message: 18
Master core received a message: 19
Remote core received a message: 20
Master core received a message: 21
Remote core received a message: 22
Master core received a message: 23
~中略~
Master core received a message: 89
Remote core received a message: 90
Master core received a message: 91
Remote core received a message: 92
Master core received a message: 93
Remote core received a message: 94
Master core received a message: 95
Remote core received a message: 96
Master core received a message: 97
Remote core received a message: 98
eOapsetenr cAoreM rePcei vedd a emesmsagoe: 99
dOpnenAdMP edemdo e.n
ed.