解决办法:在硬件设计之初,一定要利用HRDY硬件握手信号[2][3]。虽然有的芯片HPIC寄存器提供了HRDY软件握手方式,只能做为弥补硬件设计之初遗漏HRDY硬件握手信号的权宜之计,软件轮循HRDY的办法会带来额外的开销,降低HPI总线的吞吐率,增加主机软件实现的复杂度。而且有的芯片HPI不支持HRDY软件查询方法,只能通过硬件HRDY保证数据的有效性。
6.3 HRDY常高
有的系统在长时间运行中偶尔出现HRDY常高,导致主机端总线访问异常,需要重新上电才能恢复HPI的正常操作。这种故障是由于HPI状态机出现异常。
从实际故障定位中总结出以下几点原因:
A. HPI的高低半字访问的顺序访问被其它HPI访问打断:在复用模式下,一个完整的HPI访问是由高低半字两次访问组成,需要严格保证,否则会破坏HPI的状态机,从而导致不可预期的后果。
B. 主机通过HPI访问了DSP内部的保留空间,或者破坏了DSP的程序,数据空间,导致DSP运行异常,进而导致HPI状态机异常。
C. 主机的HSTROBE信号有毛刺,或者信号完整性不好,如下图中HCS(些案例HSTROBE是由HCS控制)的上升沿的回勾,都会导致HPI误判断为主机的新的访问的开始,从而打乱了高低半字的访问顺序要求,导致HPI状态机的错乱。