我正在尝试在嵌入式设备上使用 i2c 接口。
在i2c-dev.h
(用户空间头文件,不是内核同名文件!) i2c_msg 定义为
struct i2c_msg {
__u16 addr; // slave address
unsigned short flags;
short len; // msg length
char *buf; // pointer to msg data
};
我正在阅读struct i2c_msg
,<kernel root>/Documentation/i2c
但它似乎没有提到*buf
数组可以有多大(即 maxsize 是多少len
)。
我遇到的最接近答案的是 doc-file writing-clients:327
,其中指出:
...,第三个要读取/写入的字节数(必须小于缓冲区的长度,也应该小于 64k,因为 msg.len 是 u16。)
但这是指 i2c 函数“i2c_master_send”。所以不清楚发生了什么,
buf[len-1]
真的能上到64k吗?IE。我可以通过 i2c 总线在一次写入操作(和一个设备)中发送多达 64kBytes 的数据吗?
谢谢您的帮助。