关于GPIO模拟SPI的延时问题

最关键的就是对时钟的延时控制,我们的spi要求时钟频率是5M,那么其周期就是200ns,
我们就需要实现100ns的延迟,arm linux内核中如何实现这么小的延迟呢???目前cpu频率是180MHZ

作者: paopao1874   发布时间: 2011-04-28

你可以使用ndelay

具体参考include/linux/delay.h
#ifndef ndelay
static inline void ndelay(unsigned long x)
{
udelay(DIV_ROUND_UP(x, 1000));
}
#define ndelay(x) ndelay(x)
#endif

作者: voice_shen   发布时间: 2011-04-28

用ndelay(),或者schedule_timeout(); 用内核的计时器实现

作者: confidence321   发布时间: 2011-04-28

用硬件的定时中断。
ndelay是忙等待吧,线程调度一次延时就不是固定的了。
内核的软件定时器无法实现比HZ进度更高的定时。

作者: yuanlulu   发布时间: 2011-04-28