重新规划beagleboard-xm内存分配

Starterware On Beaglebone Black(一) 环境搭建 一,Starterware版本 Starterware是ti提供的在AM335x平台上无系统运行的套件,虽然号称较为方便但是实际上使用过程中会发现其中的是用文档较为简单,讲述的没有那么的详细。 Starterware目前网站找得到的有两种版本,一种为官网下载的2.00.01.01版本,有一个是在sysbios_ind_sdk_2.1.0.1包里面的较为新的2.01.01.01版本,两者的区 阅读详情

最近做一个东西,需要对很大图像进行jpeg压缩。beagleboard-xm默认分配给cmem和dsp端heap的内存不够用,需要重新分配内存块。看了一下启动脚本和codec server中的内存分配脚本,很快找到了需要修改的地方。

1、首先需要修改的是启动参数

原来的启动参数是:

console=ttyS2,115200n8 noinitrd rw ip=192.168.10.101:192.168.10.100:192.168.10.1:255.255.255.0::usb0:off root=/dev/nfs nfsroot=192.168.10.100:/home/ubuntu/install/dm3730/targetfs,nolock,rsize=1024,wsize=1024mem=55M@0x80000000 mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:8Mmem=384M@0x88000000 omapfb.mode=dvi:hd720 omapdss.def_disp=dvi vram=8M rootwait camera=lbcm5m03

其中mem=384@0x88000000应该是分配给显卡的,omapfb.vram应该是显存吧?呵呵,我没看文档,不敢确定。反正我就盯上这块儿内存了,就从这里划出128M,修改启动参数为:

'console=ttyS2,115200n8 noinitrd rw ip=192.168.10.101:192.168.10.100:192.168.10.1:255.255.255.0::usb0:off root=/dev/nfs nfsroot=192.168.10.100:/home/ubuntu/install/dm3730/targetfs,nolock,rsize=1024,wsize=1024mem=55M@0x80000000 mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:8Mmem=256M@0x90000000 omapfb.mode=dvi:hd720 omapdss.def_disp=dvi vram=8M rootwait camera=lbcm5m03'

2、然后修改cmem的内存分配

在嵌入式文件系统里找到/etc/init.d/loadmodule-rc,可以看到这么一段注释:

# Default Memory Map for DM3730 EVM
#
# Start Addr    Size    Description
# -------------------------------------------
# 0x80000000     55 MB  Linux
# 0x83700000     34 MB  CMEM
# 0x85900000     39 MB  CODEC SERVER

这是默认的内存分配情况,0x80000000起始的55MB对应启动参数中的mem=55M@0x80000000,0x85900000起始的39MB是留给dsp程序的,划分给CMEM的是0x83700000起始的34MB。具体的分配工作是这个命令执行的:modprobe cmemk phys_start=0x83700000 phys_end=0x85900000 allowOverlap=1 useHeapIfPoolUnavailable=1

刚才不是从显存里剥削了128M内存空间出来么?现在把其中的一半交给cmem管理,也就是说cmem的大小为34+64=98MB,起始地址不变,还是0x83700000,而终止地址修为0x89900000,将脚本中的语句修改为modprobe cmemk phys_start=0x83700000 phys_end=0x89900000 allowOverlap=1 useHeapIfPoolUnavailable=1

3、最后来修改codec server也就是dsp端程序中的内存分配。

刚才说了,原始脚本将0x85900000起始的39MB分配给了dsp。说是“分配”,其实在arm和linux一端不需要任何操作,谁都不用这块儿内存,留给dsp享用就行啦。但是在dsp端就不能当甩手掌柜了,必须配置一下,要在codec server的.tcf文件里,按照现在的内存划分重新分配内存。这个tcf文件,就是单核dsp时代dsp/bios的配置文件,当年在ccs3.3下有图形化配置工具进行操作的。现在搞到linux底下,退化成需要手工编辑的脚本了,呵呵。其实也能图形化配置,需要花钱买ccs5 for linux版本的license,白花花的银子啊……

