wanliqing
驱动牛犊
驱动牛犊
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1472回复:0

如果枚举都没有通过是怎么回事呢?

楼主#
更多 发布于:2004-05-06 11:03
mainloop的main程序初始化是这样的:

 void main(void)
{
 
   // Disable all Interrupts
    RaiseIRQL();

    // Init BitFlags
   //bFlags.value = 0;

    //Init 8051 ports;
Hal4Sys_InitMCU();

    //Init Timer
Hal4Sys_InitTimer0();

D12SUSPD = 0;

// Hal4ATA_FindIDEDevice();
   Hal4Sys_InitD12();


   MLsup_ReconnectUSB();

  //Init IDE Harddisk


// Power-On Reset D12

    // Init FSM
DCPFSMstate = USBFSM4DCP_IDLE;
    BOTFSMstate = USBFSM4BOT_IDLE;// USBFSM4BOT_IDLE=0x01
//BOTFSMstate =0;

// Connect to USB Host


    /* Main program loop */
    while(TRUE)
    {
// Enable Interrupt for Interrupt Type Event Stimulie
        LowerIRQL();  //LowerIRQL() == EA=1 , (no IRQ when EA=0!)

        // USB Control Pipe
        if (DCPFSM_SetupProc) // DCPFSM_SetupProc=DCPFSMstate^0
        {
         RaiseIRQL();
            MLsup_USBSetupTokenHandler();
            LowerIRQL();
} // if SetupProc
  …………
不知道顺序有没有错,枚举不通过是不是就是这些初始化的问题?
设备描述府是不是在MLsup_USBSetupTokenHandler();程序中得到啊?那究竟是哪里出了问题呢?会不会是开发板上对跳线还有什么要求呢?
还有,大家说的仿真在0x0000,而实际运行时在0x8000,具体应用时时怎么弄的呢?是说我在生成HEX文件时把interrupt vector地址改成0x8000吗?
游客

返回顶部