搜索
 找回密码
 立即注册

简单一步 , 微信登陆

单路USB采用第二路速度慢或死机

作者:AlexWeng | 时间:2018-5-31 00:12:43 | 阅读:4545| 只看该作者
关键字:单路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 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 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

......
}

收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

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