查看: 286|回复: 0
打印 上一主题 下一主题

6713 bootloader问题

[复制链接] qrcode

8

主题

209

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
楼主
跳转到指定楼层
发表于 2015-12-11 07:24 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的程序再仿真的环境下运行正常,但是烧到FLASH后,只要进一个外部中断就跑飞拉,后来发现是因为中断服务程序里有一个switch的嵌套语句,只要把这个switch语句改为用if实现后,程序运行就正常拉。后来发现连接命令文件里有一个 .switch 段,好像和这个有点关系。但是改了之后还是运行不正常。希望高手能给予指点!
我的代码在下面
switch(SimStep)
{
case 0:

break;
case 1:

break;
case 2:
switch(datatemp)
{
case 0x01: //
break;
case 0x02: //
break;
case 0x03: //
break;
case 0x04: //
break;
case 0x05: //
break;
case 0x06: //

break;
case 0x07: //
break;
case 0x08: //
break;
default:

break;
}
break;
case 3:
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
default:
break;
}
上面的代码结构就跑飞,如果换成下面的代码结构就没问题
if(SimStep==0)
{

}
else if(SimStep==1)
{
if(datatemp==SIM_FRAMEHEAD2)
{

}
else
{

}
}
else if(SimStep==2)
{
if(datatemp==0x01) //
{

}
else if(datatemp==0x02) //
{

}
else if(datatemp==0x03) //
{
}
else if(datatemp==0x04) //
{

}
else if(datatemp==0x05) //
{

}
else if(datatemp==0x06) //
{

}
else if(datatemp==0x07) //
{

}
else if(datatemp==0x08) //
{

}
else if(datatemp==0x09) //
{

}
else
{

}
}
else if(SimStep==3)
{

}
else if(SimStep==4)
{

}
else if(SimStep==5)
{

}
else if(SimStep==6)
{

}
else if(SimStep==7)
{

}
else if(SimStep==8)
{
}
else
{

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表