SylixOS上同时运行多个APP提示内存申请失败

SylixOS上同时运行多个APP提示内存申请失败

问:SylixOS上同时运行多个APP提示内存申请失败,怎样解决?
答: SylixOS 中,所有动态加载的对象,如内核模块、动态链接库、应用程序所使用的内存都来自于虚拟内存空间。虚拟内存空间以页为单位进行管理,对象加载时,只会获得虚拟页面,只有在真正使用时,才会进行物理页面的分配。

系统每启动一个app会预先分配32M左右的虚拟内存,但是不进行映射,使用时才映射物理地址。

例如在FUXI-H2bsp中,虚拟内存描述符如下:




默认配置的动态装载区(BSP_CFG_APP_SIZE)是256M

如果是多个(比如10个)APP同时运行,需要同时分配 320M物理内容,虚拟地址不够,所以导致报错。

解决方法:适当修改,增加BSP中的动态装载区(BSP_CFG_APP_SIZE)容量大小。

参见文档SylixOS上同时运行多个APP提示内存申请失败.docx”。

参考资料:

1.SylixOS设备驱动程序开发.pdf7.7.4 虚拟内存管理简介”

2. TN0020010315_SylixOS SylixOS龙芯上虚拟内存申请问题总结

[https://desk.zoho.com.cn/support/sylixos/ShowHomePage.do#Solutions/dv/4822000000608571/zh]

3. /libsylixos/SylixOS/vpmpdm/vpmpdm.c