完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!
我在C语言中建立了一个应用程序,从StAut6 FPGA获取数据,并将它们放入TXT文件中。 我正在测试从FIFO接口(32位)。 虽然流光显示的比特率为180Mb/s,实际传输速率约为8Mb/s。 这是显示比特率的流线型的C代码。 公共不安全空隙XFEDATA(字节[]CBUFS,字节[]]XBUFS,字节[][OLAPS,ISO-PKtiOFIMP[]]PKTSHINFO) { INT K=0; In LeN=0; 成功率=0; 故障=0; xFixBy数=0; T1= DATETIME.现在; 为(布伦宁;) { / WaitForXfer 固定(字节*tMPOVLAP=OLAPS[k]) { 重叠* OVLAP状态=(重叠*)TMPOVLAP; 如果(!)端点WaitForXfer(OVLAP STATION & GT;HEVER,500) { 端点。 PInvoke . WaitForSingleObject(OVLAP Stand & GT;HEVER,500); } } If(EndoPositAt==1) { CysCon点ISOCO=端点为CysCo终点; / FinishDataXfer 如果(ISOC.FinishDataXfer(REF CBUFS [K],REF XBUFS [K],REF LeN,REF OLAPS[K],REF PKTSHIFO[K])) { ISO-PKTIONF[]PKPS= PKTSHIFO[K]; 对于(int j=0;j& lt;ppx;j++) { 如果(PKTs[j],状态=0) { XFelByth++PKTs[j]长度; 成功+++; } 其他的 故障+ +; PKTs [J]。长度=0; } } 其他的 故障+ +; } 其他的 { / FinishDataXfer If(端点FinishDataXfer(REF CBUFS [K],REF XBUFS [K],REF LeN,REF OLAPS[K])) { XFelByth++LeN; 成功+++; } 其他的 故障+ +; } K++; 如果(k==QueLeSZ)//每次只通过队列更新显示统计数据一次 { K=0; T2= DATETIME.现在; 经过时间= T2-T1; xFrRe= =(long)(xFixByth/EaspPo.TimeMyLimeNDS); xFrRe= xFrRAT/(int)100 *(int)100; //在主线程中调用StaseUpDeDeO() 这是调用(UpDATEUI); //对于小队列或PPX,循环太紧,UI线程无法得到服务。 //没有这个,应用程序挂在这些场景中。 线程:睡眠(1); } //将此缓冲区重新提交到队列中 Lee=BufSz; 端点BeginDataXfer(REF CBUFS [K],REF XBUFS [K],REF LEN,REF OLAPS [K]); } / /端无限环 } 这是我用来写文件的代码: 公共不安全空隙写入文件() { int字节=16384; 字节[]缓冲器=新字节[字节]; BOL BXFEXCENTALL = FALSE; BoL ISPKT=FALSE; CyBulkEndotBurFrd=端点为CyBurkEndoPoT; 如果(炮制)!=空) BxFrExt==Bulrest.XFEDATA(REF缓冲区,REF字节,IsPkt); 尝试 { 虽然(真) 写入数据(缓冲器,字节,BXFEALTER); } catch(null参考异常) { E.GETBaseExabVIEW(); 调用。 } } 问题是什么? 谢谢您! 以上来自于百度翻译 以下为原文 Hi! I've build an application in C# wich takes data from a Spartan6 FPGA and put them into a txt file. I am testing the slave fifo interface (32 bit). While the Streamer shows a bitrate of 180MB/s, the actual transfer rate is around 8MB/s. This is the C# code of Streamer that show the bitrate: public unsafe void XferData(byte[][] cBufs, byte[][] xBufs, byte[][] oLaps, ISO_PKT_INFO[][] pktsInfo) { int k = 0; int len = 0; Successes = 0; Failures = 0; XferBytes = 0; t1 = DateTime.Now; for (; bRunning; ) { // WaitForXfer fixed (byte* tmpOvlap = oLaps[k]) { OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmpOvlap; if (!EndPoint.WaitForXfer(ovLapStatus->hEvent, 500)) { EndPoint.Abort(); PInvoke.WaitForSingleObject(ovLapStatus->hEvent, 500); } } if (EndPoint.Attributes == 1) { CyIsocEndPoint isoc = EndPoint as CyIsocEndPoint; // FinishDataXfer if (isoc.FinishDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k], ref pktsInfo[k])) { ISO_PKT_INFO[] pkts = pktsInfo[k]; for (int j = 0; j < PPX; j++) { if (pkts[j].Status == 0) { XferBytes += pkts[j].Length; Successes++; } else Failures++; pkts[j].Length = 0; } } else Failures++; } else { // FinishDataXfer if (EndPoint.FinishDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k])) { XferBytes += len; Successes++; } else Failures++; } k++; if (k == QueueSz) // Only update displayed stats once each time through the queue { k = 0; t2 = DateTime.Now; elapsed = t2 - t1; xferRate = (long)(XferBytes / elapsed.TotalMilliseconds); xferRate = xferRate / (int)100 * (int)100; // Call StatusUpdate() in the main thread this.Invoke(updateUI); // For small QueueSz or PPX, the loop is too tight for UI thread to ever get service. // Without this, app hangs in those scenarios. Thread.Sleep(1); } // Re-submit this buffer into the queue len = BufSz; EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]); } // End infinite loop } And this is the code that I use to write into file: public unsafe void WriteToFileThread() { int bytes = 16384; byte[] buffer = new byte[bytes]; bool bXferCompleted = false; bool IsPkt = false; CyBulkEndPoint bulkEpt = EndPoint as CyBulkEndPoint; if (bulkEpt != null) bXferCompleted = bulkEpt.XferData(ref buffer, ref bytes, IsPkt); try { while(true) WriteXferData(buffer, bytes, bXferCompleted); } catch (NullReferenceException e) { e.GetBaseException(); this.Invoke(handleException); } } What is the problem? Thank you! |
|
相关推荐
3个回答
|
|
你能把这个项目附加在这里吗?它可以与FX3和FPGA代码一起使用AN61345吗?感谢尼基尔
以上来自于百度翻译 以下为原文 Can you attach the project here? Can it be used along with the fx3 and fpga codes available with AN61345? Thanks Nikhil |
|
|
|
我还在调试它。
你需要什么样的应用程序? 以上来自于百度翻译 以下为原文 I am still debugging it. For what application do you need it? |
|
|
|
HTTP://www. CyPress?COM/?APP=论坛和ID;ID=167和;RID=86255和;消息=张贴
以上来自于百度翻译 以下为原文 http://www.cypress.com/?app=forum&id=167&rID=86255&message=posted |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2069 浏览 1 评论
1824 浏览 1 评论
3633 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1760 浏览 6 评论
1509 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
507浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
357浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
410浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
854浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:48 , Processed in 1.022785 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号