0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统怎么分区?这个方法省时省力

电子设计 来源:互联网 作者:佚名 2017-12-23 08:04 次阅读

嵌入式系统的分区方案非常重要,它在一定程度上决定了系统的稳定性、安全性和灵活性。这篇我们讲讲嵌入式系统的主流分区方案。

一个最简单、最直接的分区方案通常由u-boot、env环境变量、kernel、rootfs依次组成,layout如下:

这种方案的缺点非常明显,不便于系统在线升级的实施,针对系统在线升级的需求,我们应该预留出升级分区。

这种分区方案,将Kernel和Rootfs分别做了A、B两个分区规划,可以分别对Kernel和Rootfs进行在线升级操作,相比第一种方案更加弹性和灵活。

当然,在这个基础上,我们还可以对Rootfs进行更加细致的再分区,比如单独规划出系统应用和数据分区,处于安全性和稳定性的考虑,可以将系统应用分区格式化为只读文件系统类型,将数据分区格式化为可读可写文件系统类型。对于emmc类型的存储设备,其文件系统类型和我们PC用的硬盘是一致的,没有什么区别,然而flash存储设备就要复杂的多了。在闪存与文件系统的介绍中,我们知道,flash存储设备的文件系统是构建于MTD之上的,所以flash底层的分区,就是一个个MTD分区。我们也知道,现在主流的针对flash存储设备(尤其是大于128MB的)文件系统为UBIFS,UBIFS和UBI总是成对出现的,因为UBIFS是构建于UBI之上的,而UBI又是构建于MTD之上的。

UBI的主要功能是wear leveling,所以UBIFS文件系统一个不同于JFFS2文件系统的地方就是它将wear leveling和文件系统分层实现。注意,UBI是针对整个存储空间而不是单个分区进行wear leveling,这大大增加了flash的使用寿命,下图很好的阐释了UBI的wear leveling的功能,我们可以看到Volume 1 和 Volume 2 的wear leveling范围是整个MTD。

另外,UBI还能实现类似LVM的卷管理功能--Volume Management,可以在MTD分区之上创建多个逻辑分区,针对单个卷,可以动态调整卷大小,也可以选择设置为静态卷(read only)。这里要注意的是,U-Boot和env不能放在UBI Volume逻辑分区,需要直接放在MTD分区,通常Kernel也是直接放在MTD分区。

当然,我们也可以和之前一样预留升级分区,另外也可以在一片flash的不同MTD 分区上构建不同的文件系统,例如UBIFS和CRAMFS、JFFS2等可以共存在一片flash上,以充分利用不同文件系统类型的组合优势。

小结

嵌入式系统的分区方案通常会考虑预留升级分区,emmc的文件系统类型与PC的硬盘一致,操作也类似,而针对flash存储设备,主流为UBIFS和UBI的分区方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 闪存
    +关注

    关注

    16

    文章

    1687

    浏览量

    114224
  • 硬盘
    +关注

    关注

    3

    文章

    1232

    浏览量

    56292
  • UBI
    UBI
    +关注

    关注

    0

    文章

    9

    浏览量

    4090
  • rootfs
    +关注

    关注

    0

    文章

    19

    浏览量

    4632
收藏 人收藏

    评论

    相关推荐

    集合论坛上的很多msp430压缩为一个压缩包,帮你们省时省力

    集合论坛上的很多msp430压缩为一个压缩包,帮你们省时省力更省E币
    发表于 08-11 13:26

    嵌入式软件开发工程师培训 嵌入式系统主要特点

    232、USB等接口相连,以方便程序的下载和调试。  嵌入式系统开发学习从零基础入门到精通选择创客学院免费的嵌入式视频入门教程,9天轻松掌握C语言开发技术,让每一个想要学习嵌入式开发技
    发表于 04-27 16:18

    嵌入式开发工程师需要掌握的7大要点

    位置,正确放置放电二极管、串联电阻和接地电容等。  6、学会使用SPICE电路模拟软件是非常有帮助的,但不是绝对必要的。  7、掌握硬件调试的实践技能。  嵌入式系统开发学习从零基础入门到精通选择创客学院免费的嵌入式视频入门教程
    发表于 06-28 14:05

    嵌入式软件开发工程师培训 嵌入式系统主要特点

    232、USB等接口相连,以方便程序的下载和调试。  嵌入式系统开发学习从零基础入门到精通选择创客学院免费的嵌入式视频入门教程,9天轻松掌握C语言开发技术,让每一个想要学习嵌入式开发技
    发表于 06-30 13:30

    嵌入式linux培训教程 嵌入式linux学习方法步骤

    Process,DSP处理器通过硬件实现数字信号处理算法。  嵌入式系统开发学习从入门到精通选择创客学院免费的嵌入式视频入门教程,9天轻松掌握C语言开发技术,让每一个想要学习嵌入式
    发表于 07-03 18:25

    嵌入式软件开发工程师培训 嵌入式系统主要特点

    232、USB等接口相连,以方便程序的下载和调试。  嵌入式系统开发学习从零基础入门到精通选择创客学院免费的嵌入式视频入门教程,9天轻松掌握C语言开发技术,让每一个想要学习嵌入式开发技
    发表于 07-05 10:01

    嵌入式系统和通用计算机系统的最大区别是什么

    。  嵌入式系统开发学习从零基础入门到精通选择创客学院免费的嵌入式视频入门教程,9天轻松掌握C语言开发技术,让每一个想要学习嵌入式开发技术的学员可以
    发表于 09-29 14:02

    嵌入式系统设计方法变化

    嵌入式系统设计方法变化的背景嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动
    发表于 11-08 07:27

    在完全分区嵌入式系统中有用的各种堆特性

    讨论了在完全分区嵌入式系统中有用的各种堆特性。双向链接块堆由链接的块组成。在每个块中是堆使用的元数据和返回给
    发表于 12-09 06:36

    嵌入式Linux系统简述

    简述嵌入式Linux系统一般是将应用程序与文件系统、内核、资源文件等放在不同的分区,产品量产后内核、文件系统这些一般不会升级,应用程序可能升
    发表于 12-21 08:15

    如何学习嵌入式系统

    要学习嵌入式系统肯定需要先了解一下嵌入式系统是什么,否则连这个都不知道又何谈进入嵌入式行业呢?
    发表于 12-22 06:52

    借力GSD/FPGA 嵌入式系统设计省时省力

      借力GSD/FPGA,嵌入式系统的设计将更简易。透过图形化设计系统与FPGA,工程师一方面可加速产品设计过程;另一方面,还可在节省时间成本的同时,开发功能强大的
    发表于 09-10 09:06 1064次阅读

    细碎机轴头磨损原来可以这样修,省时省力

    细碎机轴头磨损原来可以这样修,省时省力
    发表于 03-09 14:58 2次下载

    方便快捷、省时省力的皮带机滚筒轴修复方法

    方便快捷、省时省力的皮带机滚筒轴修复方法
    发表于 07-01 15:47 1次下载

    工地门口安装扬尘在线监测系统省时省力

    扬尘在线监测系统,对接上级部门,数据实时传输,将所在地的PM2.5、PM10等数据信息全部传输到主管部门,这样有利于工地扬尘污染的统一监管,省时省力。有时候在工地门口会发现一种仪器,如下图所示,这就是扬尘
    的头像 发表于 03-03 09:38 312次阅读
    工地门口安装扬尘在线监测<b class='flag-5'>系统</b><b class='flag-5'>省时省力</b>