次のコードスニペットに示すように、数字だけでなく、SDKを使用してIPデザインに配列を送信したいとします。誰かが私の手伝いをすることができますか? code in SDKSDKを使用してIPコアに配列を送信する
1
A
答えて
0
たとえば、ARMプロセッサからZynqのカスタムIPにデータを送信する方法が異なるとしましょう。ザイリンクスは、あなたの使用して通信する可能性を与えます:
- AXI4 FULLインタフェース
- AXI4 LITEインタフェース
- AXI4ストリームインタフェースは、使用インタフェース、SDK-を書くための方法に応じて、
ARM上で実行されているコードはかなり異なる場合があります。詳細はたくさんありますが、一般的にIPを作成するときは、ハードウェアをエクスポートしてSDKを起動した後、Vivadoはライブラリとドライバを作成して、特定のIPにデータとコマンドを送信します。 AXI STREAMインターフェイスを使用しているとします。ここでは、メモリからIPへのデータ転送を管理する別のIP(ザイリンクスから提供される)を追加する必要があります(DMA - ダイレクトメモリアクセス)。ここでは、コードは次のようになります。
#include <stdio.h>
#include "xil_cache.h"
#include "xaxidma.h"
#include "xparameters.h"
#include "math.h"
#include "xtime_l.h"
XTime tstart,tstop;
//#define DEBUG
#define N_samples 64
int main()
{
printf("Hello\n");
Xil_DCacheDisable();
Xil_ICacheDisable();
/***************** Variables *******************/
float input_R_IM[N_samples*2];
float output_R_IM[N_samples*2];
int error=-1;
XAxiDma dma0_pointer;
XAxiDma_Config *dma0_Config;
/**********************DMA initialization***************************/
dma0_Config=XAxiDma_LookupConfig(XPAR_AXIDMA_0_DEVICE_ID);
error=XAxiDma_CfgInitialize(&dma0_pointer,dma0_Config);
#ifdef DEBUG
if(error==XST_SUCCESS)
printf("...initialization successful\n");
else
printf("**ERROR INITIALIZATION\n");
#endif
float d = 2 * (float)M_PI/N_samples;
size_t i=NULL;
for (i = 0; i < N_samples; i++)
{
input_R_IM[i*2]=sin(0 + d*i);
input_R_IM[i*2+1]=0;
}
/**********************STARTING FFT************************/
error=-1;
XTime_GetTime(&tstart);
error = XAxiDma_SimpleTransfer(&dma0_pointer,(u32)input_R_IM,2*N_samples*sizeof(float),XAXIDMA_DMA_TO_DEVICE);
#ifdef DEBUG
if(error==XST_SUCCESS)
printf("...simply transfer 1 successful\n");
else
printf("**ERROR SIMPLY TRANSFER 1\n");
#endif
/***********************COPY BACK THE RESULTS************************/
// error=-1;
error = XAxiDma_SimpleTransfer(&dma0_pointer,(u32)output_R_IM,2*N_samples*sizeof(float),XAXIDMA_DEVICE_TO_DMA);
#ifdef DEBUG
if(error==XST_SUCCESS)
printf("...simply transfer 2 successful\n");
else
printf("**ERROR SIMPLY TRANSFER 2\n");
#endif
XTime_GetTime(&tstop);
u64 cycles = tstop-tstart;
float t = ((float)cycles/COUNTS_PER_SECOND)*1000000;
printf("cycles= %lld (time = %f us)\n",cycles,t);
for (i = 0; i < N_samples; i++)
{
printf("i: %d real=> %f --imag==> %f \n" ,i, output_R_IM[i*2], output_R_IM[i*2+1]);
}
printf("Goodbye\n");
return 0;
}
これは、ARMプロセッサのいずれかから使用してFFT IPとAXI-DMAにデータを送信するために使用される古いコードです。
Hereあなたは、ザイリンクスFPGA上でその返信用
関連する問題
- 1. IPアドレスを使用してメールを送信するには?
- 2. anglejsを使用してデータの配列を送信するポストメソッド
- 3. Ajax - jQueryを使用してオブジェクトの配列を送信する
- 4. jacksonを使用してjsonでバイト配列を送信する
- 5. AWS SNSを使用してSMSを送信する - .Netコア
- 6. LinuxでTCP/IPを使用して生データを送信する
- 7. dojoを使用してPHPに配列を送信
- 8. submitを使用してJavaScript配列をデータベースに送信
- 9. Ajaxを使用してJavascriptからPHPに配列を送信
- 10. FormData()をmvcコントローラーに使用して配列jsonオブジェクトを送信
- 11. facebookを使用してメッセージを送信するandroid sdk
- 12. DJI SDKを使用してファントム4ライブストリームをRTMPサーバーに送信
- 13. MPIを使用してCで2D配列のブロックを送信
- 14. AJAXを使用してNodeJSに配列を送信する別の方法
- 15. jqueryを使用してasp.net Webメソッドにパラメータ配列を送信する方法
- 16. retrofitを使用してアンドロイドからレスポンシブな配列を送信するには
- 17. codeigniterを使用してデータベースに値の配列を送信する方法
- 18. Jquery Ajaxを使用してPHPにjavascript配列を送信する方法
- 19. Volley RequestQueueを使用してJson配列をPHPに送信する方法
- 20. JavascriptとPHP。 Ajaxを使用してPHPに複数配列を送信し、PHP配列に変換する
- 21. QtでTCP IPを使用して構造体を送信するには
- 22. ajaxを使用して文字列の配列をWebAPIに送信
- 23. SNS PHP-SDKを使用して大量の通知を送信
- 24. AWS Android SDKを使用してJWTトークンを送信
- 25. IPパケットを送信しています
- 26. Facebook PHP-SDKを使用してCUSTOM招待状を送信するには?
- 27. NumPyを使用してMPI4Pyで構造化配列データを送受信する
- 28. Node.jsとSocket.io - emit関数を使用して配列を送信する方法
- 29. meteor javascriptを使用してメールで配列結果を送信する方法
- 30. プロミスを使用してリクエスト結果の配列を送信する方法は?
おかげでたくさんのIPとの間でデータを管理する方法について良いアイデアを持っているために、AXIリファレンスガイドを見つけることができます。その非常に有益な。しかし、私は、ザイリンクスシステムジェネレータがIPコアを生成してDMAを使用する方法を知りたいですか?あなたは事前にThnk。 – shashi
別の質問をする、私は助けになることを嬉しく思う!とにかく、ここの答えが役に立つのであれば、それを受け入れるかupvoteすることができます! – Leos313
ありがとうございました。あなたは、vivadoでザイリンクスのシステムジェネレータのIPコアを使用し、それらのためのソフトウェアアプリケーションを書いていますか? – shashi