我这里的tcf没有直接写内存分配,而是包含了一个memmap.tci,类似.c包含.h,内存就是在这里面分配的。在哪都无所谓,给丫改过来就行啦!算法处理大图像,需要大heap,那么就把剩下的64M内存扔到heap里。也就是说需要修改的有两个内容,一个是dsp程序的起始地址,牵一发而动全身,这个地址变了,每个内存块儿的起始地址都得跟着变,再一个就是heap大小,找到heap的内存块,把那64M扔进去就OK了。

1、2、3都修改完之后,首先要重新编译codec server,然后再重新编译调用codec server的应用程序,都编译通过之后,用新的启动参数启动内核,把codec server和应用程序这俩货都拷贝到文件系统上,运行就OK啦!
玩转BeagleBoard xM——建立虚拟机开发环境和嵌入式Linux系统 在Beagleboard xM(简称bb)上建立能运行Linux系统,包括了创建启动用的TF卡,编译生成bootloader(MLO和u-boot.bin),编译生成内核镜像文件(uImage或zImage文件),创建rootfs(Linux根文件系统)等工作。这些工作需要在一台配置ARM交叉编译环境的Linux系统上完成。 下面分步完成整个系统的建立过程,直至Linux系统在bb上boot 阅读详情

相关推荐

BeagleBoard-xM系统参考手册

BeagleBoard的用户的手册,CFG格式的,请下载CFG格式的文档浏览器

beaglebone使用笔记(三):扩展内存或加载SD卡

Beaglebone系列教程(三):加载SD卡

qq_34588734的博客 1705

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1593

DM368 ubl和uboot的裁剪

转载:http://blog.youkuaiyun.com/olei_oleitao/article/details/7919307   一、DM36X的BOOT过程介绍 DM36x的BOOT过程和DM6446、DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上电复位后RBL在运行,然后读取BOOT MODE引脚的电平状态,决定

kylin_fire_zeng的专栏 1471

浮栅晶体管原理深度解析:热电子注入与FN隧穿如何实现1/0存储

本文深入解析了浮栅晶体管的工作原理,重点探讨了热电子注入与FN隧穿机制如何实现1/0存储。作为现代闪存芯片的核心技术,浮栅晶体管通过独特的结构设计实现非易失性存储,文章详细分析了其编程与擦除的物理过程,并对比了两种机制的优缺点,为闪存性能优化提供了理论基础。

weixin_30363285的博客 374

2021-8-14 EDK II编译

2021-8-14 EDK II 编译为什么要写这篇文章新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 为什么要写这篇文章 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdo

qq_45775660的博客 2948

BeagleBoard XM 开发板入手

老是在虚拟机上折腾总觉得不过瘾,希望可以找个ARM的开发板跑跑QNX,一方面可以真实感受QNX系统,另一方面也可以学习一下ARM架构。 经高人指点,决定选择BeagleBoard 开发板,有QNX的BSP,是ARM体系的,符合我的两个要求。 剩下的就是如何购买了,网上找了一轮,找到新出的BeagleBoard XM开发板,同时有扩展板,扩展板上有触摸屏,wifi模块,比较接近PlayBook的...

blogfeifei 309

AI应用架构师实战:半导体器件仿真AI智能体系统搭建

半导体器件仿真(如MOSFET、FinFET等)是芯片设计的核心环节,传统流程依赖专家手动调参、多物理场仿真引擎(如TCAD)耗时(小时级至天级)、经验难以沉淀,导致研发周期长、成本高。如何构建一个AI智能体系统,实现仿真任务的自动化调度、参数智能优化、结果分析与知识沉淀,成为提升半导体研发效率的关键挑战。

移动开发前沿的博客 1223

TI ARM+DSP异构多核通信机制

本文介绍了TI的ARM+C6000 DSP异构多核平台(如Davinci系列,OMAP3系列,OMAP-L系列)的通信机制,包括Codec Engine、IUNIVERSAL API、C6Accel、C6Run、RPMSG、RCM和OpenCL等。从底层的通信(CMEM+DSPLINK/SYSLINK)到高层的封装和构建系统。 Overview   本文介绍了TI的ARM+C60

