3539|13

33

帖子

0

资源

一粒金砂(中级)

编译提示内存不足怎么回事

本帖最后由 夏侯 于 2014-5-20 08:43 编辑

"./lnk.cmd", line 48: error #10099-D: program will not fit into available
    memory.  placement with alignment fails for section ".text" size 0x2b12 .
    Available memory ranges:
    FLASH        size: 0x1000       unused: 0xe56        max hole: 0xe56   

CMD文件: .text            : > PRAML0,    PAGE = 0


后记:问题解决了,RAM中空间不够,可以在FLASH中运行,用Release模式,具体参见“C2000在FLASH中运行”的帖子,希望初学者别走我这菜鸟的路。。。

cmd.docx

14.53 KB, 下载次数: 15

map.docx

38.45 KB, 下载次数: 10


回复

1万

帖子

33

资源

裸片初长成(高级)

楼主把2b12 .的代码,放到 0x1000   的空间里,当然是不行的。

可以组织一下CMD文件,方法是,打开MAP文件,看看哪一段占多少空间,把它们调整一下就好了。

也或者,将CMD文件中的FLASH分的小块块化为一个大块。

关于CMD文件这方面的知识,可以参阅TI的《TMS320C28x Assembly Language Tools v6.1 User's Guide》

回复

3364

帖子

420

资源

五彩晶圆(中级)

有没有设置了编译优化?
个人签名

回复

3364

帖子

420

资源

五彩晶圆(中级)

捕获.PNG


还可以改CMD文件

点评

已经设置了编译优化,可还是存在这个错误  详情 回复 发表于 2014-5-19 09:53
个人签名

回复

1万

帖子

143

资源

版主

说明你程序中使用的内存超出了芯片的资源限制。可以先进行优化编译试试,但本质的办法是认为严格管理内存的使用,特别是尽量减少不必要的全局变量。

点评

恩恩,我检查一下是不是有不必要的变量  详情 回复 发表于 2014-5-19 10:03
个人签名上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang

回复

1万

帖子

33

资源

裸片初长成(高级)

或者,楼主把你的MAP文件和CMD文件发上来看看,

点评

已发,我再看看变量设置有没有问题  详情 回复 发表于 2014-5-19 10:01

回复

33

帖子

0

资源

一粒金砂(中级)


已经设置了编译优化,可还是存在这个错误

回复

33

帖子

0

资源

一粒金砂(中级)

dontium 发表于 2014-5-19 00:38
或者,楼主把你的MAP文件和CMD文件发上来看看,

已发,我再看看变量设置有没有问题

点评

这不是变量的设置问题。 看来,你对CMD文件的使用还不太清楚。 根据你的MAP文件看,没有用到FALSH,只用到了RAM,当程序稍大时,就不能只在 “ RAM ” 中运行了。 我写的关于C2000的“ 在FALSH里运行 ” 的  详情 回复 发表于 2014-5-19 11:40

回复

33

帖子

0

资源

一粒金砂(中级)

chunyang 发表于 2014-5-18 23:05
说明你程序中使用的内存超出了芯片的资源限制。可以先进行优化编译试试,但本质的办法是认为严格管理内存的 ...

恩恩,我检查一下是不是有不必要的变量

回复

1万

帖子

33

资源

裸片初长成(高级)

夏侯 发表于 2014-5-19 10:01
已发,我再看看变量设置有没有问题

这不是变量的设置问题。

看来,你对CMD文件的使用还不太清楚。

根据你的MAP文件看,没有用到FALSH,只用到了RAM,当程序稍大时,就不能只在 “ RAM ” 中运行了。

我写的关于C2000的“ 在FALSH里运行 ” 的文章等,你可以搜一下。

顺便说一声,发MAP文件时,可以压缩后上传。

点评

按照FLASH运行的步骤试了一下就编译成功了,多谢多谢  详情 回复 发表于 2014-5-19 16:28

回复

3001

帖子

260

资源

五彩晶圆(高级)

".text" size 0x2b12 超过4K,28027 RAM总共6K,但不连续。0x0000~0x0800占2K,0x8000~0x9000占4K。

回复

3001

帖子

260

资源

五彩晶圆(高级)

   PRAML0     : origin = 0x008000, length = 0x000900

   .text            : > PRAML0,    PAGE = 0
上面2条你在你的CMD文件中能看到。PRAML0只有2K多一点的空间,但是".text" size 0x2b12有9K多,肯定放不下。
可将 .text 放入flash中。CMD已修改,关注附件中的红色部分。
MEMORY.docx (14.54 KB, 下载次数: 19)

点评

在FLASH中运行了一下就编译成功了,多谢多谢  详情 回复 发表于 2014-5-19 16:27

回复

33

帖子

0

资源

一粒金砂(中级)

ltbytyn 发表于 2014-5-19 12:54
PRAML0     : origin = 0x008000, length = 0x000900

   .text            : > PRAML0,    PAGE = 0
...

在FLASH中运行了一下就编译成功了,多谢多谢

回复

33

帖子

0

资源

一粒金砂(中级)

dontium 发表于 2014-5-19 11:40
这不是变量的设置问题。

看来,你对CMD文件的使用还不太清楚。

按照FLASH运行的步骤试了一下就编译成功了,多谢多谢

回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/3 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表