news 2026/6/23 19:50:47

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/6/22 20:46:34

安达发|当艺术遇见算法:APS系统如何解开工艺品行业的生产魔方

在浙江某工艺品厂的总经理办公室里&#xff0c;林总正对着一份生产报表眉头紧锁&#xff1a;三张海外客户的定制屏风订单已经逾期两周&#xff0c;而车间里却堆满了另一批并不紧急的库存产品。这并非个例——在工艺品行业&#xff0c;这种“该来的不来&#xff0c;不该来的堆满…

作者头像 李华
网站建设 2026/6/23 1:26:36

Obsidian Style Settings插件使用指南:打造个性化笔记界面

Obsidian Style Settings插件使用指南&#xff1a;打造个性化笔记界面 【免费下载链接】obsidian-style-settings A dynamic user interface for adjusting theme, plugin, and snippet CSS variables within Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian…

作者头像 李华
网站建设 2026/6/19 15:13:14

Swagger2Word终极指南:一键将API文档转为专业Word格式

Swagger2Word终极指南&#xff1a;一键将API文档转为专业Word格式 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 还在为API文档管理而烦恼吗&#xff1f;Swagger2Word这款开源神器帮你解决所有文档转换难题&#xff01;作…

作者头像 李华
网站建设 2026/6/23 11:36:32

【C2000中断Debug】如何定位与调试异常中断

【C2000中断Debug】如何定位与调试异常中断 一、问题描述 在 CPU 上支持实时任务需要使用中断。如果外部传感器检测到故障,则需要中断或停止 CPU,以执行能够处理故障的子例程。在此示例中,信号到达 CPU 时中断的时序至关重要。中断是硬件或软件驱动的信号,可导致 CPU 暂停…

作者头像 李华
网站建设 2026/6/23 4:00:18

vue3中computed计算属性和方法的区别

在 Vue 3 中&#xff0c;computed 计算属性和方法&#xff08;method&#xff09; 虽然看起来有一些相似&#xff0c;因为它们都可以用来获取数据或执行某些操作&#xff0c;但它们有着本质的区别。下面是它们之间的具体差异&#xff1a;1. 用途computed&#xff1a;计算属性用…

作者头像 李华