yuyin86的专栏 9253

智启古文字新章:AI、ML与大数据驱动的知识图谱构建

摘要:本文聚焦AI、ML与大数据驱动的古文字知识图谱构建。开篇点明古文字研究困境,凸显技术革新迫切性。随后阐释AI、ML、大数据基础概念,详解其在图谱构建里的数据采集、知识抽取、关系挖掘运作流程,穿插线性代数、概率论等数学原理。实战展示殷商甲骨文图谱搭建全程,含数据处理、模型训练。还探讨跨模态融合等前沿挑战应对,兼述技术融合衍生的教育科普革新、伦理文化责任、国际合作交流,勾勒古文字数字永生的长远愿景。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1615

Holosoma 开源人形机器人强化学习训练部署框架

Holosoma是一个综合性人形机器人框架,支持强化学习策略的训练、部署和动作重定位。该框架兼容多种模拟器(IsaacGym、IsaacSim、MuJoCo等)和机器人(Unitree G1、Booster T1),提供运动控制和全身追踪功能。主要特性包括:跨模拟器训练评估、Wandb集成、多GPU支持、自定义奖励权重和观测噪声配置。推理模块支持实体机器人部署和MuJoCo仿真测试。动作重定位工具可将人体动作数据转换为机器人动作,支持单序列和批量处理。文档详细介绍了训练配置、评估方法和高级功能,如课程学习和

2506_90492529的博客 1829

硬件开源、全球最顶级的嵌入式开发板BeagleBoard –xM

TI旗下的BeagleBoard团队设计的BeagleBoard –xM是全球第一个硬件开源开发板,也是当前全球最强大的嵌入式开发板。其采用TI于2010年10月推出的DM3730作为核心处理器,该处理器内含一个主频1G的ARM Cortex A8和一个主频800M的TMS320C64+内核。同时还有2D/3D图形硬件加速模块。该板性能如下: 1、 硬件指标 P

bailang9757的专栏 3405

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

ubuntu下beagleboard-XM 挂载NFS服务

进行嵌入式 Linux 开发,NFS(Network FileSystem)方式应该是最常用的开发方式了。主机开启 NFS 服务,作为 NFS 服务器,目标板作为 NFS 客户端,目标板通过 NFS 方式,将主机 NFS 服务器目录挂载到本地系统,像操作本地文件一样操作远程机器的文件。对主机的要求,硬件方面,要求有串口和网口;软方面,操作系统推荐使用主流发行版,如 ubuntu 等,还需要安装开发

hhhhh89的博客 541

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 843

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在BeagleBoard-xM上引导Linux

BeagleBoard-xM简介 BeagleBoard是一个袖珍型参考板,其中包含德州仪器开放式多媒体应用平台(OMAP)3片上系统(SoC)处理器,其中包括ARM Cortex-A8内核,德州仪器C64x +数字信号处理器(DSP) ),板载图形引擎以及集成的双数据速率(DDR)随机存取存储器(RAM)。 对于学习Linux和小型系统的业余爱好者,学者和专业人士而言,BeagleBoa...

cuxiong8996的博客 705

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

基于Linux的BeagleBoard-xm终端开发环境搭建

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2012@gmail.com今天在处理一些android开发的问题时,找到了去年年初做的一个基于Beagleboard-xm的项目,有个文档当初整理的不错,这个分享给大家吧。 基于Linux的BeagleBoard-xm终端开发环境搭建 PC机Linux开发版本:ubuntu

天才之嵌入式 5951

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

在BeagleBoard上运行QNX系统(二)

在BeagelBoard上成功运行QNX系统后,本以为可以很快开始进一步的学习,没想到遇到麻烦的问题。又经过几天的努力才把问题弄清楚,下面继续记录折腾过程。 <wbr></wbr> 第一次成功地在BeagleBoard上运行QNX系统后首先注意到的问题是QNX系统不能够自动启动,需要在串口上运行装载ifs文件的命令才能启动。针对这个问题,需要研究一下u-boot如何自动...

