我调用的Tasksleep函数,延迟时间为ms数量级,请问如何将延时时间设置为微秒级别的?
(1)可以通过修改tasksleep函数吗?这个函数源码在哪,可编程?
(2)自己写的delay函数不起作用
Andy Yin1:
参考STK例程keystone_common.c中的TSC delay函数,以us为单位。
void TSC_delay_us(Uint32 us){ volatile unsigned long long startTSC, currentTSC; unsigned long long delay_cycles; Uint32 tscl, tsch;
tscl= TSCL; tsch= TSCH; startTSC= _itoll(tsch,tscl); delay_cycles= ((unsigned long long)us*gMain_Core_Speed_Hz/1000000);
do { tscl= TSCL; tsch= TSCH; currentTSC= _itoll(tsch,tscl); } while((currentTSC-startTSC)<delay_cycles);}
Dan Jia:
回复 Andy Yin1:
您好 我调用这个函数,抓包软件无法抓包,使用tasksleep函数就能正常抓包,这怎么处理呢?
我想建立pc到DSP的发送数据,可以参考哪个例程?或者网页?谢谢您!
Andy Yin1:
回复 Dan Jia:
提供的只是一个延时函数而已,不会影响到正常的数据发包,EMAC-PC数据收发参考STK或者mcsdk中的例程。
STK:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx
Dan Jia:
回复 Andy Yin1:
您好 但我的测试结果确实是这样,同样的延时时间1ms,tasksleep抓包软件能接收到数据,提供的延时函数抓包软件就不能抓到数据
Yu Mao:
回复 Dan Jia:
你好,我同样也发现了你所说的这个问题,请问你后来是怎么解决的呢,希望能得到你的回复,非常感谢!