单路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 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
to solvethe 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 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
......
}
页:
[1]