请问大家:在ICC编译时出现这样一句: (182): area 'bss' not large enough???
请问大家:在ICC编译时出现这样一句: <library>(182): area 'bss' not large enough,有哪位朋友知道是什么意思啊? 程序超过单片机容量了,用ICC的压缩功能优化试一下。 没超过,只占29%,,现在搞掂了。。。谢谢你回答 应该是SRAM溢出,SRAM有二种,1.date,2.bss,其中bss表示程序中未初试化过的C全局变量,硬件会自动初试化为零,而date是程序中初试化过的C全局变量. 如果出现: area 'data' not large enough 应该怎样处理啊?? 很有可能是把表之类的东东放到SRAM里了,应该加const,放到flash里. ICC应该怎样写? 搞掂,谢谢跟贴的朋友 回复【7楼】denis0750-----------------------------------------------------------------------
很想知道怎么搞定的。。。 我遇到这个问题 也搞定了
个人理解为ram不够用了 报的错
没有验证对错
条件:mega16 icc
编到一定程度:隐藏一部分就是74% 不隐藏就报这个错误
分析:不可能是flash不够因为隐藏的代码很短
但是隐藏的代码里有 U0_Prints("××××××") ;uart_tran('\n');
其中××××大家是知道的 方便串口直观调试嘛
于是将所有为调试方便的串口发送信息 屏蔽
结论: ok了
扩展:太多了 打字打不过来 回楼主,可以在一些不变的数组前加__flash iccacr 7.22 中默认const 放进ram的把原先const改成__flash试试 {:handshake:}
页:
[1]