问题描述:
1.一个流式驱动,工作流程是硬件触发一个中断,系统采集到数据信息后通过xxx_READ将采集到的数据发给应用层;
2.驱动通过一个线程函数来获取GPIO的中断信号,并读取值从打印信息打印出。
(这里的处理正常,有多少中断都接受到,并且值采集正确)
3.读取到中断后,系统通过一个采集函数将数据信息采集,并将数据存放在一个全局变量中,并设定一个事件a;
4.XXX_READ函数中等待事件信号a,等待到了就将数据送到xxx_read函数的status接口上;
5.应用层创建一个线程,在线程中实现一个readfile功能去读取xxx_Read传送出来的值;
问题点:
1.现在驱动层打印信息看,在驱动层每次都获取到了,但是应用层上,我在实际操作的时候发现产生数据是如果速度过快每次只能获取到一个数值,如果产生数据慢的时候就能很准的获取并在响应应用层的功能;
请教下各位大牛这个问题如何解决?也就是中断响应的问题,如何实现驱动层响应中断和应用层响应中断同步??
分不够再加。
慢速正确的信息
- the 0 number SentOut Value for point variable is bb//来自驱动层
- the 0 number SentOut Value for point variable is bb来自驱动层
- READ EFFECT VALUE!
- Volume value : 36
- SEND ADDR ACK RECEIVER OK!!!
- SEND DATA ACK RECEIVER OK!!!
- Volume set Ok!!!
快速数据时产生的错误信息
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- the 0 number SentOut Value for point variable is aa
- //产生了很多数据但是只响应了最后一个。
- READ EFFECT VALUE!
- Volume value : 3c
- SEND ADDR ACK RECEIVER OK!!!
- SEND DATA ACK RECEIVER OK!!!
- Volume set Ok!!!