继续I2C读写
来源:互联网 发布:如何成为一名程序员 编辑:程序博客网 时间:2024/05/11 13:36
早上做了一个温度实验,把手机放到70度测试了一下GPADC读出来的电压值,为了确定这个电压值和温度的对应关系,好调整这个关系的数组。明天还得做其它温度的实验。上午写好了温度判断的代码,给电池的health节点,就是sysfs里的一个attribute,在power_supply.c里建立 的。根据温度给它返回一个Cold,Overheat,Good的值来确定它的健康状态。
然后下午和晚上,优化了一下代码,改了几个寄存器值的错误。把几个函数封装了一下。
最重要的是下午在打patch的时候发现了一个XXX_page_reg_write的函数,是一个i2c的读写函数,回来在内核代码里没有找到,估计是私有的代码。看了看实现,真是搞不懂,里面先写i2c写了几个寄存器,是在spec上找不到的寄存器,然后写那个要写的数据,然后又写了几个寄存器。这几个寄存器大概是FA,FB,FC之类的,一共有5个,前面3个,后面2个。而且用的是xxx_write_device(i2c, reg, 0, &zero)的方法,zero又是一个没有初始化的int型,这个函数再跟进去的话,buf[0]是一个reg,buf[1]当然啥也没有,i2c_master_send就送了一个字节,就是个寄存器地址。这个玩意有点费解,后来问了一下同事,他说这玩意也看不出来啥,得知道这几个寄存器是有啥特殊功能的。以前有这种类似的就是设一个寄存器的值,然后另外的寄存器功能就会不同。但是这个我实在是不知道。。。。有点杯具啊。。
晚上突然想起来了前几天看的一个printf的语句,int a = 3; printf(&a[“abcHello”]);打印出来个Hello。
我觉得这个不看汇编直接解释的话应该是跟数组那个a[1]和1[a]是类似的。这里[]也起了地址相加的功能.”abcHello”的地址加3正好是“Hello”的地址,[]还有解引用的作用,再取地址正好就是字符串”Hello”,不错的一个东西啊。哈哈。
洗洗睡吧。
- 继续I2C读写
- I2C总线使用方法继续研究
- I2C总线使用方法继续研究
- linux I2C读写实例
- 中断与I2C读写
- 自定义i2c读写函数
- STM32 I2C读写
- 重写I2c 读写AT24C01
- STM32 I2C读写
- I2c读写地址
- I2C读写问题
- I2C读写问题
- linux I2C读写实例 .
- I2C读写时序
- linux I2C读写应用程序
- linux I2C读写EEPROM
- I2C读写时序
- I2C通用读写函数
- fedora 13 安装与配置(二)----创建虚拟机
- 人情似纸张张薄 世事如棋局局新
- XP密码破解
- 人民大学云计算编程的网上评估平台--解题报告 1001-1003
- 2011年3月25日 晴
- 继续I2C读写
- Android Activity Intent 机制
- windows下的rails2.02环境搭建
- 一个不错的技术博客,记一下
- 步步高打火机,哪里不会点哪里
- Visual studio 2010 中文版正式版无法安装Silverlight4 Tools的解决办法
- GTK编程——linux下GTK开发环境建立(ubuntu)
- 【叶子函数分享四十九】生成两个时间之间的所有日期
- 安全技术交底