系统每启动一个app会预先分配32M左右的虚拟内存,但是不进行映射,使用时才映射物理地址。
例如在FUXI-H2的bsp中,虚拟内存描述符如下:
默认配置的动态装载区(BSP_CFG_APP_SIZE)是256M。
如果是多个(比如10个)APP同时运行,需要同时分配 320M物理内容,虚拟地址不够,所以导致报错。
解决方法:适当修改,增加BSP中的动态装载区(BSP_CFG_APP_SIZE)容量大小。
参见文档“SylixOS上同时运行多个APP提示内存申请失败.docx”。
参考资料:
1.《SylixOS设备驱动程序开发.pdf》之“7.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