Android怎么读写eeprom
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下Android怎么读写eeprom的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2026年11月03日Android怎么读写eeprom
今天小编给大家分享一下Android怎么读写eeprom的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
Android 9 读写eeprom
linux 读取eeprom相对来说比较简单,因为内核中集成了大部分eeprom的驱动,文件目录在kernel/drivers/misc/eeprom/at24.c 。
而且我们不用区分at24cxx的不同容量导致的读写方式不同,只要将at24.c编译到内核,然后dts中注册相应的i2c通道即可。手中的模块a0 a1 a2 都是接地,所以器件地址为0xa0,而dts中注册为七位地址,即0x50.
&i2c1 { status = "okay"; clock-frequency = <300000>; pinctrl-names="default"; pinctrl-0=<&i2c1_h_pins>; at24c256@50{ compatible = "at24,24c256"; reg = <0x50>; status = "okay";};};按理说升级编译好的kernel后,就应该在对应的i2c节点下找到eeprom的节点,可是找来找去都没有找到这个节点,查看代码发现有这么个东西。
at24->nvmem_config.name = dev_name(&client->dev); at24->nvmem_config.dev = &client->dev; at24->nvmem_config.read_only = !writable; at24->nvmem_config.root_only = true; at24->nvmem_config.owner = THIS_MODULE; at24->nvmem_config.compat = true; at24->nvmem_config.base_dev = &client->dev; at24->nvmem_config.reg_read = at24_read; at24->nvmem_config.reg_write = at24_write; at24->nvmem_config.priv = at24; at24->nvmem_config.stride = 1; at24->nvmem_config.word_size = 1; at24->nvmem_config.size = chip.byte_len; at24->nvmem = nvmem_register(&at24->nvmem_config);if (IS_ERR(at24->nvmem)) { err = PTR_ERR(at24->nvmem);goto err_clients;}原来新的内核中引入了nvmem的架构对eeprom操作。重新配置内核,打开nvmem的编译选项,重新升级后,找到了nvmem的节点。
应用层对eeprom的操作,都是通过这个节点。
写个应用层代码:
#include#include #include #include #include #include #include "android/log.h"#include #include #include #define FILE_PATH "/sys/bus/nvmem/devices/1-00500/nvmem"int main(){int fd;int size;char data[512] = {0};char r_data[64] = {0};char *w_data = "Hello World!Good Day!\n"; fd = open(FILE_PATH, O_RDWR);if (fd < 0) {printf("Can't open file %s\r\n", FILE_PATH);return -1;}lseek(fd,0,SEEK_SET);write(fd,data,sizeof(data)); //erase eepromlseek(fd,0,SEEK_SET);write(fd,w_data,strlen(w_data));lseek(fd,0,SEEK_SET); size = read(fd,r_data,sizeof(r_data));printf("read data==%s\n",r_data);close(fd);return 0;}
Android.mk
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= max.cLOCAL_MODULE := maxLOCAL_MODULE_TAGS := optionalLOCAL_SHARED_LIBRARIES += \ libcutils \ liblog LOCAL_MODULE_PATH :=$(PRODUCT_OUT)/vendor/bininclude $(BUILD_EXECUTABLE)
以上就是"Android怎么读写eeprom"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
节点
内核
知识
篇文章
不同
编译
代码
内容
地址
大部分
应用层
升级
应用
很大
不用
东西
器件
容量
就是
按理说
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
深圳市人人互联网科技有限公司
新华互联网科技学校
鸠鸠互联网科技
盈实互联网科技
没上市的科技互联网公司
西安互联网科技
贷财互联网科技
伴你行互联网科技有限公司
重庆威客帮互联网科技
湖北码尼互联网科技有限公司电话
明优互联网科技有限公司
互联网科技包装股
上海乐五互联网科技有限公司
广州梦谷互联网科技有限公司领导
互联网科技企业商标注意事项
广州智享互联网科技
银川新华互联网科技学校是国营吗
互联网的科技体现在哪里
青岛易易互联网科技
鸠鸠互联网科技
华宇互联网科技
远信互联网科技
互联网与未来科技
猫创互联网科技
深圳互联网科技怎么样
安控科技rtu产品工业互联网
烟台灵鸽互联网科技有限公司
产业互联网科技服务公司
互联网相关科技技术