永发信息网

DSP较大的二维数组数据的存取

答案:2  悬赏:80  手机版
解决时间 2021-03-14 23:56
最近做DSP的一个项目,板子是基于TMS320F28335的开发板,采集ADC数据(12位精度),同时需要具备时间分辨率(1ms),因此我需要开最大[10000][1024]的二维数组来存数据,问题是这么大的数组应该怎样开出来,并进行处理,还有芯片片上包括外扩存取器都存不下这么大数据(但是有SD卡),数据处理实时性要求很高,采集完就需要上传,求问该如何处理
最佳答案
不能边处理边放入吗?按你这个有十几兆,一下子处理十几兆的数据,F28335 150M的频率也够呛吧,基本一条指令周期是6.667ns,看你的处理过程复杂程度。。。越复杂越不容易实现。
全部回答
这个问题 我可以非常明确地告诉你,c#无法直接调用这种参数的函数,c#中你描述的那种二维数组,本质上跟一维数组一致。倒是single[][]跟float**是类似的,但是也不能直接传递。 然后具体说说 float* arr arr为指向float型的指针 single[] arr arr为single型数组的引用,当传递给api时,会自动传递内部指针,这个指针才真真的指向single型的指针 float** arr arr为一个指向float型指针的指针,即arr[]应该是一个float型指针 single[][] arr arr为一个single型数组引用的数组引用,这意味着arr的内部指针指向的是single[]型引用的指针,跟指向single型指针完全是两码事 综上所述,c#不能直接调用test(float** arr,int rows,int cols),你必须使用非安全代码构造一个single*[],然后将这个数组传递过去。下面是一个例子 [dllimport("test.dll")] static extern unsafe bool test(float*[] arr, int row, int col);//这里arr要声明为float*[],使用起来比较方便 bool calltest(float[,] arr) { int row = arr.getupperbound(0) + 1; int col = arr.getupperbound(1) + 1; unsafe { fixed(float* fp=arr) { float*[] farr=new float*[row]; for (int i = 0; i < row;i++ ) { farr[i] = fp + i * col; } return test(farr, row, col); //如果test(float** arr, int row, int col)这样声明,就要用下面的方法调用 //fixed(float** fpp=farr) //{ // return test(fpp, row, col); //} } } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
扣扣空间里卖苹果手机的是真的还是假手机
新安镇七吉村卫生室地址有知道的么?有点事想
正常儿童床宽是1米35长是多少
所有的票都卖光了.(请翻译)(用英语)
一部影片:里面有个女主角,是个考古的,有个
怎么和单方晓联系世嘉、宝来,朗逸那个性价比
爱心康复器械在什么地方啊,我要过去处理事情
看小说的时候好多乱七八糟的插件广告,怎么屏
钱岗地址在哪,我要去那里办事
win8.1开机正在更新你的系统 0卡住了 图标是
送喜欢的男生什么生日礼物好?他喜欢踢足球爱
描写家乡风景的作文?。
受到问责的领导干部应向什么机关写书面检查
红苹果很硬是什么原因
传统保温的问题,传统保温材料有哪些问题
推荐资讯
假如2007年1月2日我国某公司从德国进口小仪表
东风联合会计师事务所在什么地方啊,我要过去
从广西南宁到山东临沂坐哪趟火车比较近?要多
正大鸡排旗舰店地址在哪,我要去那里办事
三秒区一共扩大过几次
恩格斯指出:“原则不是研究的出发点,而是它
水族箱养金鱼,一段时间后水很脏
我是农历1977年10月15日出生,请问2014年今年
喜洋鲜花店我想知道这个在什么地方
漳州哪里做县级以上的入职体检
包皮手术浅筋膜剥离和背部阻断术是一回事吗
扬子旗舰店怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?