打印
[i.MX]

IMX6Q操作FLASH时候影响内核中SPI数据的读取

[复制链接]
875|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snown|  楼主 | 2018-3-16 14:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 snown 于 2018-3-16 14:50 编辑

    内核态,对双缓存中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的数据效果要好。
总结 问题大概是在应用层调用write函数向内存写数据的时候,影响到了内核中的SPI数据读取

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