查看: 2507|回复: 3

[求助] linux 驱动mmap指针偏移问题

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
21
最后登录
2021-7-6
发表于 2016-9-19 09:48:43 | 显示全部楼层 |阅读模式
请问大家,驱动中使用使用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呢?
我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-10-28 10:25
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    1

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    256
    最后登录
    2018-3-22
    发表于 2016-9-19 15:40:17 | 显示全部楼层
    mapBufPtr;
    for(i = 0; i<3; i++){
                mapBuf = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, off);
                if(i==0)
               {
                   mapBufPtr = mapBuf;  //存放第一次分配的内存地址到一个指针
                    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 = mapBufPtr;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    17

    帖子

    0

    新手上路

    Rank: 1

    积分
    38
    最后登录
    2016-10-11
    发表于 2016-10-11 11:24:16 | 显示全部楼层
    看看不敢说话
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    21
    最后登录
    2021-7-6
     楼主| 发表于 2016-11-18 15:30:30 | 显示全部楼层
    @魏科,太厉害了,谢谢了,
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 20:29 , Processed in 0.233501 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表