微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DSP与数据转换器协同工作考虑的10大因素

DSP与数据转换器协同工作考虑的10大因素

时间:08-08 来源: 点击:
确保处理的是正确数据

  现在,数据已经进入系统,数据字存储在阵列中,数据大小也合适,于是开始处理数据,但没有获得预期的结果,这时需要思考到底出了什么问题。首先应该检查DSP的高速缓存,DMA传输数据进入存储器时是否启用高速缓存,在这种情况下,高速缓存很可能保留拷贝的旧数据,并在算法工作中使用它们。如果发生了此类问题,就必需注意高速缓存相关性与转储清除问题,或者是存储新数据的高速缓存区失效。这样就能确保CPU处理的数据是传输完成后的最新数据。

  如果用C语言编程应分配易失关键字

  在调试嵌入式系统时,采用变量查询外设的状态后,发现CPU所用变量值是错误的,这时就要思考到底哪里出了问题。先看看下面这个结构:

  unsignedint*pControl=(unsignedint*)0x00COFFEE;file://错误

  while(*pControl==0);file://等待一个外部事件

  这里的*pControl指向一个外设。

  通过while循环,期望EOC能从"0"转换为"1"。但在大多数情况下,恐怕得一直等下去,因为编译器认为它已经完全控制了变量及与其相关的存储器,只加载*pControl指向的存储器位置的内容一次,就会对其进行循环测试。但问题在于,由于不会重新读取存储器内容,也就不能结束循环。

  解决这一问题的方法就是将*pControl的声明作一下修改,通知编译器其指向的存储器位置可由外部事件修改,而每次使用该变量时都必须重新载入,如下所示:

  volatileunsignedint*pControl=(unsignedint*)0x00COFFEE;file://正确

  while(*pControl==0);file://等待一个外部事件

  确保采样等距

  如果要在频域中处理采样数据,那么还要提到一点:不是所有转换器都有启动新转换的自身时基。在这种情况下,应采用外部时基或DSP定时针(timerpin)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top