单路USB采用第二路速度慢或死机 
 
关键字:单路USB  第二路USB  死机 
适用机型:MSD318/339(其他芯片亦类似) 
       有时硬件上为了布线方便或其他原因,就算只需要一路USB,也会选择芯片第二路USB。但由于代码的缺陷,这种情况下,用户从其他讯源切到USB会出现速度很慢或干脆死机重启的问题。之所以出现这种问题是由于USB需要一定的内存(一般是4K BYTE)来进行初始化。如果没有的话,轻则切到USB速度慢,重则会触发看门狗导致芯片重启。解决办法为参照第一路USB,添加如下代码: 
1.在文件sysinfo2.h中添加如下红色代码: 
      #define USB_BUFFER_START_ADR_4K_ALIGN       MemAlign(PROGRAM_RATING_START_ADR+PROGRAM_RATING_LEN, 0x1000) 
        #define USB_BUFFER_START_ADR_4K_ALIGN_LEN   0x1000 
//////////added 2011.08.19 to solve the issue switching to USB from other inputsources the TV will restart. 
        #define USB2_BUFFER_START_ADR_4K_ALIGN       MemAlign(USB_BUFFER_START_ADR_4K_ALIGN+USB_BUFFER_START_ADR_4K_ALIGN_LEN, 0x1000) 
        #define USB2_BUFFER_START_ADR_4K_ALIGN_LEN   0x1000 
        //file system memory 
        #define FILE_SYSTEM_POOL_ADR        MemAlign(USB2_BUFFER_START_ADR_4K_ALIGN + USB2_BUFFER_START_ADR_4K_ALIGN_LEN, 0x1000)//added 2011.08.19 to solve  the issue switching to USB from other inputsources the TV will restart. 
       // #define FILE_SYSTEM_POOL_ADR        MemAlign(USB_BUFFER_START_ADR_4K_ALIGN + USB_BUFFER_START_ADR_4K_ALIGN_LEN, 0x1000) 
2.在文件msAPI_DrvInit.c中添加如下红色代码: 
void msAPI_DrvInit(void) 
{ 
...... 
 #if (ENABLE_USB) 
    MDrv_USB_Init(USB_BUFFER_START_ADR_4K_ALIGN); 
  #endif 
  #if (ENABLE_USB_2)//added 2011.08.19 to solve the issue switching to USB from other inputsources the TV will restart. 
    MDrv_USB_Init_Port2(USB2_BUFFER_START_ADR_4K_ALIGN); 
  #endif 
...... 
} 
 
 
 |