通过软件忙等进行精确延时的实现

在uboot中有以下参考代码可用于微秒级延时。
这是完全的软件延时,原理是依靠cup“空转”忙等。
因为不同平台的cpu频率不同,因此单次“空转”所消耗的时间也不同。
针对不同的平台,可以修改以下红色数字,以达到匹配实际延时之目的。

在某一平台,我将以下数字改为100后,实测的udelay(1) 为精确的1微秒。

这个值需要客户基于个体平台实测。

//=================================

#define udelay(x)   
    do {
        volatile int i;
        int cnt = 100 * x;
        for (i=0; i     } while(0);

//=================================

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年8月16日
下一篇 2014年8月16日

相关推荐