16_嵌入式文件系统选择

嵌入式文件系统选择

在进行嵌入式系统开发过程中,文件系统的选择和制作与硬件条件息息相关。根据硬件(Flash 或 RAM)的特性来指定相应的文件系统,能够充分利用硬件资源及提高系统效率。因为目前大部分的嵌入式文件系统都是建立在 Flash 之上,下面介绍 Flash 硬件方案比较与 Flash 的特点。

1. Flash硬件方案比较

  • Flash(闪存)是嵌入式系统的主要存储介质,其特点为写操作只能把对应位置的 1修改为 0,而不能把 0 修改为 1。因此,对于 Flash 的擦除操作是把对应存储块的内容恢复为 1。
  • 一般情况下, 向 Flash 写入内容时, 首先必须擦除对应的存储区间, 擦除是以块(block)为单位进行。
  • 闪存技术主要有 NORNAND 两种技术。 Flash 存储器的擦写次数是有限的,NAND 闪存设备有特殊的硬件接口和读写时序。因此,必须根据 Flash 硬件特性设计符合应用要求的文件系统。
  • 选择硬件方案的原则: 数据存储(如用户文件系统等)用 NAND Flash,代码(如引导程序和根文件系统等)存储采用 NOR Flash。 为了获得最高的性价比,设计师在速度、存储密度、成本、开发周期等多种因素之间进行权衡。 以手机的存储解决方案为例: NOR Flash 采用支持 XIP(eXecute In Place,芯片内执行)技术能够直接运行操作系统,速度快,既简化了设计,又降低了成本,所以许多手机硬件方案都采用 NOR Flash+RAM。
  • NOR Flash和NAND Flash比较:
    • NOR Flash:读取简单快速,可直接在上面允许程序(即支持XIP),但存储密度低,接口复杂,成本高。
    • NAND Flash:存储密度高,接口简单,成本低;但使用起来需要专门的驱动程序,读取数据复杂较慢,且不可片内执行,坏扇区较多,需要纠错程序。
磁 盘 类 型NOR FlashNAND Flash
使用难易程度接口时序同 SRAM,易使用地址/数据线复用,数据位较窄
读速度读取速度比较快读取速度比较慢
擦除速度擦除速度慢,以 64KB~128KB 的块为单位写(编程)和擦除操作的速率快, 以8KB~32KB 的块为单位
写速度写入速度慢(因为一般要先擦除)写入速度快
应用场合随机存取速度较快, 支持 XIP(eXecute In Place,芯片内执行),适用于代码存储。在嵌入式系统中,常用于存放引导程序、根文件系统等顺序读取速度较快,随机存取速度慢,适用于数据存储(如大容量的多媒体应用)。用于嵌入式系统中时,通常存放用户文件系统等
存储密度单片容量较小, 1KB~32MB单片容量较大, 8MB~128MB,提高了单元密度
使用成本成本高成本低
使用寿命NOR 的擦写次数为十万次NAND 闪存中每个块的最大擦写次数为一百万次
软件支持在 NOR 器件上运行代码时不需要其他驱动程序支持在 NAND 器件上进行同样操作时, 通常需要驱动程序,也就是内存技术驱动程序(MTD), NAND 和 NOR 器件在进行写入和擦除操作时都需要 MTD 驱动程序支持

2. 嵌入式文件系统的分层结构

  • 根据系统需求、 采用的存储设备的硬件特性、文件系统不同的特点等,采用不同的文件系统或者文件系统组合。 在嵌入式 Linux 应用中,主要的存储设备为 RAM(DRAM, SDRAM)和 ROM(常采用 Flash 存储器),常见的基于存储设备的文件系统类型包括 RamdiskJFFS2YAFFSCramfsRomfsRamfs/Tmpfs 等。
  • 嵌入式文件系统主要有基于 Flash 的文件系统和基于 RAM 的文件系统。下面给出 Linux 系统下文件系统的分层结构

文件系统。下面给出 Linux 系统下文件系统的分层结构

image-20240325151455362

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/509384.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【技巧】Leetcode 287. 寻找重复数【中等】

寻找重复数 给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组…

2013年认证杯SPSSPRO杯数学建模C题(第二阶段)公路运输业对于国内生产总值的影响分析全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 C题 公路运输业对于国内生产总值的影响分析 原题再现: 交通运输作为国民经济的载体,沟通生产和消费,在经济发展中扮演着极其重要的角色。纵观几百年来交通运输与经济发展的相互关系,生产水平越高…

中国90米分辨率可蚀性因子K数据

土壤可蚀性因子(K)数据,基于多种土壤属性数据计算,所用数据包括土壤黏粒含量(%)、粉粒含量(%)、砂粒含量(%)、土壤有机碳含量(g/kg)、…