blogfeifei 316

Beagleboard-xM Rev B 开发板探索 0.1

Beagleboard-xM 开发板探索故事背景板卡介绍概述Getting Start下载开发包安装虚拟机安装ti-sdk制作启动TF卡基本功能查看结束 故事背景 工作一段时间之后,发现其实自己的经验很匮乏。需要不断的向前辈学习。发博客什么的,我怕误人子弟。最近老大给了我一块Beagleboard-xM Rev B 开发板,再次燃起了心中的小火苗。 板卡介绍 这块板卡其实在现在来看非常弱,但是放在几年前,那时候还没有树莓派,就不一样了。 板卡的网址:https://beagleboard.org/beag

historyme 608

CMEM Overview

http://processors.wiki.ti.com/index.php/CMEM_Overview CMEM Overview Contents  [hide]  1 Introduction2 Development3 Configuration 3.1 Linux Configuration3.2 WinCE

one shot,one kill. 1169

【Linux启动命令行】介绍memmap

mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory<br /> Amount of memory to be used when the kernel is not able<br /> to see the whole system memory or for test.<br />

余璜的技术博客 9939

Loading and starting DSP server c6accel_omap3530.x64P FAILED

Loading and starting DSP server 'c6accel_omap3530.x64P' FAILED This question is answered Posted by Myosotis on Jun 25 2012 07:50 AM Intelle

linuxarmsummary的专栏 1571

Elasticsearch内存分配设置详解

Elasticsearch内存分配设置详解 Elasticsearch默认安装后设置的内存是1GB,对于任何一个现实业务来说,这个设置都太小了。如果你正在使用这个默认堆内存配置,你的集群配置可能会很快发生问题。 这里有两种方式修改Elasticsearch的堆内存(下面就说内存好了),最简单的一个方法就是指定ES_HEAP_SIZE环境变量。服务进程在启动时候会读取这个变量,并相应的设置堆的大小。设置命令如下: export ES_HEAP_SIZE=10g 此外,你也可以通过命令行参数的形式,在程序启动的

CatchCat的博客 1891

在BeagleBoard XM 开发板上运行Android

虽然购买BeagleBoard的最终目的是想在上面运行QNX系统,不过既然BeagleBoard板支持Androind而且ChipSee在附带的关盘里提供了Android系统,就先运行测试一下吧。 &lt;wbr&gt;&lt;/wbr&gt; 在BeagleBoard上运行Android就不像运行WinCE那么简单了,因为附带的测试SD卡里没有部署好的Android系统,需要自己做一张有An...

blogfeifei 221

DM6467T移植图像算法

DM6467T移植图像算法记录点滴 编译开发步骤: 在WINDOWS下: 1.将算法工程包导入到CCSV5.1 2.编译后生成.a64P文件(在工程目录C6000LIB下) 在LINUX的dvsdk(~/dvsdk_3_10_00_19/)下: 3.将产生的a.64P放到BScodecs下 (Bscodecs/packages/ti/sdo/codecs/bsalg/

自由枫~ 3974

JVM -Xmx内存设置超过物理内存问题思考

JVM -Xmx内存设置超过物理内存问题思考 文章目录JVM -Xmx内存设置超过物理内存问题思考问题提出理论思考1. 是否可以设置`-Xmx`超过物理内存?2. 是否可以将`-Xmx`设置的无限大?3. 当物理机内存耗尽时,会发生什么现象?4. JVM在堆内存不足和物理内存耗尽时会发生什么?5. JVM会因为临近物理内存大小而发生GC吗问题验证测试代码测试Xmx最大值WindowsLinux测试内存溢出开启SWAP情况下关闭SWAP情况下测试GC现象关闭Swap打开Swap其他说明 问题提出 JVM是否可

明谨的博客 9004
上一篇: 从培训致死到励志书盛行
下一篇: 改变DM6467的内存划分
此何人哉
博客等级 码龄20年 30粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值