Probablemente una pregunta muy nueva:
Tengo una placa Zynq 7100, zc706. Estoy jugando con el sistema de procesamiento ARM con la distro PetaLinux de Xilinx. ¿Qué pasaría si añadiera un dispositivo al árbol de dispositivos, por ejemplo, y EEPROM en el bus I2C, pero en realidad nunca conecté físicamente la EEPROM al bus? Luego trato de usar el controlador I2C Linux para leer y escribir en la dirección en el árbol de dispositivos donde se encuentra la EEPROM. ¿El intento de abrir el archivo simplemente fracasará? Si ese es el caso, ¿cuál es el punto del árbol de dispositivos, solo para decirle al núcleo que busque los dispositivos / incluya el controlador y construya de cierta manera?
if((file = open(I2C_ADAPTER, O_RDWR)) < 0) {
printf("Failed to open the bus\n");
return -1;
}
buf[0] = addr;
buf[1] = reg_addr;
buf[2] = 0x10;
if(write(file, buf, 3) != 3) {
printf("Failed to write to bus %s.\n\n", strerror(errno));
}
else {
printf("Successful write\n");
printf(buf);
printf("\n\n");
}
if(read(file, buf, 3) != 3) {
printf("Failed to read from the i2c bus.\n %s\n\n", strerror(errno));
}
else {
printf("Successful read\n");
printf("Buf = [%02X,%02X,%02X]\n", buf[0], buf[1], buf[2]);
printf("\n\n");
}
Digamos que paso el código a una dirección de bus I2C (addr) de 0x5d y escribo en el registro base reg_addr es 0x00, que es donde mi EEPROM está en el árbol de dispositivos. ¿Cómo sabe el sistema la ubicación del dispositivo si tuviera que conectar una EEPROM?