计算机组成原理1:计算机系统概述

此系列介绍计算机的组成原理,参考书:《计算机组成原理考研复习指导》(王道论坛组编)。 1.计算机发展史 1.1 计算机发展 计算机变化 第一代计算机 ( 1946 − 1957 ) (1946-1957) (1946−1957):电子管时代。 逻辑元件采用电子管;使…

LVS、HAProxy

集群:将很多个机器组织到一起,作为一个整体对外提供服务。集群在扩展性、性能方面都可以做到很灵活。集群的分类:负载均衡集群:Load Balance。高可用集群:High Available。高性能集群:High Performance Com…

酷开系统覆盖尽可能多的用户,助力酷开科技走在数字化营销前面

用户画像可看作企业应用大数据的根基,是定向广告投放与个性化推荐的前置条件,为数据驱动运营奠定了基础。酷开系统家庭激活终端超过6000万,针对全量用户进行分析,覆盖尽可能多的用户,为提升用户画像准确率提供了很好的…

GWO-CNN-BiLSTM多输入回归预测|灰狼群算法优化的卷积-双向长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&…

谷歌翻译示例

概述 项目需要,使用谷歌翻译,前提是得翻墙。 1、获取所有语言和其对应编码如下所示: {auto: 检测语言,sq: 阿尔巴尼亚语,ar: 阿拉伯语,am: 阿姆哈拉语,as: 阿萨姆语,az: 阿塞拜疆语,ee: 埃维语,ay: 艾马拉语,ga: 爱尔兰语,et: 爱沙尼亚语,or…

主站设备通过Modbus转Profinet网关与湿度传感器通讯配置

Modbus转Profinet网关(XD-MDPN100)可以实现不同协议设备通讯,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输…

三十个中文AI对话网站推荐

目录 写在前面 一、kimi 二、WeexAI 三、Cursor 四、智谱清言 五、讯飞星火 六、通义千问 七、文心一言 八、混元 九、豆包AI 十、其它 写在前面 总的来说,现在国内能用到的大模型类产品分国产和套壳两种。对于中文任务,这些大模型功能都大同…

文献学习-25-综合学习和适应性教学:用于病理性胶质瘤分级的多模态知识蒸馏

Comprehensive learning and adaptive teaching: Distilling multi-modal knowledge for pathological glioma grading Authors: Xiaohan Xing , Meilu Zhu , Zhen Chen , Yixuan Yuan Source: Medical Image Analysis 91 (2024) 102990 Key words: 知识蒸馏、模态缺失、胶质瘤…

C++ vector 动态 向量/数组

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…

ios 之 netty版本swiftNio(socket创建)

SwiftNio 简介 用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。 SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 这就像Netty,但是为Swift写的。 Xcode引入swiftNio 在实…

【Linux】常见命令

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 常用命令 1. ls2. pwd3. cd4. touch5. cat6. mkdir7. rm8. cp9. mv10. tail11. vim12.…

idea使用docker将Java项目生成镜像并使用

1:开启docker 远程访问 使用 vim 编辑docker服务配置文件 vim /lib/systemd/system/docker.service [Service] Typenotify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not suppor…

2024-04-02 在使用QtRemoteObject 过程中遇到的问题记录

前言 QtRemoteObject 的使用分为静态和动态使用,静态使用需要定义rep文件,相当于通信协议,保证源端和节点端类型的统一。 这些可以参考这两文章: https://zhuanlan.zhihu.com/p/36501814 https://zhuanlan.zhihu.com/p/3710817…

校园圈子系统-论坛,跑腿,地图找伴,二手市场,语音交友,APP小程序H5三端源码交付,支持二开!

2024年最新版推荐一个论坛社区系统 /社区论坛小程序/商城论坛小程序/源码。 带热门,带算法推荐 ,低成本上线的,论坛社区小程序源码强大售后,持续更新 功能:小程序授权登陆,支持app双端,小程序,…

qt5-入门-自定义委托-简单例子

参考: Qt 自定义委托_w3cschool https://www.w3cschool.cn/learnroadqt/ov8h1j4z.html C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt 5.12 理论知识 Qt的model/view架构中,view只是…

FastAPI Web框架教程 第14章 部署

14-1 在Linux上安装Python 【环境】 腾讯云服务器 Centos 8 【安装方式】 源码编译安装 安装步骤: 第1步:更新yum源 cd /etc/yum.repos.d/ sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-* sed -i s|#baseurlhttp://mirror.centos.…

RESTful的优点

优点 1.通过url对资源定位,语义清晰; 2.通过HTTP谓词表示不同的操作,接口自描述; 3.可以对GET、PUT、DELETE请求重试(幂等的); 4.可以对GET请求做缓存; 5.通过HTTP状态码反映服务器端…