5310|13

26

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

编译提示内存不足怎么回事 [复制链接]

本帖最后由 夏侯 于 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, 下载次数: 21

map.docx

38.45 KB, 下载次数: 16

最新回复

   PRAML0     : origin = 0x008000, length = 0x000900    .text            : > PRAML0,    PAGE = 0 上面2条你在你的CMD文件中能看到。PRAML0只有2K多一点的空间,但是".text" size 0x2b12有9K多,肯定放不下。 可将 .text 放入flash中。CMD已修改,关注附件中的红色部分。 [attach]149930[/attach]   详情 回复 发表于 2014-5-19 12:54
 
点赞 关注

回复
举报

1万

帖子

25

TA的资源

裸片初长成(高级)

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

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

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

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

回复

2781

帖子

419

TA的资源

五彩晶圆(中级)

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

回复

2781

帖子

419

TA的资源

五彩晶圆(中级)

板凳
 



还可以改CMD文件

点评

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

回复

1万

帖子

139

TA的资源

版主

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

点评

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

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

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

点评

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

回复

26

帖子

0

TA的资源

一粒金砂(中级)

7
 

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

回复

26

帖子

0

TA的资源

一粒金砂(中级)

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

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

点评

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

回复

26

帖子

0

TA的资源

一粒金砂(中级)

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

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

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

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

这不是变量的设置问题。

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

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

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

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

点评

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

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

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

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

12
 
   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, 下载次数: 22)


点评

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

回复

26

帖子

0

TA的资源

一粒金砂(中级)

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

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

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

回复

26

帖子

0

TA的资源

一粒金砂(中级)

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

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

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

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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