嵌入式设备里面写文件通过外部 Flash 来进行

不知道你们刚刚给树莓派刷写系统Ubuntu的时候,有没有让你选择文件文件系统?

如果你选择了,那你一定想要了解为啥要给我们的操作系统安装不同类型的文件系统

Linux 常见的文件系统如:ext3/ext4/swap格式的文件 等等

在Windows 11上也有各种各样的文件系统ntfs ,exfat 格式的文件

为什么不同的操作系统下面要让我们选择不同的文件系统呢?

NTFS 和 ext4 的设计背景不同

NTFS 是微软在 1993 年为 Windows NT 设计的,目标是企业级 Windows 系统,强调兼容性、权限管理、加密等 Windows 生态需要的功能。

ext 系列是 Linux 社区从 1992 年开始发展的,设计理念遵循 Unix 哲学,强调简洁、稳定、开源,针对 Linux 内核优化。

针对我入手的这块开发版而言

那我们的嵌入式设备是不是也有不同的文件系统呢?

答案是肯定的,我最近入手了正点原子的开发板,我发现他们做的 LCD 界面就像是带有文件系统的单片机

在这个数码相框里面很像我们的文件系统,只是可能是通过不同的存储介质,所以表现的可能有一点不一样。

这里我给这个设备插上了 SD 卡,它检测到了。于是上面显示的有两个存储介质

分别是 SD 卡和 ALIENTEK 这个是什么,我其实并不清楚

通过查看相关资料,我了解到了这是一款W25Q128 SPI(SPI NOR Flash)的 FLASH存储芯片

但是这就是可以理解成存储介质吧

通过查找资料,我们发现这个开发板上烧的是FATFS文件系统

特点:

FATFS(FAT32/FAT16) --- 你开发板上用的就是这个。兼容性好,Windows/Linux 都能直接读取 SD 卡。缺点是没有磨损均衡,不适合频繁写入的 Flash。

除此之外还有其他的文件系统

LittleFS --- 专为 NOR Flash 设计,有掉电保护和磨损均衡,非常适合 MCU + SPI Flash 的场景。资源占用小,现在越来越流行。

SPIFFS --- ESP8266/ESP32 早期常用,也是为 Flash 设计的,但性能和可靠性不如 LittleFS,逐渐被取代。

JFFS2 / UBIFS --- Linux 嵌入式系统用的,针对 NAND Flash 优化,带压缩和磨损均衡。

ROMFS / CRAMFS --- 只读文件系统,用于存放固件中不需要修改的资源文件。

问题一:

本来我还有疑问,因为我们单片机下载的时候要擦除 Flash,那我们辛辛苦苦存储的数据不就丢失了,这个 Flash (W25Q128 SPI(SPI NOR Flash))不是我们单片机内部的 Flash,我们每一次下载的时候只对我们内部的 Flash 进行擦除操作,而外面悬挂的 Flash 芯片则不受影响

相关推荐
SKH.41 分钟前
单片机(1)
单片机·嵌入式硬件
llilian_161 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
宁静致远20211 小时前
VSCode 开发 STM32 的 Keil工程 (Keil Assistant)
vscode·stm32·stm32cubeide
三块石头1012 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue2 小时前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_162 小时前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
en.en..2 小时前
sizeof与strlen的区别(附UDP网络编程实战坑点)
单片机·嵌入式硬件
糖糖单片机设计2 小时前
基于 STM32 的智能净水器系统
stm32·单片机·嵌入式硬件
zcmodeltech2 小时前
火电厂模型能演示冷态启动和故障处理吗?——基于STM32与Modbus RTU的集控实训控制系统设计
数据结构·stm32·单片机·嵌入式硬件·能源
llilian_162 小时前
标准时间间隔发生器应用解决方案 脉冲发生器 时间测量仪
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机