2年之前因为在调试AUTOSAR存储协议栈的时候使用DET并没发现有用的信息,所以就武断下结论--这玩意没有用。活到老学到老吧,bug经历的多了,发现这玩意还挺有用的。说一下这个bug的背景。
在将时间同步报文改道CanTsync之后,由于这个AUTOSAR工具本身的问题以及配置工程师本身的操作手法问题,PduR中的pdu个数虽然更新,但是Pdu的Id并没更新,只是简单的删除了之前Pdu的Id,其余Pdu的ID并没改变,也就是最大的PduId号仍为85。而恰恰被改道CanTsyn的Pdu在81之前,也就是剩下的pdu有5个是在81之后的81,82,83,84,85。而代码中这个ID的总个数却变为了81,也即它只能识别0-80之间的Pdu,80以后的pdu就被当作无效pdu丢掉了。所以导致丢帧。
接下来说一下怎么用DET来排查这个问题:
第一步-打开DET
打开COM协议栈各个模块的DET和DET模块本身。