海思SS928(SD3403)内存地址空间分配和使用

说明

所有 DDR 内存中,一部分由操作系统管理,称为 OS 内存;另一部分由 MMZ 模块管理,供媒体业务单独使用,称为 MMZ 内存。具体描述参考《SS928V100 SDK 安装以及升级使用说明.pdf》的“第5部分 地址空间分配与使用”。

通过查看"/proc/meminfo"文件的内容:

MemTotal:          87384 kB
MemFree:           23760 kB
MemAvailable:      21016 kB
Buffers:             228 kB
Cached:            15296 kB
SwapCached:            0 kB
... ...

可以看到,硬件一共有8G内存。

OS

通过检查文件"/proc/iomem"的内容,可以看到linux kernel占用的内存空间:

... ...
17c00000-17c0ffff : aiao
17c40000-17c4ffff : acodec
50000000-57ffffff : System RAM
  50080000-5096ffff : Kernel code
  50970000-509cffff : reserved
  509d0000-50a78fff : Kernel data
  52000000-52005fff : reserved
  52fff000-54a00fff : reserved
  56800000-569fffff : reserved
  56bd9000-579fffff : reserved
  57b54000-57bd7fff : reserved
  57bda000-57bdafff : reserved
  57bdb000-57bf6fff : reserved
  57bf7000-57bfefff : reserved
  57bff000-57bfffff : reserved
  57c00000-57ffffff : reserved

可以看到OS内存从地址0x50000000~0x57ffffff,与uboot变量"bootargs=mem=xxx"一致。

使用dmesg命令查看板子的启动日志,其中也有内存的使用情况:

... ...
Memory limited to 128MB
... ...
Memory: 82904K/141284K available (7358K kernel code, 384K rwdata, 1760K rodata, 384K init, 267K bss, 54284K reserved, 4096K cma-reserved)

修改内存的开始地址,需要修改编译环境中”./ss928v100_sdk/SS928V100_SDK_V2.0.2.1/open_source/linux/linux-4.19.y/arch/arm64/boot/dts/vendor/ss928v100-demb.dts“

memory {
                device_type = "memory";
                reg = <0x0 0x50000000 0x1 0xf0000000>; /* system memory base */
        };

0x50000000是起始物理地址;0xf0000000表示内存区域的大小,以字节为单位,转换成十进制大约是4000MB(或4GB)。

修改内存的大小,需要修改uboot变量。

MMZ

通过检查文件”/proc/umap/media-mem"的内容,可以看到MMZ占用的内存空间:

+---ZONE: PHYS(0x70000000, 0x13FFFFFFF), GFP=0, nBYTES=3407872KB,    NAME="anonymous"
   |-MMB: phys(0x70000000, 0x70011FFF), kvirt=0xFFFFFF800BE80000, flags=0x00000001, length=72KB,    name="sys_scale_coef"
   |-MMB: phys(0x70012000, 0x7006DFFF), kvirt=0x00000000, flags=0x00000000, length=368KB,    name="tde_mem_pool_mmb"
   |-MMB: phys(0x7006E000, 0x700C2FFF), kvirt=0xFFFFFF800C200000, flags=0x00000001, length=340KB,    name="gdc_node_buf"
   |-MMB: phys(0x700C3000, 0x700C3FFF), kvirt=0xFFFFFF8008EED000, flags=0x00000001, length=4KB,    name="gdc_int_pole_coef"
   |-MMB: phys(0x700C4000, 0x701E9FFF), kvirt=0xFFFFFF800C600000, flags=0x00000001, length=1176KB,    name="vgs_node_buf"
   |-MMB: phys(0x701EA000, 0x701EAFFF), kvirt=0xFFFFFF8008EFD000, flags=0x00000001, length=4KB,    name="vgs_mcf_sum"
   |-MMB: phys(0x701EB000, 0x701EBFFF), kvirt=0xFFFFFF8008F15000, flags=0x00000001, length=4KB,    name="dis_node_buf"
   |-MMB: phys(0x701EC000, 0x701ECFFF), kvirt=0xFFFFFF8008F65000, flags=0x00000001, length=4KB,    name="vo_coef_buf"
   |-MMB: phys(0x701ED000, 0x72190FFF), kvirt=0x00000000, flags=0x00000000, length=32400KB,    name="gfbg_layer0"
   |-MMB: phys(0x72191000, 0x73162FFF), kvirt=0x00000000, flags=0x00000000, length=16200KB,    name="gfbg_layer1"
   |-MMB: phys(0x73163000, 0x73557FFF), kvirt=0x00000000, flags=0x00000000, length=4052KB,    name="gfbg_layer3"
   |-MMB: phys(0x73558000, 0x73567FFF), kvirt=0xFFFFFF800CD90000, flags=0x00000001, length=64KB,    name="gfbg_coef"
   |-MMB: phys(0x73568000, 0x73568FFF), kvirt=0xFFFFFF8008F75000, flags=0x00000001, length=4KB,    name="gfbg_clut_table_g3"
   |-MMB: phys(0x73569000, 0x73569FFF), kvirt=0xFFFFFF8008F7D000, flags=0x00000001, length=4KB,    name="gfbg_clut_table_g4"
   |-MMB: phys(0x7356A000, 0x73589FFF), kvirt=0x00000000, flags=0x00000000, length=128KB,    name="vedu_hal_0"
   |-MMB: phys(0x7358A000, 0x735BEFFF), kvirt=0xFFFFFF8010980000, flags=0x00000001, length=212KB,    name="ive_queue"
   |-MMB: phys(0x735BF000, 0x735BFFFF), kvirt=0xFFFFFF8008FA5000, flags=0x00000003, length=4KB,    name="ive_tmp_node"
   |-MMB: phys(0x735C0000, 0x735DFFFF), kvirt=0xFFFFFF8010A80000, flags=0x00000001, length=128KB,    name="svp_mau_queue"
   |-MMB: phys(0x735E0000, 0x737DFFFF), kvirt=0xFFFFFF8011600000, flags=0x00000001, length=2048KB,    name="cq_base"
   |-MMB: phys(0x737E0000, 0x737E1FFF), kvirt=0xFFFFFF800C29C000, flags=0x00000001, length=8KB,    name="sq_static_info"

