全志ARM926 Melis2.0系统的开发指引③
- 编写目的
- 6. 存储系统简介
- 6.1.概要描述
- 6.2.文件系统接口
- 6.2.1. 文件系统支持
- 6.2.2. 文件系统接口函数
- 6.3. Flash 分区
- 6.3.1.如何配置可配分区的大小
- 6.4.存储介质开发
- 6.4.1. NOR Flash
- 6.4.1.1.添加新 Nor Flash
- 6.4.1.2.Nor Flash 保存用户数据
- 6.4.2. SDMMC Card
- -. 全志相关工具和资源
- -.1 全志固件镜像修改工具 ImageModify.exe 下载
- -.2 全志固件USB刷机工具 PhoenixSuit 下载
- -.3 全志Melis2.0 用户手册.pdf下载
- -.4 全志melis2.0 sdk源码库下载
编写目的
本文档是全志 Melis2.0 系统的开发指引文档,旨在协助开发者了解和掌握 Melis 系统,快速搭建 Melis系统的开发环境,将 Melis2.0 系统应用到产品开发中。
6. 存储系统简介
6.1.概要描述
此文档主要介绍 Melis 2.0 的存储开发方法。与固件结构组成等。
6.2.文件系统接口
6.2.1. 文件系统支持
Melis2.0 支持可读写的文件系统分别是:fat exfat ntfs。支持只读文件系统 udf。(其中 melis 还支持全志自主研发的 minfs 文件系统,但上层不会使用)
6.2.2. 文件系统接口函数
图34:
melis 系统文件更多相关接口在 elibs_stdio.c 文件。此处就不一一列举了。
6.3. Flash 分区
Melis flash 固件通常共分为 5 个分区,分别为:BOOT0、BOOT1、MBR、ROOTFS、UDISK。
BOOT0:boot0 的具体工作是先进行初始化处理器,icache,UART,定时器,JTAG,DRAM 和 HEAP 等操作,然后再将 boot1 装载进 DRAM。
BOOT1:boot1 主要负责装载系统内核、强制升级检测、调试开关和 boot_logo 的数据加载。除此之外,还需要进行内存管理,调频,初始化相关硬件。
MBR:主引导记录,记录分区信息。
ROOTFS:主要存放内核(epos.img)与各种驱动文件。
UDISK:保存系统运行过程中需要保存的用户数据,包括音量、语言设置、音视频端点信息等。如其中setting.bin 文件。
SYSDATAFS:此分区默认未分配,需要使用需要自己添加,该分区主要存储用户自定义数据。
图35:
6.3.1.如何配置可配分区的大小
分区大小的配置。其中 BOOT0,BOOT1,MBR 三个分区已经固定写死不能修改,可以修改的是 ROOTFS和 UDISK。而 UDISK 分区大小是 NOR Flash 大小减去前面分区分配的容量,剩下的全部默认分配给 UDISK 分区。这两个分区的的配置主要是在 SDK/workspace/suniv/eFex/sys_config.fex 中主键 part_num,和 partition0。
如下图
图36:
如上图所示,修改 ROOTFS 分区需要修改步骤如下
- 修改 sys_config.fex 文件的主键 partition0,子健 size_lo 的值,单位为 Kbyte。
- 修改 SDK/workspace/suniv/beetles 路径下的 rootfs.ini 文件中的主键[IMAGE_CFG],子键 size 的大小,需要和第一步配置的大小一致。
图37:
- 计算出 udisk 分区大小,总容量-BOOT0-BOOT1-ROOTFS。即 8192K- 24K- 120K- 1K- 7919K =128K。将该值填入 SDK/workspace/suniv/beetles 路径下的 udisk.ini 文件中的主键[IMAGE_CFG],子键 size。
图38:
- 重新打包生成固件。即完成 rootfs 和 udisk 分区的大小修改。
6.4.存储介质开发
6.4.1. NOR Flash
NOR Flash 暂不支持根据物料信息来适配物料读写命令模式,目前是固定使用双线读,单线写的模式。
6.4.1.1.添加新 Nor Flash
在 sys_config.fex 添加新物料,如下所示:
图39:
除了在 sys_config.fex 添加新物料。还可以在代码里面添加新物料参数。
NOR Flash 驱动核心代码位于 eMod/drv_storages/spinor/spinor_drv/hal_spinor.c 中,需增加对新
物料的支持,可以在 spinor_info_set[] 数组中新增物料信息,如物料名称,jedec id,擦除块大小,容量等。不过在此处添加物料信息,如果物料不是 8MBit,在此处添加物料信息,有可能会出现烧录失败的现象,因此建议通过 sysconfig.fex 中添加新物料。
6.4.1.2.Nor Flash 保存用户数据
系统挂载的 udisk 和 sysdatafs 分区,当应用对这两个分区进行读写操作时,只是对内存数据进行操作,flash 里面数据时不会被修改,如果需要将修改的数据写进 flash 里,需要调用刷 flash 的接口。两个分区的保存流程接口是一样的,但参数存在一点差异,具体流程这里就不赘述,详情参考<<用户数据保存>>。
6.4.2. SDMMC Card
SDK 里面提供了两个 sdmmc 的驱动,sdmmc1 和 sdmmc2。其中 sdmmc 是对应我们平常 norflash 启动后插入的 sd 卡的驱动。sdmmc2 是对应卡启动的卡驱动。
-. 全志相关工具和资源
-.1 全志固件镜像修改工具 ImageModify.exe 下载
下载地址:
固件镜像修改工具 ImageModify.exe下载 ImageModify_20230906.rar
-.2 全志固件USB刷机工具 PhoenixSuit 下载
下载地址:
USB刷机工具 PhoenixSuit下载 PhoenixSuit_CN_V1.1.1_20230906.rar
-.3 全志Melis2.0 用户手册.pdf下载
下载地址:
全志Melis2.0 用户手册.pdf下载 documents_20230906_melis_v2.0.rar
-.4 全志melis2.0 sdk源码库下载
下载地址:
全志melis2.0 sdk源码库下载 melis2.0-sdk-release_20230906V2.0.rar