news 2026/7/28 9:31:10

Linux EEPROM调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux EEPROM调试

目录

目录

前言

DTS配置的参考

AT24C256 EEPROM的DTS配置参考

AT24C02 EEPROM的DTS配置参考

内核配置的参考

AT24C256 EEPROM的内核配置参考

AT24C02 EEPROM的内核配置参考

验证测试的参考

AT24C256 EEPROM的验证测试参考

AT24C02 EEPROM的验证测试参考

总结


前言

EEPROM(Electrically Eraseble Programmable rend only memory,电可擦可编程只读存储器)是一种非易失性存储芯片。

它们具有以下核心功能与特点:

1. 数据持久性。

  • 断电后数据不丢失,适用于需要长期保存配置信息的场景;
  • 通过电子擦除和编程实现数据更新,无需物理移除芯片。

2. 可重复擦写。

  • 支持数万次擦写操作,适用于频繁修改数据的应用(如硬件配置存储等);
  • 擦除时仅需特定电压,无需紫外线照射(区别于EPROM)。

3. 应用场景。

  • 硬件配置存储:用于接口卡、即插即用设备的参数保存;
  • 安全防护:作为”硬件锁“防止软件非法拷贝;
  • 物联网设备:作为通信模块的配置信息或设置。

4. 技术特性。

  • 支持按字节读写,灵活性较高;
  • 现代EEPROM通常无需额外高压(Vpp),简化设计。

5. 与其它存储介质的区别。

相比NOR/NAND FLASH,EEPROM更适合小容量、频繁更新的场景;与RAM相比,具有非易失性优势,但速度较慢。

下面以AT24Cxx系列的EEPROM为例。


DTS配置的参考

AT24C256 EEPROM的DTS配置参考

AT24C256是一款广泛使用的串行EEPROM芯片,具有256K位存储容量,它使用I2C协议进行通信,适用于多种控制器系统。这种非易失性存储器在断电后依然能够保持数据不丢失,常被用于存储配置信息、日志数据或代码引导程序等。

i2c0_gpio: i2c@0 { compatible = "i2c-gpio"; #address-cells = <1>; #size-cells = <0>; scl-gpios = <&gpioc 22 GPIO_ACTIVE_HIGH>; sda-gpios = <&gpioc 23 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ at24c256@50 { compatible = "atmel,24c256"; reg = <0x50>; pagesize = <64>; }; };

AT24C02 EEPROM的DTS配置参考

AT24C02是一款2K位的串行EEPROM芯片,内部含有256个8位字节,有一个16字节的页写缓冲器,主要用于存储设备配置信息、系统参数等需长期保存且断电不丢失的数据场景。

i2c0_gpio: i2c@0 { compatible = "i2c-gpio"; #address-cells = <1>; #size-cells = <0>; scl-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>; sda-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ 24c02@50 { compatible = "atmel,24c02"; reg = <0x50>; pagesize = <16>; }; };

内核配置的参考

AT24C256 EEPROM的内核配置参考

CONFIG_EEPROM_AT24=y

AT24C02 EEPROM的内核配置参考

CONFIG_EEPROM_AT24=y

验证测试的参考

AT24C256 EEPROM的验证测试参考

1. 烧录固件后,正常开机,命令行终端可以输入:dmesg,正常打印如下:

# dmesg | grep "at24" at24 0-0050: 32768 byte 24c256 EEPROM, writable, 16 bytes/write

2. 对其进行写操作,如下:

# i2ctransfer -f -y 0 w7@0x50 0x20 0x00 0x11 0x22 0x33 0x44 0x55

3. 对其进行读操作,如下:

# i2ctransfer -fay 0 w2@0x50 0x20 0x00 r5@0x50 0x11 0x22 0x33 0x44 0x55

AT24C02 EEPROM的验证测试参考

1. 烧录固件后,正常开机,命令行终端可以输入:dmesg,正常打印如下:

# dmesg | grep "at24" at24 0-0050: 256 byte 24c02 EEPROM, writable, 16 bytes/write

2. 对其进行写操作,如下:

# i2ctransfer -f -y 0 w2@0x50 0x00 0x11

3. 对其进行读操作,如下:

# i2ctransfer -fay 0 w1@0x50 0x00 r1@0x50 0x11

总结

EEPROM使用电场来擦除和写入存储器单元,因此可以反复写入数据。EEPROM通常用于存储小量数据,并且可以通过SPI或I2C接口进行读写。相对于EEPROM,Flash具有更高的存储密度和更快的写入速度。Flash内部被分为多个扇区,每个扇区都可以单独擦除和写入。Flash通常用于存储固件和大量数据,并且可以通过SPI、SDIO或NAND等接口进行读写。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 6:10:54

LobeChat知乎内容分发策略

LobeChat在知乎内容生态中的智能生成与分发实践 当知乎上一个关于“2024年大模型技术趋势”的提问悄然登上热榜&#xff0c;却迟迟没有高质量回答时&#xff0c;背后可能正有一套自动化系统在悄然运转——它监听话题热度、调用AI模型检索最新论文、整合权威观点&#xff0c;并在…

作者头像 李华
网站建设 2026/7/28 4:26:53

FCC认证是否有有效期?有哪些认证方式?需要审厂吗?

FCC 认证的有效期、认证方式与审厂要求&#xff0c;会根据认证的类型&#xff08;FCC ID/SDoC&#xff09;有明确区别&#xff0c;以下是详细说明&#xff1a;有效期规则FCC 认证本身没有固定的有效期限制&#xff0c;但是会受两个因素影响有效性&#xff1a;产品的设计变更&am…

作者头像 李华
网站建设 2026/7/26 17:56:02

电池做CE认证的流程是怎样的?

依据欧盟新电池法规&#xff08;EU&#xff09;2023/1542&#xff0c;电池 CE 认证需覆盖安全、环保等多维度合规要求&#xff0c;流程清晰且环节明确&#xff0c;具体步骤如下&#xff1a;前期规划与资料准备确定合规标准&#xff1a;先明确电池对应的适用标准&#xff0c;比如…

作者头像 李华
网站建设 2026/7/28 19:31:39

LobeChat 360搜索推广策略

LobeChat&#xff1a;构建私有化AI交互入口的技术实践 在生成式AI浪潮席卷各行各业的今天&#xff0c;一个现实问题摆在开发者和企业面前&#xff1a;如何在享受大语言模型强大能力的同时&#xff0c;不牺牲数据安全与系统可控性&#xff1f;市面上的主流对话产品虽然体验流畅&…

作者头像 李华
网站建设 2026/7/17 19:41:05

LobeChat表单插件开发入门:为AI添加结构化输入

LobeChat表单插件开发入门&#xff1a;为AI添加结构化输入 在智能客服、企业助手和自动化工作流日益普及的今天&#xff0c;我们越来越依赖大语言模型&#xff08;LLM&#xff09;来处理复杂任务。然而&#xff0c;一个普遍存在的问题是&#xff1a;尽管模型“懂语言”&#xf…

作者头像 李华