---MMZ_USE_INFO:
 total size=3407872KB(3328MB),used=57224KB(55MB + 904KB),remain=3350648KB(3272MB + 120KB),zone_number=1,block_number=20

修改MMZ的开始地址和大小,需要修改编译环境中”ss928v100_sdk/SS928V100_SDK_V2.0.2.1/osdrv/rootfs_scripts/A393_ss928_ubi_rootfs/rootfs_glibc_arm64/ko/load_ss928v100“文件的内容:

#DDR start:0x40000000, IPCM(2M); DSP(62M); MCU(192M); kernel start:0x50000000,  OS(512M); MMZ start:0x70000000
mem_total=4096                # 4096M, total mem
mem_start=0x40000000          # phy mem start
ipcm_mem_size=2               # 2M, ipcm mem
dsp_mem_size=62               # 62M, dsp mem
mcu_mem_size=192              # 192M, mcu mem
os_mem_size=512               # 512M, os mem

mmz_start=0x70000000;         # mmz start addr
mmz_size=3328M;               # 3328M, mmz size

reserve_mem_size=0            # 0M, reserve mmz size

注意:这里的mmz_startmmz_size只是初始值,后面的函数calc_mmz_info会根据上面的其他值重新计算这两个变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/774614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

昇腾910B部署Qwen2-7B-Instruct进行流式输出【pytorch框架】NPU推理

目录 前情提要torch_npu框架mindsport框架mindnlp框架 下载模型国外国内 环境设置代码适配&#xff08;非流式&#xff09;MainBranch结果展示 代码适配&#xff08;流式&#xff09; 前情提要 torch_npu框架 官方未适配 mindsport框架 官方未适配 mindnlp框架 官方适配…

add_metrology_object_generic 添加测量模型对象。找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

*添加测量模型对象 *将测量对象添加到测量模型中 *算子参数&#xff1a; *    MeasureHandle&#xff1a;输入测量模型的句柄&#xff1b; *    Shape&#xff1a;输入要测量对象的类型&#xff1b;默认值&#xff1a;‘circle’&#xff0c;参考值&#xff1a;‘circl…

淘宝扭蛋机小程序:打造新的扭蛋体验

扭蛋机行业近年来发展非常迅速&#xff0c;呈现出了明显的增长势头&#xff0c;深受年轻消费者的青睐。当下在消费市场中&#xff0c;年轻人占据了很大的份额&#xff0c;这也推动了扭蛋机市场的发展。如今&#xff0c;扭蛋机也正在向多个方向发展&#xff0c;不再局限于线下扭…

如何利用代理IP打造热门文章

作为内容创作者&#xff0c;我们都知道&#xff0c;有时候地理限制和访问障碍可能会成为我们获取新鲜素材和优质信息的障碍。使用代理IP&#xff0c;正是突破这些限制的好方法&#xff01; 1. 无缝获取全球视野 如果你还在苦恼看不到其他地区的热点文章&#xff0c;你可以尝试…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代&#xff0c;信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及&#xff0c;企业面临着越来越多的信息安全威胁和挑战&#xff0c;如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁&#xff0c;企业…

docker集群部署主从mysql

搭建一个mysql集群&#xff0c;1主2从&#xff0c;使用docker容器 一、创建docker的mysql镜像 下次补上&#xff0c;因为现在很多网络不能直接pull&#xff0c;操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架&#xff0c;它提供了一种新的开发方式和更好的性能体验&#xff0c;帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是&#xff1a;Astro这个是一个网站生成器&#xff0c;可以直接…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发&#xff1a;助手还是取代者&#xff1f; 生成式人工智能&#xff08;AIGC&#xff09;正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试&#xff0c;AI工具在提高开发效率的同时&#xff0c;也引发了对开发者职业前景的讨论…

