• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MATLAB 代码自动生成(二)program will not fit into available memory.run placement ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

接上一篇,浮点数超出界限的问题解决后,再次编译顺利编译通过,且顺利生成二进制代码,但在将代码烧录到F28335的过程中,提示"program will not fit into available memory.run placement with alignment/blocking fails …"
经过查看c28335.cmd是.ebss出了问题,.ebss是DSP用来存放全局变量和静态变量的地方,位于RAM中,从cmd文件中可以看到是使用的PAGE 1 上的一段名为RAML4L7的内存,起始地址是0xc000,长度为7000,既然不够那就增大吧,依次增大,不断编译看效果,当length修改为0x200000时才编译成功(程序有点大。。)

此时编译成功,且烧录DSP的过程中也没什么问题,但是烧录成功后DSP毫无反应。
初步怀疑是不是改大了.ebss的内存侵占了属于别的内存的地方,但是查看后没有内存互相侵占的地方,于是查看F28335手册,发现28335RAM有32KB大小,而改成的0x200000显然已超过了这一大小,所以编写虽然顺利通过,但是硬件资源根本不够,而RAML4L7这段内存也仅16KB大小。

查看修改过.ebss区域大小的程序的.map文件,可以看到RAML4L7使用了0x1d950e大小的内存,接近2M!所以想要解决这个问题要么精简算法,看能够以更小的内存运行,要么就外扩RAM。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DeployedcomponentGUIsandfigureshavedifferentlookandfeelthanMATLABdesktop发布时间:2022-07-18
下一篇:
MATLAB Coder从MATLAB生成C/C++代码步骤发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap