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

vsprintf在C2000 Code Generation Tools 6.1.0中不能用啊!

C2000 Code Generation Tools 6.0.1中调试好的程序换成C2000 Code Generation Tools 6.1.0发现程序卡在vsprintf上走不下去了!怎么回事呢!

Young Hu:

编译有没有错误?

引用stdio.h试试呢

C2000 Code Generation Tools 6.0.1中调试好的程序换成C2000 Code Generation Tools 6.1.0发现程序卡在vsprintf上走不下去了!怎么回事呢!

jinwei guo1:

编译没有错误!我是单步运行到这个函数就跑飞了!

C2000 Code Generation Tools 6.0.1中调试好的程序换成C2000 Code Generation Tools 6.1.0发现程序卡在vsprintf上走不下去了!怎么回事呢!

jinwei guo1:

原因找到了!

.stack              : > RAMM1       PAGE = 1

在这一句中,我将.stack定义在RAMM1中,RAMM1大小是0x400,我工程map文件中显示只使用了0x200按说没事,

但是当我改成

.stack              : > RAML0       PAGE = 1

时,问题就没有了!vsprintf就能运行了!

唯一的区别是RAML0大小是0x800

是 我想的stack超出了吗? 还是有别的原因!

有些后悔 选用TI的CPU了!

C2000 Code Generation Tools 6.0.1中调试好的程序换成C2000 Code Generation Tools 6.1.0发现程序卡在vsprintf上走不下去了!怎么回事呢!

Eric Ma:

回复 jinwei guo1:

jinwei,

不知道你是不是定义了一个字符串变量,而且是局部变量的,当这个字符串赋给的字符过长的时候,就有可能会导致stack不够,因为局部变量就是放在stack中的。

这并不是芯片的问题,而是程序编写的问题。

 

Eric

C2000 Code Generation Tools 6.0.1中调试好的程序换成C2000 Code Generation Tools 6.1.0发现程序卡在vsprintf上走不下去了!怎么回事呢!

jinwei guo1:

回复 Eric Ma:

stack不够怎么编译时再map文件里体现不出来呀!再说我只是从RAMM0改到RAML0就行了!

肯定不是CPU的原因,但是编译器是有问题吧!整个CCS只有eclipse平台的优点,TI自己加的东西都不怎么样!

赞(0)
未经允许不得转载:TI中文支持网 » vsprintf在C2000 Code Generation Tools 6.1.0中不能用啊!
分享到: 更多 (0)