使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
Young Hu:
建议您把stack设大点再试试。不推荐您使用sprintf,因为要占用很大的系统资源和代码空间。
使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
Young Hu:
参考
www.deyisupport.com/…/12193.aspx
使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
shen lee:
回复 Young Hu:
忘了说了 stack :0x400 heap:0x400 还需要再大些么 谢谢
使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
shen lee:
之前 是直接使用 printf 输出到 console的 stack:0x400 heap:0x400 都没问题
现在设备离电脑远一些 使用串口输出到PC的 printf重定向后 不行 ,使用 sprintf也不行
使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
shen lee:
回复 Young Hu:
好的 我试试 谢谢
使用的处理器:F28335
使用的开发环境:CCSv4.2.3
优化等级:0
问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?
谢谢。(各种库头文件已添加)
float32 freq,mag,phase;
char sci_buf[100];
freq = 2200;
mag = 768000.22;
phase = 23.23;
sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);
i = strlen(sci_buf);
SCI_Puts(sci_buf,i);
shen lee:
回复 shen lee:
哎 可以了 谢谢了 但是 我比较想不通:
1,在simulator 里面 stack 和 heap 各0x400大小可以格式化到缓存区中,为什么在处理器上跑就不行了?
2,当不对printf重定向时 输出到CCSv4的 Console中是可以的,使用stack 和heap大小为0x400(官方值)
但一重定向到SCI就不行了,sprintf也不行了,还都是有浮点数引起的,想不通?