如何加速读/写属性数据?

时间:2017-05-22 14:49:42

标签: linux module filesystems

我在sys文件系统中使用了File属性,允许用户空间使用SysFS与驱动程序通信。问题是我有很多数据需要转移,所以我失去了很多时间。这是一个非常缓慢的过程!

在狗窝模块中,我有这部分代码:

static DEVICE_ATTR(writeFile,S_IWUSR,NULL,writeFunction);

static DEVICE_ATTR(resultFile,S_IRUSR, readFunction, NULL);

    static ssize_t writeFunction(struct device *dev, struct device_attribute *attr,
     const char * buf, size_t count) {

    if(count >0){
    resp_ready = 1;

    sscanf(buf,"%2x,",&src_vect[0]);
    for (i=0;i<80;i++)
             {
                sscanf(buf+3+12*i,"%2x,%2x,%2x,%2x,",&src_vect[4*i+1],&src_vect[4*i+2],&src_vect[4*i+3],&src_vect[4*i+4]);

             }
    .
    .
    .
        }

static ssize_t readFunction(struct device *dev, struct device_attribute *attr, char *buf) {

//write the result to buf   
       for (i=0;i<6;i++)
          {  
            sprintf(buf+72*i,"%8x,%8x,%8x,%8x,%8x,%8x,%8x,%8x,",dst_f[8*i],dst_f[8*i+1],dst_f[8*i+2],dst_f[8*i+3],dst_f[8*i+4],dst_f[8*i+5],dst_f[8*i+6],dst_f[8*i+7]);

          }
.
.
.
}

如何减少/到用户/狗窝空间的数据传输时间? 有没有比这更快的方法?

0 个答案:

没有答案