在linux系统S3C2440平台下,写一个外部设备驱动程序,负责与外设通信,包括读写数据和时钟信号的同步,时钟信号为5Mhz输出给外设使用,并与读写数据保持同步,要求在时钟的上升沿检测并读/写数据。
所以,我尝试:
(1)用timer0产生中断,在中断处理程序中反转电平输出,若是由低变高,则把数据放到端口地址上,运行结果是中断太频繁,卡死;
(2)用hrtimer定时器中断,由于原内核没有设置CONFIG_HIGH_RES_TIMERS,不支持高精度,结果中断频率只是普通定时器频率,太低;
(3)创建线程,在线程里用ndelay或while延时,能产生高频的时钟,但程序一运行系统卡死。
麻烦大牛帮忙想想解决办法,非常感谢!