关于ADS1282的数据采集内核驱动的问题 5C

内核态,对双缓存中buf1进行数据内核到用户空间的拷贝时,会影响到buf2上数据采集。
处理器:I.MX6Q
内核:Linux 3.0.35
内存:4*2GB DDR3 、1*8GB emmc/NANDFLASH

详细描述:内核模块程序中,我们实现了对设备驱动的注册之后,完成对ADS1282的初始化后,kmalloc申请了两块用于存放数据的内存,然后让ADC进入工作状态,双缓存交替工作,其中一个存采集数据时,另一个将采完的数据从内核空间拷贝到用户空间,通过应用程序最终将数据文件存放到8GB emmc/NANDFLASH上。但是采得的数据效果十分不好,数据效果如下图所示,对此我们做过以下尝试:

图片说明
(1)期望的数据效果
图片说明
(2)存在毛刺的数据

1.单缓存时,数据采集到的数据效果优。
2.双缓存时,通过FTP方式启动,将采集的数据传回PC,数据效果优。
3.双缓存时,将外接固态SSD挂载到开发板上,直接将数据存入SSD而不是emmc/NANDFLASH上时,数据效果良好,有个别数据有毛刺。
4.双缓存时,copy_to_user方式和mmap方式实现内核空间到用户空间的数据拷贝,两种方式采得的数据均是有毛刺,但比存入emmc/NANDFLASH的数据效果要好。

由于该驱动是用于野外设备工作的,工作时,数据量十分大,在线将数据传回也不太现实,于是我们也不知道程序应该朝哪个方向改,希望有经验的前辈们不吝赐教,能给点指导性的意见。

2个回答

是不是操作flash的时候影响了SPI

qq_15271231
温柔的最决绝 怎么影响的呢?能说的详细点儿么?我应该要怎么测试呢?
接近 2 年之前 回复

@青鸟horizon 怎么影响的呢?能说的详细点儿么?我应该要怎么测试呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问