AR# 45132

13.3 EDK - デュアル MicroBlaze システムの場合、LibGen で XPAR_CPU_ID がスワップされる

説明

2 つの MicroBlaze を使用するデザインでは、microblaze_0 と microblaze_1 間の通信に mailbox (LogiCORE IP Mailbox) が使用されます。

この mailbox ドライバー (mbox_v3_01_a) は、xparameters.h にある XPAR_CPU_ID パラメーターを使用してプロセッサを識別します。このパラメーターは常に、逆になっているようです。たとえば、microblaze_1 向けに BSP を生成すると、XPAR_CPU_ID パラメーターは値 0 をとります。microblaze_0 の BSP の場合は、値 1 が XPAR_CPU_ID に割り当てられます。

この問題を回避するにはどうすればよいですか。また、このようなスワップについて考慮すべきことはほかにありますか。

ソリューション

In all of the examples found in the $XILINX_EDK\sw\XilinxProcessorIPLib\driver\mbox_vx_xx_x\examples, you see that we translate what Libgen crates as the XPAR_CPU_ID, into a local CPU_ID, similar to below:

#if XPAR_CPU_ID == 0 #define MY_CPU_ID 1 #else #define MY_CPU_ID XPAR_CPU_ID #endif 

This should be the only change necessary, and no other parameters should need any change.

AR# 45132
日付 12/15/2012
ステータス アクティブ
種類 一般
ツール 詳細 概略
IP