OpenHarmony在qemu仿真运行qemu_small_system_demo 类型,系统总内存大小只有1M多,怎么扩大?

liangzhijiang 显示全部楼层 发表于 2024-7-31 14:37:51

【问题描述】

  1. 介绍问题现象和发生的背景

    下载了源码 3.1release 版本后,hb set 选择 qemu_small_system_demo 类型编译,然后执行 hb build -f 可正常编译出镜像,并且 ./qemu-run 仿真运行。 执行free 指令发现总内存大小只有1M多。

  2. 运行结果、错误截图

    a65551af1ccf3f7ded9c1ca6cfdb2af.png

  3. 我尝试过的解决方法和结果

    我查看了vendor/ohemu/qemu_small_system_demo/qemu_run.sh文件启动参数,默认参数是-m 1G,即内存可以使用应该是1G,为什么实际只有1M多呢? 是系统显示错误吗?

【运行环境】

SDK版本:OpenHarmony3.1 release版本

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论2

润开鸿_闻飞

沙发 发表于 2024-8-8 09:05:37
启动参数中定义的确实是1G,你是在vmware中运行的Ubuntu还是物理机的Ubuntu?感觉像是系统解析错误

fengyunrenwu

板凳 发表于 2024-9-2 10:11:46
OH LiteOS_a内核free命令输出数据格式为:

total  used  free  heap  Mem:

问题截图free命令打印为“total  used  free  shared  buffers”,需确认使用的是否为liteos_a内核。

free命令的实现,在文件kernel\base\misc\mempt_shellcmd.c内,要首先确认是否打开了内核虚拟内存(LOSCFG_KERNEL_VM)特性,函数OsShellCmdFreelnfo先通过接口LOS_MemTotalUsedGet和LOS_MemPoolSizeGet,获取m_aucSysMem1内存池使用大小和总大小。

内存池m_aucSysMem1,通过内核接口OsSysMemlnit完成初始化,初始化大小为宏OS_KHEAP_BLOCK_SIZE(kernel/base/include/los_vm_boot.h内定义,大小为512k)

在开了VM特性以后,device_board_hisilicon/hispark_taurus/liteos_a/board/include/board.h,device_board_hisilicon/hispark_taurus/liteos_a/board/target_config.h内定义的宏
#define SYS_MEM_SIZE_DEFAULT 0x07f00000(127M)生效。

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部