打印

求助:DSP有时会就无法编译通过?神马状况?

[复制链接]
1935|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
langcer|  楼主 | 2011-4-26 00:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

CCS3.3+XDS510+2812

为了调试方便,参考网上写了个myprintf()函数。测试程序在电脑上已经完美运行。
参考:http://blog.csdn.net/guijiewan/archive/2010/04/08/5461600.aspx
但是测试程序在DSP中有时能编译通过,有时就会如上图所示,出现错误。
经过多次测试,发现用myprintf()连续多次输出字符串%s或浮点%f时会出错
本人新接触DSP菜鸟,盼高手解答

相关帖子

沙发
aresc| | 2011-4-26 21:41 | 只看该作者
第一个error是说RAML0那个存储空间里能用的有效的空闲size是0x1b8个字节,但你的程序编完了之后需要0x238字节. 你可以把RAML0的空间加大,或者把.econst的一部分放到其他的section里.

但想不通为什么有时候能编,有时候不能编? 如果不改程序的话,按理都不能编啊.

使用特权

评论回复
板凳
langcer|  楼主 | 2011-4-28 00:18 | 只看该作者
刚开始用DSP,对.cmd还不是很理解。
我个人初步怀疑可能是主程序里面用的静态字符串太多了,超出econst规定的范围了。

测试程序中如下能够编译通过:
myprintf(“printf test begin!”);
myprintf(“string:%s”,"string");
myprintf(“int:%d”,999);
myprintf(“int:%f”,3.14159);

但是如果在在程序中加入一句类似下面的语句就会编译通不过
myprintf(“printf test over!”);
myprintf(“int:%f”,9.87654);

调用函数一次跟多次有神马区别啊,困惑?

使用特权

评论回复
地板
huangxz| | 2011-4-28 08:18 | 只看该作者
正解,是RAML0空间不够了,在RAM中仿真很多时候都会遇到这个问题,因为在RAM一般都比较小,建议直接在watch中看变量的值,不要输出到串口,这样可以节约空间。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

109

帖子

1

粉丝