当前位置:  技术问答>如何读取i2c 上 ds1337时钟芯片 ~~~~~~~ iis7站长之家

I2c能否通过mmap读写

    来源: 互联网  发布时间:2017-03-13

    本文导语:  现在要做一个I2C的键盘的控制程序,我想直接在用户态写比较简单. #define I2C0_REG_BASE         (0x01C22000) m_nFd = open("/dev/mem", O_RDWR);  m_pBaseAddr = (i2c_regs_t *)mmap(0, sizeof(i2c_regs_t), PROT_READ | PROT_WRITE, MAP_SHARED, m_nF...

现在要做一个I2C的键盘的控制程序,我想直接在用户态写比较简单.

#define I2C0_REG_BASE         (0x01C22000)
m_nFd = open("/dev/mem", O_RDWR); 
m_pBaseAddr = (i2c_regs_t *)mmap(0, sizeof(i2c_regs_t), PROT_READ | PROT_WRITE, MAP_SHARED, m_nFd,
(0x00000000+I2C0_REG_BASE ) >>0 );

在I2C 的读写函数中,总是死在红色的位置
 // transmit data one byte at a time.
      for (i = 0; i ICDXR = src_buffer[i];
 
         // wait for data to be copied to shift register.
         cnt = 0;
         do
         {
 
            if (cnt++ > I2C_TIMEOUT)
            {
               // timed out waiting for data...reinit and return error.
               //I2C_init(i2c, g_clock_rate);
              // return (ERR_TIMEOUT);
            }
         } while (!CHKBIT(i2c->ICSTR, ICXRDY));
      }



我的内核是2.6.33.rc4 板子OMAPL138, arm-926ejs+DSP, DDR内存起始区域 0xc0000000. 键盘控制芯片TCA8418
这种方法可不可以,
如果可以0x00000000 是不是要换成0xc000000(也不行)
还有我看有人说显存的例子,offset写a00000, 我把地址>>12 或>>8也不行.


|
都不支持你的设备,你有什么办法,你只能自己添加进去了。 

|
不过你竟然用了内存映射,就不应该在使用read()和write()来读写数据了.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • kernel中关于i2c处的问题,大家指教。
  • 关于I2C传输协议和串口问题
  • I2C设备数据通信问题
  • I2C 错误
  • i2c 驱动的问题,高人指教。
  • linux2.6 i2c驱动的几个问题
  • 如何读取i2c 上 ds1337时钟芯片 ~~~~~~~
  • 求助,LINUX的I2C
  • 视屏采集和I2C设备使用的问题请教
  • i2c通信问题
  • 100分请教高手I2C驱动的clock指针的问题
  • I2C驱动测试 有问题啊啊啊
  • i2c设备加载驱动后没有执行probe
  • 【求教】Linux I2C设备驱动开发流程
  • 100分请教高手一个 android串口控制台和i2c超时的问题(本人结贴率达到90%)
  • Linux下的i2c驱动
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • i2c驱动对应的应用程序
  • 关于LINUX的 I2C,高手速度进!
  • 请教:不创建cdev,能访问spi或i2c设备么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3