C -无法在内部RAM中获取区域DSEG的连续字节

C -无法在内部RAM中获取区域DSEG的连续字节,c,printf,8051,C,Printf,8051,在sdcc中实现此代码。然而,使用sprintf函数后,我得到了一个ASlink错误:无法在区域DSEG的内部RAM中获得127个连续字节 有人能帮我纠正一下吗 我需要将整数值转换为字符串以在lcd上显示。不要使用sprintf()-您的控制器有足够的RAM来运行烤箱,仅此而已 如果您需要在LCD上输出int/longint,请使用printf/putchar或某些专用循环(不是递归-您没有用于它的堆栈),该循环逐字符生成整数字符的字符串表示,并将其发送到显示字符,因此,避免使用您负担不起的RA

在sdcc中实现此代码。然而,使用sprintf函数后,我得到了一个ASlink错误:无法在区域DSEG的内部RAM中获得127个连续字节

有人能帮我纠正一下吗

我需要将整数值转换为字符串以在lcd上显示。

不要使用sprintf()-您的控制器有足够的RAM来运行烤箱,仅此而已


如果您需要在LCD上输出int/longint,请使用printf/putchar或某些专用循环(不是递归-您没有用于它的堆栈),该循环逐字符生成整数字符的字符串表示,并将其发送到显示字符,因此,避免使用您负担不起的RAM缓冲区。

可能您的数据内存用完了。您不应该需要33字节的数组来制作烤箱。lol,刚刚注意到了“8051”标记。我永远也猜不到……:)'我需要将整数值转换为字符串以在lcd上显示。-在处理int时,一次只做一个字符。在内存少于特朗普好主意的控制器上,你不能随意使用“正常”代码。市面上仍有许多8051变体,有些具有足够的(X)内存。
 char buffer[33];
 unsigned int rush = 9876;
 sprintf(buffer,"%u",rush);