最近在做的项目中需要在dsp操作mcbsp及对应dma通道重启,具体操作流程如下:
1.关闭mcbsp;
2.关闭dma;
3.重新配置dma通道;
4.开启dma;
5.开启mcbsp;
在调试过程中发现总时间花费了大约10us,dsp运行速度配置300MHz。 测量方法是在5个步骤当中插入了IO口翻转,通过示波器测量。各步骤花费时间如下:
1. (2.8us) 2. (2.5us) 3.(1.7us) 4+5.(共1.7us)
(注:以上步骤函数中不存在while等待与延时等待)
因此产生了疑问,从代码量对比,实际花费时间不应该这么长,特别是步骤1与步骤2,从模拟仿真下汇编单步执行也仅仅几百步,在300MHz速度下理论时间仅需要不到1us。
在此望有同学解答疑惑。谢谢!
Tony Tang:
代码实现执行的时间还取决于代码在哪儿运行,比如在DDR上还是在片上内存,在片上内存就会快些。
功能性的的仿真是不包含内存访问延时的。