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自己加的东西都不怎么样!