news 2026/4/16 18:26:37

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/4/16 15:26:11

LobeChat文献综述自动化整理尝试

LobeChat文献综述自动化整理尝试 在人工智能加速渗透科研流程的今天&#xff0c;一个现实问题摆在许多研究者面前&#xff1a;如何从每天新增的成千上万篇论文中快速定位关键信息&#xff1f;传统的文献阅读方式——下载、打开、逐段浏览、手动笔记——早已难以应对现代学术产出…

作者头像 李华
网站建设 2026/4/15 15:21:28

电源CE认证标准有那些?

电源 CE 认证需契合电气安全、电磁兼容、环保、能效等多维度欧盟指令&#xff0c;不同指令对应明确的核心协调标准&#xff0c;且会随产品类型&#xff08;如普通适配器、车载电源等&#xff09;略有差异&#xff0c;具体分类如下&#xff1a;电气安全类&#xff08;对应 LVD 指…

作者头像 李华
网站建设 2026/4/16 10:40:14

01. 内存对齐

1.内存对齐1.内存对齐 1).内存对齐简介内存对齐(Memory Alignment)是计算机硬件和编译器的强制规则: 要求数据在内存中的起始存储地址, 必须是某个固定数值(称为"对齐值 / 对齐边界", 比如4、8、16、64 字节)的整数倍2).为什么要内存对齐CPU/GPU读取内存时, 不是逐字…

作者头像 李华
网站建设 2026/4/16 10:39:33

JetBrains IDE插件构想:在编码时随时提问

JetBrains IDE插件构想&#xff1a;在编码时随时提问 你有没有过这样的经历&#xff1f;正专注地写着一段复杂的 Java 逻辑&#xff0c;突然卡在某个异常处理上&#xff0c;不确定是空指针还是类型转换的问题。于是你停下手中的工作&#xff0c;复制错误信息&#xff0c;打开浏…

作者头像 李华
网站建设 2026/4/16 12:15:31

LobeChat睡眠改善建议生成模型训练

LobeChat 构建睡眠改善建议系统的实践探索 在现代都市生活中&#xff0c;越来越多的人被入睡困难、早醒、夜间频繁觉醒等问题困扰。传统的睡眠干预手段往往依赖医生面诊或标准化健康指南&#xff0c;难以满足大众对低成本、个性化、可及性强的持续支持需求。而随着大语言模型&…

作者头像 李华