zxl
zxl
驱动牛犊
驱动牛犊
  • 注册日期2002-07-02
  • 最后登录2004-11-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1104回复:0

请问高手,同一个hex文件,写入芯片运行正确,在仿真器上却不对,为什么。我只试过EasyPack仿真器,别的我没有!

楼主#
更多 发布于:2002-10-29 09:10
请问:
周立功套件中的 usb_demo.exe smart.exe 把这2个程序写入芯片,插在板子运行正确。
但我用EAsyPack仿真器来运行调入来运行他们,则不正确。目标板就是套件的板子,什么环节都不动。

我的仿真器肯定是正常的,因为任何地方都不动,我重新调入一个简单的控制套件板子上LED的测试性小程序,是正确的。

请问高手,这是什么原因,如何解决!

细节是这样的:

用周立功的程序:
我单步执行,发现在main主程序中,
MCU_D12CS = 0x1; //可以走到这里,
MCU_D12CS = 0x0; //从这里立刻就进入中断了 usb_isr() interrupt 0


void main(void)
{
P0 = 0xFF;//初始化I/O口
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
MCU_D12CS = 0x0;
D12SUSPD = 0;

IT0 = 0;//初始化中断
EX0 = 1;
PX0 = 0;
EA = 1;

MCU_D12CS = 0x1; //可以走到这里,
MCU_D12CS = 0x0; //从这里立刻就进入中断了 usb_isr() interrupt 0
D12_SetDMA(0x0);
bEPPflags.value = 0;

reconnect_USB();//联接USB总线
}


另外:用phlips的程序:

主程序中,单步执行刚走到
最前边的:init_special_interrupts();
就进入了  void init_unconfig(void)

我往回推,发现最早间接调用void init_unconfig(void)的地方,应该是

if (bEPPflags.bits.setup_packet){
DISABLE;
bEPPflags.bits.setup_packet = 0;
ENABLE;
control_handler();
D12SUSPD = 1;
} // if setup_packet

但这几行在主程序中,要非常靠后,根本还不应该到这里呢?是什么原因,调动了void init_unconfig(void)

盼高手答复我。谢谢您的慷慨指点新手。
游客

返回顶部