+
-
成熟大叔
温柔淑女
甜美少女
清亮青叔
呆萌萝莉
靓丽御姐
USB Type-C目前使用的配套软件调试代码是韩邵晨在硬件准备好之前,根据协议原文,再参照Linux源代码中相关的框架代码写出来的。
通俗来讲,当带有USB接口的设备插到电脑上时,电脑通过USB插座上的电压变化,发现有USB设备接入,会和设备进行一系初始化数据通讯,之后再根据设备类型进行对应格式的数据传输。
李志刚做出来的这个硬件逻辑,是模拟一个带有USB Type-C接口的设备,把硬件逻辑下载到FPGA调试板上,调试板本身和电脑通过串口连接,用来打印调试信息,再连上一根USB Type-C数据线接到电脑的USB3.0接口上,接入USB时电脑发出询问,但是总是收不到设备端正确的反馈信号,最关键的USB设备描述符获取不到,那就压根认不出这是个USB Type-C的设备,身份都不能认证,那就没办法进行下一步的数据传输。
李志刚还是有点怀疑韩邵晨的代码问题,韩邵晨在反复对照协议,甚至把硬件验证代码拿过来对比之后,确认自己的代码起码在前期初始化流程上没问题,不应该存在无法响应的情况。
还好串口的前例摆在那,李志刚也知道韩邵晨的专业能力一向过硬,没敢把责任全推到他身上。但是这个问题卡了几天,再卡下去后面的进度很难保证,硬件组长也很关注这个问题,限定他一周内必须解决,眼看着时间就要到了,李志刚只能跟韩邵晨商量通宵调试。
韩邵晨没有犹豫地答应了。
之前忙的时候,韩邵晨最晚加班到两三点,回去稍微休息一下,早上也是按时上班的,通宵还真没试过。
林宇惯常十二点的问候微信,收到了韩邵晨需要通宵的消息。
尽管他自己也通宵过不少次,但还是心疼韩邵晨忙成这样,直接打了个电话:“晨儿,怎么这么忙,晚饭好好吃了吗,有给你们准备加班餐没?”
“嗯,进度慢了,需要赶一下。晚饭吃了,项目组有买一些零食。”尽管已经是深夜,韩邵晨还是一板一眼地有问必答,丝毫没有错漏。
“那就好,半夜要是实在太困,你就稍微睡一会儿,你在公司里放午休床没?”林宇不放心地问。
“有的。”韩邵晨在致力于像一个普通人那样工作的道路上,一点儿也没有跑偏。软硬件工程师人手必备的午休床或者地垫,即使不用也要随大流一起买上。
“多喝点水啊,加班干活心浮气躁,最容易缺水。”林宇接着叮嘱。
“嗯,”韩邵晨答应着,却还是补了一句,“我没有心浮气躁。”
“哈哈,好嘛,你最淡定了。”林宇笑了出来,但是没笑两下,声音有些低沉下来,“我好心疼你啊,这么忙,我都不能在你身边照顾你。”
韩邵晨面对恋人这种状态的关怀,着实有些不会应对,沉默了下才道:“没事的,很晚了,你先休息吧。”又想了想,还学着安抚对方,“说不定很快问题就解决了,你也不用太担心。”
“嗯,你那么厉害,肯定是有人拖后腿才要通宵的,”林宇理所当然地这样认为,虽然差不多没错啦,“要是别人的问题,你就偷偷懒多休息一会儿。”
韩邵晨看看正等着他加载软件调试的李志刚,摇了摇头,“我要工作了,晚安。”
“好好好,不打扰你了,晚安。”林宇叹了口气挂上电话。
李志刚有些八卦地盯着韩邵晨笑:“韩工,你这是给老婆报备吗?”
韩邵晨一怔,随即摇了摇头:“我没结婚。”
“哦哦,那就是女朋友咯。”李志刚随口说着,让开了点位置,“我刚才优化一下线路,看看这一版能不能通过。”
韩邵晨没有理会李志刚不走心的八卦,专心开始调试。
USB设备端软件要做的事情其实不多,基本上都是硬件自动响应的,但是李志刚始终认为验证已经通过的硬件代码没问题,总希望通过软件调试来解决无法响应的bug。
在韩邵晨花费时间制作了符号表,加载了函数信息,用仿真器进行了复杂的单步调试之后,终于确认是软件在等待硬件信号时卡住,命令发出去之后石沉大海。
李志刚再自信也没办法说是软件有问题,只能苦着脸去看硬件代码,模拟流程进行验证,挨个数据波形抓取下来看。
韩邵晨也没闲着,坐在一边帮他看波形,一串数据看下来之后,确实没发现哪里有问题,突然问:“时钟信号拉出来没?”
李志刚楞了楞,“没单独拉出来,没时钟设备也不会工作啊,那个应该没问题。”
“再跑一版验证,时钟波形也拉出来。”韩邵晨用不容置疑的语气说。
李志刚虽然不以为然,但是反正都通宵了,脑子都木木的,有人指挥就照做吧。
等时钟的方波放大再放大,两个人一起发现了问题所在。原本时钟方波应该稳定的一高一低电平交错有序的,但是他们看到的方波每间隔一段时间,两个高电平连在了一起。这就解释了设备虽然能上电工作,但是时钟线都不对,数据线上的数据即使没问题,综合起来返回的数据也不会正确,难怪得不到正确的设备描述符。
李志刚一脸“卧槽”,也顾不
