3516开发板liteos-a分区详解
之前通过tftp或ftp往板子中拷贝文件,总是出现拷贝不成功的时候,后来发现原来时磁盘满了,可以3516的mmc容量好几个G,怎么会满,其实只是磁盘分区满了,存不下文件了,所以本文介绍一下3516的lite-a的分区情况。
1 liteos-a的mount命令不能查看分区信息,只能挂载分区,但是toybox下的mount命令可以查看分区,分区显示如下,
主要包括三个分区,根目录,storage和userdata
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s5.51cto.com/oss/202112/29/de660cfde48a6b4ce53e924ac273264f.jpg)
partinfo可以查看各个分区的总大小:
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s6.51cto.com/oss/202112/29/2f22ec253c133a079d2c47dd1e29bc98.jpg)
看到这个好多人会蒙,这到底是多大容量啊,这个容量指的是有多少块,我们可以换算成多少M,每块多大我们看一下代码,在版本3.0中这个目录是存放liteos-a相关的分区加载信息的
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s4.51cto.com/oss/202112/29/64c356d1e34194b42020e75ce0998d52.jpg)
EMMC_SEC_SIZE这个参数值为512,所以根目录大小是38912块,换算成字节是38912*521=19,922,944字节,也就是19M,
转成16进制为130 0000,代码中有个宏
#define ROOTFS_SIZE 0x1400000 正是根目录的文件系统的大小
#define USERFS_SIZE 0x3200000,目录storage大小为50M
userdata大小为剩余空间大小是7380M,注意总体大小不是她们的和因为uboot和一些参数也要分走一部分空间的,这三个分区只是操作系统的。
2 根目录的分区大小在代码中的设置方式是先从uboot启动参数获取,如果获取不到,采用默认值19M,hitool烧录的分区设置如下:
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s3.51cto.com/oss/202112/29/320a5617356ec3df1d916cfcff63f8f7.jpg)
注意我们一定要设置好烧录参数的分区大小和uboot启动参数的分区,如果弄错会出现启动问题,有些目录会不可用,
启动参数和烧录见文章3516开发板window上HiTool工具USB烧录三种固件总结
3 简单过一下代码流程
OsMountRootfs为主函数,先读取uboot设置的参数,然后mount分区,参数包括root,fstype,rootaddr,rootsize和ro,
调用AddPartitions(dev, rootAddr, rootSize, userAddr, userSize)设置分区大小,三个分区开始地址和大小计算如下:
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s4.51cto.com/oss/202112/29/51c5e0d866050966c9f9ade43b3a2ad2.jpg)
![#星光计划2.0#3516开发板liteos-a分区详解-鸿蒙HarmonyOS技术社区](https://s6.51cto.com/oss/202112/29/79541286a44153dd3c9dd4533f9c8ea0.jpg)
其中add_mmc_partition和los_disk_init是驱动中的函数,最后调用函数MountPartitions(fstype, mountFlags);
fstype代表文件系统类型,mountFlags代表分区加载方式,主要是ro只读和rw可读写。
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的