路由器系统的内存储布局

  • FLash存储布局
    • RAW FLASH:闪存芯片直接连接到CPU上
    • FTL FLASH:闪存芯片通过其它芯片连接到CPU上
    • 【】一般嵌入式系统中的芯片都是raw,因为都是直接连接到cpu上
    • 【】存储分区由MTD与文件系统来控制,传统用MBR或PBR来控制,嵌入式设备中用linux kernel即内核来控制(有时候单独由bootloader来控制)。
  • 例子:TP-LINK WR1043ND的flash布局
    •  
      TP-Link WR1043ND Flash Layout
      Layer0m25p80 spi0.0: m25p64 8192KiB
      Layer1mtd0 u-boot 128KiBmtd5 firmware 8000KiBmtd4 art 64KiB
      Layer2 mtd1 kernel 1280KiBmtd2 rootfs 6720KiB 
      mountpoint  / 
      filesystem  mini_fo 
      Layer3   mtd3 rootfs_data 5184KiB 
      Size in KiB128KiB1280KiB1536KiB5184KiB64KiB
      Nameu-bootkernel rootfs_dataart
      mountpointnonenone/rom/overlaynone
      filesystemnonenoneSquashFSJFFS2none
      1. 第0层Layer0: 对应Flash芯片,8MiB大小, 焊接在PCB上,连接到CPU(SoC) SoC – 通过 SPI (Serial Peripheral Interface Bus)总线.
      2. 第1层Layer1: 我们把存储空间"分区"为 mtd0 给 bootloader, mtd5 给 firmware/固件使用, 并且, 在这个例子中, mtd4给ART (Atheros Radio Test/Atheros电波测试) - 它包含MAC地址和无线系统的校准信息(EEPROM). 如果该部分的信息丢失或损坏, ath9k (无线驱动程序) 就彻底罢工了.
      3. 第2层Layer2: 我们把mtd5 (固件) 进一步分割为 mtd1 (kernel/内核) and mtd2 (rootfs); 在固件的一般处理流程中 (参考 obtain.firmware.generate) Kernel 二进制文件 先由 LZMA打包, 然后用 gzip压缩 之后文件被 直接写入到raw flash (mtd1)中 而不mount到任何文件系统上!
      4. 第3层Layer3: 我们把rootfs更进一步分割成 mtd3 (rootfs_data) 和剩下的 未命名 部分 - 未来用来容纳SquashFS-分区.
  • 文件系统:
    • mini_fo:迷你散列覆盖文件系统
    • SquashFS:压缩过的只读文件系统,一般通过LZMA打包,然后由gzip压缩,直接写入flash,比jffs2小20%~30%,修改的话,要copy一份新的到第二分区,浪费空间。
    • JFFS2:可读写的压缩文件格式,带有日志和平均擦写技术,用LZMA进行压缩(推荐使用这种系统)

转载于:https://www.cnblogs.com/ensleep/archive/2013/02/24/2924175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值