在线时间0 小时
UID2030013
注册时间2013-7-31
NXP金币0
该用户从未签到
新手上路

- 积分
- 46
- 最后登录
- 1970-1-1
|
SH32
- CodeWarrior for MCU
Version: 10.4
Build Id:130425
简单演示
void report()
{
char buf[32];
Sprintf(buf,"This is a test :d% d%", var1, var2);
SciPuts(buf);
Sprintf(buf,"This is a test sdkjfsdflksd :d% d%", var3, var4);
SciPuts(buf);
}
优化选的默认S
因为定义了buf为32字节,所以要输出很多内容时就分了几次。
但是这个程序造成了非法指令复位,如果吧buf扩大到64字节,就不会出现复位。
分析原因。是因为编译器优化时,把两次输出合并到一起,把缓冲撑爆了。
moto/freescale作单片机这么多年了,我觉得这种低级错误不应该呀
第一次用freescale的CW,已经碰到两次编译器bug,真是头疼呀,现在项目还没完。
|
|