标贝语音识别在智能会议系统的应用案例

语音识别是指将语音信号转换成文本或者其他数字信号形式的过程&#xff0c;随着人工智能在人们日常工作生活中的普及&#xff0c;语音识别技术也被广泛的应用在智能家居、智能会议、智能客服、智能驾驶等领域&#xff0c;以语音识别技术在智能会议系统中的应用为例&#xff0c;…

【读点论文】基于二维伽马函数的光照不均匀图像自适应校正算法

基于二维伽马函数的光照不均匀图像自适应校正算法 摘 要:提出了一种基于二维伽马函数的光照不均匀图像自适应校正算法.利用多尺度高斯函数提取出场景的光照分量,然后构造了一种二维伽马函数,并利用光照分量的分布特性调整二维伽马函数的参数,降低光照过强区域图像的亮度值,提高…

服务器U盘安装Centos 7时提示Warning:/dev/root does not exist

这是没有找到正确的镜像路径导致的&#xff0c;我们可以在命令行输入ls /dev看一下有哪些盘符 像图中红色圈起来的就是我插入U盘的盘符&#xff0c;大家的输几盘可能做了多个逻辑盘&#xff0c;这种情况下就可以先将U盘拔掉再ls /dev看一下和刚才相比少了那两个盘符&#xff0c…

Redis高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过…

空调计费系统是什么,你知道吗

空调计费系统是一种通过对使用空调的时间和能源消耗进行监测和计量来进行费用计算的系统。它广泛应用于各种场所&#xff0c;如家庭、办公室、商场等&#xff0c;为用户提供了方便、准确的能源使用管理和费用控制。 可实现功能 智能计费&#xff1a;中央空调分户计费系统通过智…

光电液位传感器在宠物洗澡机的应用

光电液位传感器在宠物洗澡机中的应用&#xff0c;为洗澡机的智能化管理提供了重要支持和保障。这种先进的传感技术不仅提升了设备的操作便捷性&#xff0c;还大幅度提高了洗澡过程的安全性和效率。 宠物洗澡机作为宠物护理的重要设备&#xff0c;其水位的控制至关重要。光电液…

SD16S1Y 符合GB2312标准16X16点阵汉字库芯片IC

一般概述 SD16S1Y是一款内含16x16点阵的汉字库芯片&#xff0c;支持GB2312国标简体汉字(含有国家信标委 合法授权)、ASCII字符。排列格式为竖置横排。用户通过字符内码&#xff0c;利用本手册提供的方法计算出 该字符点阵在芯片中的地址&#xff0c;可从该地址连续读出字…

STM32/GD32驱动步进电机芯片TM2160

文章目录 官方概要简单介绍整体架构流程 官方概要 TMC2160是一款带SPI接口的大功率步进电机驱动IC。它具有业界最先进的步进电机驱动器&#xff0c;具有简单的步进/方向接口。采用外部晶体管&#xff0c;可实现高动态、高转矩驱动。基于TRINAMICs先进的spreadCycle和stealthCh…

以太网协议介绍——UDP

注&#xff1a;需要先了解一些以太网的背景知识&#xff0c;方便更好理解UDP协议、 以太网基础知识一 以太网基础知识二 UDP协议 UDP即用户数据报协议&#xff0c;是一种面向无连接的传输层协议&#xff0c;属于 TCP/IP 协议簇的一种。UDP具有消耗资源少、通信效率高等优点&a…

第二届计算机、视觉与智能技术国际会议(ICCVIT 2024)

随着科技的飞速发展&#xff0c;计算机、视觉与智能技术已成为推动现代社会进步的重要力量。为了汇聚全球顶尖专家学者&#xff0c;共同探讨这一领域的最新研究成果和前沿技术&#xff0c;第二届计算机、视觉与智能技术国际会议&#xff08;ICCVIT 2024&#xff09;将于2024年1…

从海上长城到数字防线:视频技术在海域边防现代化中的创新应用

随着全球化和科技发展的加速&#xff0c;海域安全问题日益凸显其重要性。海域边防作为国家安全的第一道防线&#xff0c;其监控和管理面临着诸多挑战。近年来&#xff0c;视频技术的快速发展为海域边防场景提供了新的解决方案&#xff0c;其高效、实时、远程的监控特点极大地提…

【稳定检索/投稿优惠】2024年教育、人文发展与艺术国际会议(EHDA 2024)

2024 International Conference on Education, Humanities Development and Arts 2024年教育、人文发展与艺术国际会议 【会议信息】 会议简称&#xff1a;EHDA 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国北京 会议官网&#…