1.适用范围
本文档主要介绍基于 SylixOS 的 RomFs 的使用方法。
2.准备工作
- SylixOS 硬件设备
- BSP 源码
- USB 转串口设备一个
3.操作步骤
1)在 BSP 中添加编译项 romfs.S;
拷贝文件 romfs.S 到 BSP 源码 SylixOS\bsp 目录下,在 Makefile 中增加编译项,如图 3.1所示。
图 3.1
2)在 BSP 中修改文件系统挂载点,如图 3.2所示。
图 3.2
这里将 /bin/、/apps/、/lib/、/usr/ 挂载到只读文件系统中,若有其他需求添加方法类似。
注意:这里不能添加 /etc/ 目录
3)在 bspInit.c 中 rootFsMap() 调用前调用如下内容:
/* * romfs 挂载物理卷 */ PLW_BLK_DEV pblkdRom; extern UCHAR __romfs_start, __romfs_end; UINT64 uiSize = &__romfs_end - &__romfs_start; uiSize = (uiSize < LW_CFG_MB_SIZE) ? LW_CFG_MB_SIZE : uiSize; ramDiskCreate(&__romfs_start, uiSize, &pblkdRom); API_RomFsDevCreate("/mnt/romfs", pblkdRom); |
4)在 SylixOSBSP.ld 中的 .text 部分最后添加如下内容:
. = ALIGN(8); PROVIDE (__romfs_start = .); *(.romfs) PROVIDE (__romfs_end = .); |
图 3.3
5)在 PC 上创建 romfs 目录,并创建 ROMFS 中需要包含的目录与文件,如图 3.4所示。
图 3.4
在 win 命令行使用 genromfs.exe 生成 ROMFS 镜像
> genromfs.exe -d ../romfs -f ../romfs.img
6)将生成的镜像放入到 BSP 目录 SylixOS\bsp 下
7)由于 ROMFS 内容会编译到代码段内,因此根据实际情况调整代码段大小以满足要求,如图 3.5所示。
图 3.5
8)重新编译 BSP 即可