TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5438A程序两种编译环境不能兼容?

在用IAR时可以正常工作,有时会出现堆栈溢出,但在ccs5.5编译器下提示:

error #10099-D: program will not fit into available memory. placement with alignment fails for section ".cinit" size 0x4dd .

Available memory ranges:

FLASH size: 0xa380 unused: 0x0 max hole: 0x0error #10010: errors encountered during linking; "DSJ89-100A.out" not built

这个问题会不会影响程序执行,该如何修改

HG:

两种编译器架构,工作方式,编译效率上都是不一样的。

当然会影响程序执行。.out文件没有生成没法下载运行啊。

这个错误翻译过来就是.cinit的大小是0x4dd,但是FLASH里unused的空间还有0x00,所以是满了放不进去了。

user3460585:

回复 HG:

我在官方的.cmd文件中发现有个flash和flash2,我的整个程序也不可能占用所有的flash,该如何调整?

灰小子:

回复 user3460585:

可以先试试修改优化选项,这两个开发环境默认的优化等级也不一样

user3460585:

回复 灰小子:

在IAR环境下,今天将程序改为最高优化选型,程序就不能正常运行了。运行时钟明显不对,求解?

灰小子:

回复 user3460585:

正常啊,最高优化级别改变的太多。调低一级优化选项试试

user3460585:

回复 灰小子:

降低一级的确可以运行,但是出现堆栈溢出,虽然IAR停止工作,但是我的程序仍然运行:程序中常量、全局变量和局部变量较多,如何确定程序需要的堆栈大小,而不让溢出?

灰小子:

回复 user3460585:

很久没用iar了,ccs有选项可以看到。
建议调整下堆栈大小试试,也可以尝试优化下代码,减小堆栈使用

user3460585:

回复 灰小子:

两个编译都可以设置堆栈大小,但是我怎么才能知道到底程序需要多少堆栈空间才能正常运行?

user3460585:

回复 灰小子:

这个内存分配我找到了,我的程序编译后显示

堆栈空间只有分配的大小,没有显示程序用了多少?

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A程序两种编译环境不能兼容?
分享到: 更多 (0)