我在i2c线路上将一个硬件连接到一个嵌入式linux板上。我可以在/dev/i2c-1上看到这个设备
filename = "/dev/i2c-1"
filehandle = open(filename,O_RDWR);
write(filehandle, <buffer to be written>, <number of Bytes>)
(similiarly for read = read(filehandle, <buffer to be read in an array>, <number of
很抱歉对我的问题做了详细的描述:-)
在我们新的基于PC板的设计中,我被赋予了一项任务来执行简单的读写I2C设备。该板将使用Portwell的Q7微型PC,使用英特尔隧道溪(ATOM)处理器(本质上是一个x86处理器)和一个EG20T IOH芯片。
I2C从设备是TI AIC3254音频编解码器。操作系统为Ubuntu10.04LTS 32位。
uname -a
Linux Torchwood 2.6.32-41-generic #88-Ubuntu SMP Thu Mar 29 13:08:43 UTC 2012 i686 GNU/Linux
这个设备的PC部分本质上是一个通用的PC。
PC
在我的主板上,我有一个存储配置信息的I2C EEPROM。UBoot使用如下所示的read_eeprom函数读取它。我还想从Linux内核内部访问此信息,以便正确显示/proc/cpuinfo输出。但是,我在Linux内核中找不到与i2c_probe和i2c_read等效的功能。如何从内核内部执行以下函数?我使用的是Linux 3.2。
static int read_eeprom(void)
{
/* Check if baseboard eeprom is available */
if (i2c_probe(CONFIG_SYS_I2C_EEPROM_AD
我正在将I2C驱动程序移植到Linux-4上。该设备同时为不同功能提供多个I2C地址。
例如:
address 0xAA is for access of SPI flash.
address 0xA0 is for access of EEPROM.
address 0x60 is for normal access (control purpose).
是否可以在单个I2C设备驱动程序中支持对不同I2C地址的访问?
感谢您的帮助,谢谢
我知道如何为I2C编写SMbus适配器驱动程序,但仍然不知道这个驱动程序是否足以与linux机器或主板对话或让我的i2c传感器与linux机器或主板一起工作,以防我特别想将我的驱动程序插入到内核中。
或者换句话说,我有一些陀螺仪要与ARM9接口,那么就编写I2C驱动程序而言,是否还有很多东西需要学习,或者足够好地使用前面提到的above....Help me out,请在这个问题上绊倒……
我目前正在研究Raspberry 3和PsoC 4之间的PsoC,我正在使用I2C-dev库来处理I2C通信。因此,I2C总线已经启动运行,读写功能得到了正确的实现。但是,我希望使函数指针为读和写函数,因此to函数使用相同类型的参数(至少看起来是这样),我有以下主要代码,名为i
2Ctest-tools.cpp
#include <unistd.h> //Needed for I2C port
#include <fcntl.h> //Needed for I2C port
#include <sys/ioctl.
我需要帮助理解C++语法。我指的是德里克莫洛伊,
/cpp 08/i2c/cpp/i2 CDevie.cpp
在他的实现文件中,他的代码中有这个部分。
int I2CDevice::open(){
string name;
if(this->bus==0) name = BBB_I2C_0;
else name = BBB_I2C_1;
if((this->file=::open(name.c_str(), O_RDWR)) < 0){
perror("I2C: failed to open the bus\n")