[i.MX] linux 驱动mmap指针偏移问题

[复制链接]
712|0
 楼主| nawei87 发表于 2016-9-19 10:26 | 显示全部楼层 |阅读模式
请问大家,驱动中使用使用mmap遇到这种情况:
应用层中调用:

        for(i = 0; i<3; i++){
            mapBuf = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, off);
            if(i==0)strcpy(mapBuf, "Driver Test####00####");//向映射段写数据
            else if(i==1)strcpy(mapBuf, "Driver Test####11####");//向映射段写数据
            else if(i==2)strcpy(mapBuf, "Driver Test####22####");//向映射段写数据
            off += 4096;
        }
        
        mapBuf = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
        memset(buffer, 0, 4096);
        strcpy(buffer, mapBuf);
        printf("buffer = %s\n", buffer);

最后buffer打印出来是buffer=Driver Test####22####
是不是在驱动中指针偏移的位置到了4096*3的位置了,


那么如何重新将指针偏移到0呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部