在韩邵晨花费时间制作了符号表,加载了函数信息,用仿真器进行了复杂的单步调试之后,终于确认是软件在等待硬件信号时卡住,命令发出去之后石沉大海。
李志刚再自信也没办法说是软件有问题,只能苦着脸去看硬件代码,模拟流程进行验证,挨个数据波形抓取下来看。
韩邵晨也没闲着,坐在一边帮他看波形,一串数据看下来之后,确实没发现哪里有问题,突然问:“时钟信号拉出来没?”
李志刚楞了楞,“没单独拉出来,没时钟设备也不会工作啊,那个应该没问题。”
“再跑一版验证,时钟波形也拉出来。”韩邵晨用不容置疑的语气说。
李志刚虽然不以为然,但是反正都通宵了,脑子都木木的,有人指挥就照做吧。
等时钟的方波放大再放大,两个人一起发现了问题所在。原本时钟方波应该稳定的一高一低电平交错有序的,但是他们看到的方波每间隔一段时间,两个高电平连在了一起。这就解释了设备虽然能上电工作,但是时钟线都不对,数据线上的数据即使没问题,综合起来返回的数据也不会正确,难怪得不到正确的设备描述符。
李志刚一脸“卧槽”,也顾不上没面子了,抹了一把脸问韩邵晨:“你是怎么想到的啊,韩工?你不是搞软件的么?”
韩邵晨有些莫名其妙:“搞软件的就不能稍微懂点硬件了么?我只是想让你把波形抓得全面一些。”
“大佬,真是大佬。难怪我之前说我没弄过USB担心搞不定的时候,组长说跟韩工合作,没有搞不定的东西呢。”李志刚有些服气的,“我还总觉得软件有问题,真是不好意思。我现在才明白组长怎么会那么说,韩工你是真牛啊。”
韩邵晨有些无语,只是点了点屏幕:“发现问题不代表解决问题了,还是看看哪里出错导致时钟混乱。”
李志刚挠挠头,“知道原因离解决问题就不远了嘛,韩工跟我一起看看吧,反正硬件语言你也懂,干坐着也是等,软件又没什么问题。”
这话说的其实并不合适,既然确认是硬件问题,韩邵晨去睡一会儿都是应该的,又怎么会干坐着。但是韩邵晨也想不到这么多,而且李志刚毛毛躁躁的工作风格,谁知道让他一个人查得查到什么时候去,韩邵晨也没拒绝,两个人一起盯着屏幕看起了硬件代码。
三点多的时候,还是两人打开了硬件文档,一行一行互相对比,这才发现了是硬件初始化部分少配置了一bit,等改过来之后,终于顺利通过。
看到电脑上串口打印出设备描述符,USB Type-C Device的字样出现时,李志刚忍不住欢呼起来,反正实验室空荡荡,也不怕吵到别人。
韩邵晨也被这个年轻人的情绪感染到,尽管大脑已经疲惫不堪,心情却是难得地轻松起来。
一看表已经五点了,李志刚伸了个懒腰说:“搞定了,我写个邮件然后回家睡觉去了,醒了再过来,谢谢韩工了,要不你先回?”
韩邵晨点点头:“那我走了。”