1.写在前面
“24系列”的EEPROM,一般地我们认为是以i2c为通信接口的一系列串行EEPROM,各大半导体厂商出产的该系列EEPROM都遵循这个规则,而且电路和控制程序上也兼容。如AT24C02、ST24C02等。
EEPROM在嵌入式开发中使用广泛,在此之前,有总结过MCU下24系列EEPROM的驱动接口——“24系列EEPROM/FRAM通用接口”。根据该文章中的接口,作调整,使在嵌入式Linux系统下使用。
2.驱动接口
本文EEPROM驱动程序实现并不按照Linux标准驱动程序模式,不编译成驱动模块或者编译进Linux内核;或者可以说是“伪驱动”的应用。因此,也没有使用到Linux驱动“一切皆文件”的“open、read/write、close”接口。对外,提供三个接口,分别是读、写、擦除操作,擦除操作。
extern int16_t _24cxx_read(_24cxx_dev_t *pdev,uint32_t addr, uint8_t *pbuf, uint32_t size);
extern int16_t _24cxx_write(_24cxx_dev_