新路程------hi3516a的i2c_read调用过程
来源:互联网 发布:js 获取input的value 编辑:程序博客网 时间:2024/05/22 12:15
在/Hi3516A_SDK_V1.0.6.0/osdrv/tools/board/reg-tools-1.0.0/source/tools/i2c_ops.c里有i2c_read的实现
在ret = read(fd, recvbuf, reg_width); 里实现了读取寄存器值
追一下这个过程
之前用了ret = ioctl(fd, I2C_16BIT_REG, 1);所以肯定和ioctl在一个文件,在/driver/i2c/i2c-dev.c里i2cdev_read
调用了ret = i2c_master_recv(client, tmp, count);
接着调用了ret = i2c_master_recv(client, tmp, count);
然后调用了
ret = adap->algo->master_xfer(adap, msgs, num);
这个master_xfer在i2c-hisilicon.c
static const struct i2c_algorithm hi_i2c_algo = {
.master_xfer = hi_i2c_xfer,
.functionality = hi_i2c_func,
};
然后static int hi_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
int num)
{
struct hi_i2c *pinfo;
int errorcode;
pinfo = (struct hi_i2c *)i2c_get_adapdata(adap);
pinfo->msgs = msgs;
pinfo->msg_num = num;
pinfo->msg_index = 0;
if (msgs->flags & I2C_M_RD)
errorcode = hi_i2c_read(pinfo);
else
errorcode = hi_i2c_write(pinfo);
return errorcode;
}最后就是调了这两个read和write函数
- 新路程------hi3516a的i2c_read调用过程
- 新路程------hi3516a的reboot过程
- 新路程-----hi3516a遇到的编译警告
- 新路程------hi3516a watchdog
- 新路程------hi3516a kernel启动
- 新路程------hi3516a phy初始化
- 新路程------hi3516a开启uart2
- 新路程------hi3516a uart1 rs485
- 新路程------adv7180寄存器的理解,hi3516a的sdio0检测
- 新路程------hi3516a修改register的应用层做法
- 新路程------hi3516a 在应用层对寄存器的操作
- 新路程------hi3516a的uart rts cts功能
- 新路程----hi3516a i2c驱动 kernel panic
- 新路程------hi3516a i2c设备reset
- 新路程------hi3516a vi_dump以及vio失败
- 新路程------hi3516a 内置rtc调试
- 新路程------sil9135 hi3516a gpio功能确认
- 新路程------hi3516a配置ntp服务
- Python基础教程学习笔记第二章:列表和元组
- Qt自带命令的发布+vs+opencv应用程序的发布
- redis 安装与配置
- html网页嵌入flv视频
- 根据经纬度计算两地距离java实现
- 新路程------hi3516a的i2c_read调用过程
- jquery flot画图
- STL容器之vector
- C++ 复习——关于字节
- vscode集成git bash
- javascript实现输入框不可编辑
- leetcode 201. Bitwise AND of Numbers Range
- 使用MIB来监控你的应用(tuxedo mib)
- 属性驱动封装