ssd201/202 软硬件开发 释放内存

项目场景:

ssd201/202 软硬件开发


问题描述

SSD201内因内存64MB
官方的源码编译,LINUX启动后内存只有45MB左右,其他内存哪里了?

原因分析:

原厂具有MMA的空间(mma_heap=mma_heap_name0,miu=0,sz=0xa00000 )
MMA空间作用,为原厂的MI(Display)模块提供专用的空间;
由于我自己设计的产品不需要使用LCD所以可以直接去除MMA空间;

解决方案:

方法一、:
直接UBOOT里修改env中的bootargs值直接删除“mma_heap=mma_heap_name0,miu=0,sz=0xa00000 ”
删除后:
bootargs=console=ttyS0,115200 ubi.mtd=UBI,2048 root=ubi:rootfs rw rootfstype=ubifs init=/linuxrc rootwait=1 LX_MEM=0x3f00000 mma_memblock_remove=1 highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x3300000,max_end_off=0x3600000 mtdparts=nand0:384k@1280k(IPL0),384k(IPL1),384k(IPL_CUST0),384k(IPL_CUST1),768k(UBOOT0),768k(UBOOT1),256k(ENV),256k(ENV1),0x20000(KEY_CUST),0x60000(LOGO),0x500000(KERNEL),0x500000(RECOVERY),-(UBI)
方法二:在源码修改、配置文件

vi project/configs/nvr/i2m/8.2.1/spinand.glibc.011a.64(201)

vi project/configs/nvr/i2m/8.2.1/spinand.glibc.011a.128(202)

CHIP = i2m
BOARD = 011A
BOARD_NAME = SSC011A-S01A
PRODUCT = nvr
TOOLCHAIN = glibc
TOOLCHAIN_VERSION = 8.2.1
KERNEL_VERSION = 4.9.84
LIBC = libc-2.28
BUSYBOX = busybox-1.20.2-arm-linux-gnueabihf-glibc-8.2.1-dynamic
KERNEL_CONFIG = glibc
IMAGE_CONFIG = spinand.ubifs.p2.partition.config
CUSTOMER_OPTIONS = 011a.201_options.mk
CUSTOMER_TAILOR = nvr_i2m_display_glibc_tailor.mk
MMAP = MMAP_I2M_64M.h
MHAL = i2m
MERGE_BOOT = TRUE
BOOTLOGO_FILE = sigmastar1024_600.jpg
BOOTLOGO_ADDR = E_LX_LOGO_RESERVED_FB
DISP_OUT_NAME = CC0702I50R
EXBOOTARGS =
KERNEL_BOOT_ENV = LX_MEM=$(KERNEL_MEMLEN) mma_heap=mma_heap_name0,miu=0,sz=0x00000 mma_memblock_remove=1 highres=off

修改后,发现系统启动后报错,主要问题是MI模块加载时MMA没有空间了。所以要把关闭MI模块启动。源码中直接demo.sh所有MI模块加载启动脚本都删除后就OK了
#insmod /config/modules/4.9.84/mi_sys.ko cmdQBufSize=128 logBufSize=0
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_sys c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_gfx.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_gfx c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_divp.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_divp c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_vdec.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_vdec c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_ao.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_ao c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_disp.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_disp c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_ipu.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_ipu c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_ai.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_ai c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_venc.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_venc c $major $minor

let minor++

fi

#insmod /config/modules/4.9.84/mi_panel.ko
if [ $? -eq 0 ]; then

busybox mknod /dev/mi_panel c $major $minor

let minor++

fi

这样内存就变大:
在这里插入图片描述

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值