温柔的最决绝 2018-03-13 07:59 采纳率: 0%
浏览 1071
已结题

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

内核态,对双缓存中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条回答 默认 最新

  • 青鸟horizon 2018-03-16 06:22
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题