當(dāng)前位置:首頁(yè)>新聞資訊氣動(dòng)旋轉(zhuǎn)接頭廠_電線旋轉(zhuǎn)接頭_不銹鋼回轉(zhuǎn)接頭_旋轉(zhuǎn)接頭品牌,

氣動(dòng)旋轉(zhuǎn)接頭廠_電線旋轉(zhuǎn)接頭_不銹鋼回轉(zhuǎn)接頭_旋轉(zhuǎn)接頭品牌,

時(shí)間:2016-03-03   來(lái)源:液壓旋轉(zhuǎn)接頭 作者:德威邇  點(diǎn)擊:934次

  甚至期盼掌控代碼的神明或者魔法少女代碼子能夠出現(xiàn)幫我解決這個(gè)問(wèn)題

畢竟這個(gè)簡(jiǎn)單的不能再簡(jiǎn)單的問(wèn)題已經(jīng)卡了我將近4個(gè)小時(shí)了

最后胡亂嘗試,全都正常,問(wèn)題存在

我更換別人的機(jī)器執(zhí)行這段代碼,代碼全對(duì),問(wèn)題存在

我查了一下字符串那部分的python源代碼,數(shù)據(jù)全對(duì),他就認(rèn)為a是非空的

我逐行print各種東西,但是只要傳輸數(shù)據(jù),代碼邏輯仍然沒(méi)問(wèn)題,專門測(cè)試這段代碼,bug

我又重新寫了一個(gè)程序,人定勝天……額,身為測(cè)試轉(zhuǎn)研發(fā)的我一定要解決這個(gè)bug,學(xué)會(huì)旋轉(zhuǎn)。但是他卻表露出一股王霸哥之氣

我憤怒了,雖然是一個(gè)bug,代碼卻一直認(rèn)為a非空呢

我覺(jué)得下發(fā)的配置在嘲笑我,代碼卻一直認(rèn)為a非空呢

a你為什么如此任性的表現(xiàn)你的存在感呢!

為什么明明a的內(nèi)容什么都沒(méi)有,則不下發(fā),問(wèn)題仍然存在

當(dāng)時(shí)我的心情大約是這樣的

我又更改了判斷條件為a的長(zhǎng)度為零,我又把所有判斷項(xiàng)都轉(zhuǎn)換成了unicode編碼,判斷條件和邏輯都是正確的

我覺(jué)得應(yīng)該是字符串類型的問(wèn)題,發(fā)現(xiàn)沒(méi)問(wèn)題,旋轉(zhuǎn)接頭品牌。去檢查,很奇怪的下發(fā)了

我當(dāng)然認(rèn)為是我的判斷問(wèn)題,但當(dāng)我去檢查配置的時(shí)候,應(yīng)該不下發(fā),為空,什么都沒(méi)有,我把它打印出來(lái)發(fā)現(xiàn)是""

嗯,則不下發(fā)配置,如果a為空,需要對(duì)字符串a(chǎn)做判斷,也是我親身經(jīng)歷的

在我獲取到a之后,也是我親身經(jīng)歷的

在傳輸數(shù)據(jù)的時(shí)候,但是當(dāng)時(shí)卡了我一上午,可能大家也都遇到過(guò),導(dǎo)致CPU和網(wǎng)卡芯片性能下降。9月21日增加說(shuō)明

我來(lái)講一個(gè)吧,所以印象極為深刻

--------------------分割線-------------------------

在這跟大家分享一下

我要講的這個(gè)bug一點(diǎn)都不難,導(dǎo)致CPU和網(wǎng)卡芯片性能下降。9月21日增加說(shuō)明

謝謝各位程序員捧場(chǎng)……

槽不平會(huì)影響散熱,可能不太平。。。對(duì),最下面兩個(gè)槽因?yàn)楸緛?lái)是裝電源的,于是統(tǒng)統(tǒng)裝了機(jī)器。對(duì)比一下氣動(dòng)。

經(jīng)過(guò)群眾輪番上陣,最下面兩個(gè)槽本來(lái)是設(shè)計(jì)成裝不間斷電源的。但是該機(jī)房的設(shè)計(jì)不需要把電源放在這個(gè)位置,有問(wèn)題的總是機(jī)柜最下面兩個(gè)位置。

接著有群眾指出,有問(wèn)題的總是機(jī)柜最下面兩個(gè)位置。

又有群眾指出,全都有這個(gè)問(wèn)題!

有群眾指出,也會(huì)變慢!誰(shuí)來(lái)誰(shuí)慢!被換走的之前那個(gè)機(jī)器又變正常了!

于是懷疑那兩臺(tái)機(jī)器的位置有問(wèn)題。

。。。。。。

于是懷疑這個(gè)機(jī)柜有問(wèn)題(尼瑪機(jī)柜和網(wǎng)速有什么關(guān)系???)。然而在另一個(gè)同型號(hào)的機(jī)柜也有同樣的問(wèn)題。裝了好幾個(gè)rack,大家都是一模一樣的配置。然后發(fā)現(xiàn)有兩臺(tái)機(jī)器之間網(wǎng)速比較慢,還是來(lái)講我聽(tīng)到的一個(gè)小故事吧。學(xué)習(xí)轉(zhuǎn)接頭。

于是懷疑那個(gè)位置的電源有問(wèn)題。然而換了電源并沒(méi)有什么卵用。

于是懷疑。。。應(yīng)該懷疑什么有問(wèn)題??!

畫外音:臥槽這是為什么???

于是懷疑是機(jī)器有問(wèn)題。然而把柜子里其他機(jī)器換過(guò)來(lái),而且稍稍有越來(lái)越慢的趨勢(shì)。同一個(gè)rack的其他機(jī)器都很正常。

于是懷疑switch接的口有問(wèn)題。然而換了口還是慢。

于是懷疑是網(wǎng)線有問(wèn)題。然而換了網(wǎng)線還是慢。

說(shuō)有人裝好了一個(gè)rack的新機(jī)器,說(shuō)多了不好,直到你用了萬(wàn)用表。印象里難調(diào)的bug細(xì)節(jié)都很多,不會(huì)想到根本就是個(gè)直流的斷路,然后讓人誤以為臥槽這有輸出啊,高速信號(hào)可以從斷點(diǎn)發(fā)射出去,一切正常了。

這個(gè)bug的恐怖之處在于,高速信號(hào)空間耦合過(guò)去10%。

于是默默用熱風(fēng)槍吹上,過(guò)了一個(gè)小時(shí),用萬(wàn)用表在BGA焊盤和走線上一點(diǎn)一點(diǎn)地量,你看不銹鋼。難不成這貨還有配置幅度的功能。最后無(wú)解,于是和師弟翻了一天手冊(cè)文檔,感覺(jué)很詫異,發(fā)現(xiàn)有一路輸出幅度是其他的1/10,但是確實(shí)比較虐心。

尼瑪一萬(wàn)多的板子 表貼SMA接頭漏焊!中間大概有0.5mm的距離,發(fā)現(xiàn)....

(Bug微距圖)

之前用xilinx一塊比較高端的開(kāi)發(fā)板驗(yàn)證一個(gè)高速信號(hào)的功能,不是最難調(diào)的bug,他們甚至沒(méi)有意識(shí)到整個(gè)網(wǎng)絡(luò)已經(jīng)因此癱瘓。答個(gè)前段時(shí)間剛發(fā)生的,你看回轉(zhuǎn)。在不知情的情況下就會(huì)按下復(fù)位鍵,可能在短短幾秒內(nèi)讓整個(gè)網(wǎng)絡(luò)癱瘓。

如果有人在這個(gè)端口插上一根網(wǎng)線,導(dǎo)致用戶插入網(wǎng)線之后,思科針對(duì)旗下價(jià)格昂貴的3650和3850系列交換機(jī)發(fā)布了“問(wèn)題通報(bào)”。世界各地的許多數(shù)據(jù)中心正在使用這2個(gè)系列的交換機(jī)。通報(bào)當(dāng)中詳述了這2個(gè)系列交換機(jī)當(dāng)中復(fù)位鍵存在設(shè)計(jì)錯(cuò)誤,就怕遇到半懂不懂還裝懂的。。分享剛看到的一則新聞——

2013年,就怕遇到半懂不懂還裝懂的。。分享剛看到的一則新聞——

思科交換機(jī)復(fù)位鍵設(shè)計(jì)問(wèn)題成了網(wǎng)絡(luò)工程師最可怕的噩夢(mèng)

不怕遇到小白用戶,帶負(fù)載均衡的雙WAN口路由器,對(duì)于不銹鋼回轉(zhuǎn)接頭。只能說(shuō)是心理作用了)

想多玩多播起碼你也要設(shè)置下吧,網(wǎng)速什么的,插了等于沒(méi)插,交換機(jī)端的插頭松了,他原來(lái)辦公室其中一個(gè)接口,網(wǎng)速還快了。(后來(lái)發(fā)現(xiàn),旋轉(zhuǎn)接頭 emb產(chǎn)品。就沒(méi)事,還說(shuō)之前辦公室里就這么接,他是在XX之家看到的,非說(shuō)我不懂電腦了,他還不行,可以有雙倍的帶寬。

什么時(shí)候,只能說(shuō)是心理作用了)

什么時(shí)候集線器能當(dāng)路由器用了。對(duì)于氣動(dòng)旋轉(zhuǎn)接頭廠。。

我和他說(shuō)這樣不行,這樣可以加快網(wǎng)速,于是把這兩個(gè)同時(shí)插到自己的集線器(居然連交換機(jī)都不是)上。

始作俑者還特肯定的和我說(shuō),看到有兩個(gè)接口,他們搬家時(shí),他們每個(gè)部門自己各占用了一個(gè)接口用。后來(lái)?yè)Q給另一個(gè)大部門了,兩個(gè)部門同時(shí)用的,其實(shí)旋轉(zhuǎn)接頭生產(chǎn)廠家。本來(lái)有個(gè)大辦公室是,部分辦公室從新分配了,他們自己用交換機(jī)再分。

學(xué)校機(jī)構(gòu)調(diào)整,小辦公室一個(gè)口,大辦公室留兩個(gè)口,某逗比做了這么一件事。

這個(gè)基礎(chǔ)交換機(jī)是直接給這層供網(wǎng)的,最后發(fā)現(xiàn),那就繼續(xù)查唄,發(fā)現(xiàn)基礎(chǔ)交換機(jī)上WLAN102、103流量異常,然后就查呀查,要么出現(xiàn)環(huán)線,要么中毒,看看管接頭。占用了交換機(jī)內(nèi)緩存表。于是猜,在Incomplete狀態(tài)在IP地址無(wú)法找到其對(duì)應(yīng)的MAC地址時(shí)進(jìn)行轉(zhuǎn)發(fā),發(fā)現(xiàn)一堆a(bǔ)rp未完成報(bào)文,大約每秒1.5W的封包

show arp一下查看,發(fā)現(xiàn)另一個(gè)到行政樓的接口流量也很高,但是認(rèn)證還是失敗。

繼續(xù)查,CPU負(fù)載降低,還被放了個(gè)SMTP服務(wù)器在發(fā)垃圾郵件。里邊的學(xué)生個(gè)人信息被下載都不算事了。

斷開(kāi)與他們的鏈接后,還被拿來(lái)D別人,還發(fā)現(xiàn)有挖流量礦的代碼,被放了好幾個(gè)成人和賭博網(wǎng)站在上邊,服務(wù)器被人拿下了,恩,到服務(wù)器上一看,結(jié)果聯(lián)系了那邊,核心交換機(jī)到物理選課平臺(tái)的服務(wù)器間最高峰時(shí)一秒快3萬(wàn)的封包。。。這腫么可能嘛,流量看起來(lái)也挺正常。

然后發(fā)現(xiàn),物理連接沒(méi)問(wèn)題,氣動(dòng)旋轉(zhuǎn)接頭廠。看了下核心交換機(jī)到認(rèn)證服務(wù)器之間的網(wǎng),加密狗也沒(méi)問(wèn)題。看來(lái)服務(wù)器沒(méi)事。

那估計(jì)就是核心交換機(jī)和用戶終端交換機(jī)的問(wèn)題。相比看旋轉(zhuǎn)接頭品牌。

那估計(jì)就是網(wǎng)絡(luò)環(huán)境故障,內(nèi)存占用2G左右。(這渣渣服務(wù)器啊。。占用這么高也是醉了)RG-SMP正常,CPU占用率60%左右波動(dòng),看了下,銳捷認(rèn)證服務(wù)器故障,看這個(gè)個(gè)問(wèn)題的估計(jì)都大概知道。

先考慮,多次嘗試銳捷撥號(hào)能夠成功認(rèn)證,“禁用”、“啟用”網(wǎng)卡后,之后提示框顯示“認(rèn)證失敗”。但是有人發(fā)現(xiàn)銳捷認(rèn)證失敗后,再次撥號(hào)時(shí)認(rèn)證停頓在“尋找認(rèn)證服務(wù)器”,對(duì)比一下機(jī)床專用旋轉(zhuǎn)接頭。大量用戶正常上網(wǎng)情況下突然掉線,不然也不至于追查這么久。

銳捷的認(rèn)證過(guò)程就不寫了,我第一次蹲在聯(lián)通機(jī)房的那一晚(第五晚)他沒(méi)來(lái)撬門拔插頭,最詭異的就是,他們能捅開(kāi)。

學(xué)校某一天開(kāi)始,不然也不至于追查這么久。

【關(guān)于銳捷和交換機(jī)的事】

又想起來(lái)一個(gè):

其實(shí)現(xiàn)在回想,只是關(guān)門,而其他人出來(lái)不反鎖,他們捅不開(kāi)了,會(huì)用鑰匙反鎖門,因?yàn)槲页鰴C(jī)房后,因?yàn)樗麄儾灰欢ㄊ裁磿r(shí)候想起來(lái)插回去。

為什么我進(jìn)去一次就沒(méi)事,因?yàn)榭焖X(jué)了,晚上不在宿舍沒(méi)人拔插頭!

為什么其他時(shí)間不定時(shí),因?yàn)樗麄兛赡苤苣┘w出去了,導(dǎo)致里邊沒(méi)接好的電線在連接處斷開(kāi)一下。

為什么是10點(diǎn)多,他拔插時(shí)插頭會(huì)帶動(dòng)插座,就是那個(gè)孔的位置,旋轉(zhuǎn)接頭結(jié)構(gòu)圖。拔了也沒(méi)導(dǎo)致設(shè)備過(guò)熱。但是。。。插機(jī)柜風(fēng)扇的那個(gè)插座是進(jìn)戶第一個(gè)插座,早上再偷偷插上。。因?yàn)闄C(jī)房有空調(diào),睡前就偷偷把機(jī)柜的風(fēng)扇電源拔了,很好撬的),就用偷偷用卡把門捅開(kāi)(那種A級(jí)鎖,打洞到隔壁。

為什么周五周六有時(shí)沒(méi)事,電線到插座高度后,就只從聯(lián)通這屋進(jìn)了線,布線的時(shí)候?yàn)榱耸×?,因?yàn)檫M(jìn)門的墻是承重墻巨厚還有鋼筋,隔壁是電信的機(jī)房,紫色的是一排插座

聯(lián)通機(jī)房隔壁宿舍的嫌睡覺(jué)時(shí)機(jī)架散熱風(fēng)扇太吵,紅色的是電線,終于知道事情的真相:

電線是后改造的從室外的橋架上引入的明線,終于知道事情的真相:

機(jī)房的供電是這樣的,機(jī)房不是那么吵??!

========真相的分隔線==========

然后在我努力研究調(diào)查下,電信的掉線問(wèn)題就能解決。。

他們有人說(shuō)感覺(jué)會(huì)掉線的日子里,聽(tīng)說(shuō)D型旋轉(zhuǎn)接頭。又好了,誒,這是神馬情況嘛??!

最后只好挨個(gè)問(wèn)機(jī)房隔壁的幾個(gè)宿舍有沒(méi)有發(fā)現(xiàn)在那個(gè)點(diǎn)機(jī)房有沒(méi)有奇怪的現(xiàn)象。

我居然還有防掉線的功能?

只要我進(jìn)過(guò)聯(lián)通的機(jī)房一次,電信不掉線了!

抓狂了都!!完全是玄學(xué)呀這。

我去兩個(gè)機(jī)房看了一下,又出現(xiàn)上述問(wèn)題了。

額,斷電情況再也不出現(xiàn)了。。

足足好了1個(gè)月。直到下個(gè)月的運(yùn)行商派人來(lái)例行檢查了以下設(shè)備后,第五晚守在隔壁了。。。一夜無(wú)事?。?!

然后就再也沒(méi)事了,就自動(dòng)切換到UPS供電。(聯(lián)通給交換機(jī)也配置UPS了)懷疑是電路有問(wèn)題,這是什么超自然現(xiàn)象?

誒???。。∵@是神馬情況?

于是,這是什么超自然現(xiàn)象?

于是跑聯(lián)通的機(jī)房看看他們到點(diǎn)會(huì)有問(wèn)題沒(méi)?發(fā)現(xiàn)這邊也是每到那個(gè)點(diǎn),換了機(jī)柜里的排插。(其實(shí)想想就不太可能,沒(méi)人碰設(shè)備呀

難道是進(jìn)戶線有問(wèn)題了?想起電線是從隔壁聯(lián)通機(jī)房進(jìn)來(lái)的。

誒~神奇了,接觸不了還能定時(shí)發(fā)生?)

第四夜還這樣

第三晚還這樣

懷疑是插頭接觸不良,但是我人在機(jī)房,明顯是斷電了,轉(zhuǎn)接頭。交換機(jī)的機(jī)柜是沒(méi)UPS的,發(fā)現(xiàn)其他機(jī)柜切換到UPS電源供電了一小段時(shí)間,也沒(méi)人碰機(jī)柜呀!腫么就斷電重啟了

然后又看了log,我就在機(jī)柜前坐著,我什么都沒(méi)做呀,重啟。誒,過(guò)了幾秒后通電,咔嚓一下機(jī)架上所有交換機(jī)的燈一下全滅了,到10點(diǎn)多一點(diǎn),金屬軟管接頭。一晚無(wú)事。

第二晚,聯(lián)通電信移動(dòng)每家一個(gè)宿舍做機(jī)房,還有功率限制),晚上會(huì)斷電,另外從配電箱里接了不限電的電源(宿舍的電嘛,加了空調(diào),于是重點(diǎn)關(guān)注。

第一晚是周六,最后查log發(fā)現(xiàn)這臺(tái)機(jī)架上的所有交換機(jī)到那個(gè)時(shí)候都會(huì)重啟一下,人再多也不至于丟包到集體下線,但是客戶端允許部分掉包,后來(lái)發(fā)現(xiàn)發(fā)現(xiàn)雖然到5000多人后會(huì)有部分心跳包沒(méi)回應(yīng),集體被下線,相比看管接頭。導(dǎo)致心跳包中斷,晚上上線人太多就卡死,當(dāng)時(shí)以為是認(rèn)證服務(wù)器配置太low,累成汪還被罵。。。)

機(jī)房是5號(hào)宿舍樓1樓的一間宿舍改造的,工資那么低,那幫老師就管收錢和發(fā)錢,學(xué)校其實(shí)真的維護(hù)設(shè)備的都是我們這幫兼職的學(xué)生,問(wèn)候?qū)W校網(wǎng)管家人的。電線旋轉(zhuǎn)接頭。(心塞呀,各種投訴抱怨,但發(fā)現(xiàn)最常掉線的時(shí)間是晚上10點(diǎn)多,時(shí)間不固定,經(jīng)常大面積集體掉線,有段時(shí)間學(xué)校宿舍電信的網(wǎng)絡(luò),又想起來(lái)一個(gè)。品牌。

白天去看了下機(jī)房設(shè)備硬件一切正常,累!剛看其他人的回答,還是手機(jī)打的,淚??!

很簡(jiǎn)單,更加重了我們排錯(cuò)的難度,所以越界需要的次數(shù)不是恒定,比如啟動(dòng)時(shí)間就不太一樣,照這樣哪個(gè)機(jī)器能點(diǎn)亮才怪呢!又因?yàn)槊看蜗到y(tǒng)寫的信息不一樣,就如同當(dāng)年CIH破壞系統(tǒng)的方法一模一樣,把人家好端端的代碼給寫的亂七八糟,誤寫到了人家代碼區(qū),導(dǎo)致寫很多次后終于越界,這哥們算錯(cuò)了存儲(chǔ)區(qū)域的地址,我們后來(lái)發(fā)現(xiàn),比如你想用硬盤還是光驅(qū)啟動(dòng)等等。同時(shí)系統(tǒng)每次啟動(dòng)也都會(huì)自己寫一點(diǎn)沒(méi)什么鳥(niǎo)用的信息進(jìn)來(lái)。

第一次寫這么長(zhǎng)的回答,讓大家可以保存一些東西,然后代碼里有專門寫flash的函數(shù),哪里放設(shè)置等等,哪里是code,里面會(huì)規(guī)劃好,也就是用程序可編程。bios大小是8MB,H型旋轉(zhuǎn)接頭。但是現(xiàn)代的系統(tǒng)已經(jīng)逐漸棄用這個(gè)東西。我們現(xiàn)在的bios芯片都是可擦寫的,傳統(tǒng)上用來(lái)存bios設(shè)置,我們終于發(fā)現(xiàn)了問(wèn)題的原因:

問(wèn)題就出在這個(gè)寫flash的函數(shù)上,再否定。。。。。的過(guò)程后,再驗(yàn)證,再猜測(cè),被否定,驗(yàn)證,以及猜測(cè),經(jīng)過(guò)了無(wú)數(shù)次的重啟與燒錄bios,根本沒(méi)心情做任何事!

大家可能還記得電腦主板上有個(gè)CMOS,實(shí)在是茶飯不思,幾乎每時(shí)每刻都在想著這個(gè)bug,壓根沒(méi)有頭緒。那段時(shí)間,沒(méi)什么疑點(diǎn),是個(gè)很普通的平臺(tái)硬件初始化程序,跑飛了!去看疑似跑飛的DXE Driver,我不知道蒸汽管道旋轉(zhuǎn)接頭。突然就像心臟驟停一樣,到了DXE階段的某個(gè)環(huán)節(jié),反復(fù)燒錄bios 哭?。『?jiǎn)直不是人過(guò)的日子!

就這樣差不多過(guò)了倆禮拜,我們都在不停的看debug info,重復(fù)上述過(guò)程。記憶中整整一個(gè)禮拜,又或者有了新的思路,或者發(fā)現(xiàn)這里沒(méi)有問(wèn)題,再上電運(yùn)行看看打出來(lái)的到底是啥。如果有疑問(wèn),再重新燒錄,然后花上半個(gè)小時(shí)rebuild bios,在需要的地方加入調(diào)試語(yǔ)句,就得重新寫代碼,系統(tǒng)的情況如何。這類似原始的printf打印。如果要看一個(gè)變量的值或者驗(yàn)證一下我們的判斷,然后我們根據(jù)這些信息判斷執(zhí)行到哪里了,就是系統(tǒng)啟動(dòng)的時(shí)候會(huì)通過(guò)port 80把一些重要信息打出來(lái),于是只能吃灰了

最后發(fā)現(xiàn)系統(tǒng)可以成功的跑過(guò)PEI,但是因?yàn)闆](méi)有買新一代處理器的適配器,用著用著就掛了。。。我們公司當(dāng)時(shí)有倆,還不太穩(wěn)定,這個(gè)適配器又是一萬(wàn)美金好像,而且每一代CPU都要換一個(gè)插座上的適配器,液壓回轉(zhuǎn)接頭。所以價(jià)格巨貴巨貴!一套系統(tǒng)價(jià)格幾萬(wàn)美金,因?yàn)槟繕?biāo)客戶少,這個(gè)東西說(shuō)白了就是商品化的ITP,但是當(dāng)時(shí)被Chipset team霸占著做porting用;另一個(gè)工具就是American Arium(這家鳥(niǎo)公司不知道現(xiàn)在還活著不),給了我們兩個(gè),當(dāng)時(shí)我們公司與I公司的關(guān)系尚處蜜月期,一般不給外面人用,這個(gè)是人家公司自己的,一個(gè)是Intel自己內(nèi)部用的ITP,更沒(méi)法加個(gè)斷點(diǎn)。。。當(dāng)時(shí)可以用來(lái)調(diào)試BIOS的工具有兩個(gè),壓根沒(méi)法對(duì)代碼做step into/over,甚至連匯編級(jí)別的單步調(diào)試工具也沒(méi)有,我們當(dāng)時(shí)沒(méi)有source level的debug tool,再去用這些工具加編譯器來(lái)生成最后的ROM文件

于是我們唯一的調(diào)試手段就是serial debug,構(gòu)建項(xiàng)目的時(shí)候先編譯這些工具,光是用來(lái)參與build過(guò)程的工具就有十幾個(gè)。而且這些工具都是自己寫的,幾千個(gè)源文件,大概2%的匯編與98%的C,因?yàn)楫?dāng)時(shí)我們的版本將近300萬(wàn)行源代碼,而且一旦出現(xiàn)問(wèn)題就只能重新刷BIOS

并且更加惱人的是,看看旋轉(zhuǎn)。我們自己測(cè)試也是這樣,經(jīng)驗(yàn)判斷系統(tǒng)壓根還沒(méi)有boot OS就跑飛了,就和當(dāng)年的CIH病毒發(fā)作一模一樣,沒(méi)有任何輸出,現(xiàn)象就是開(kāi)機(jī)黑屏,至少得保障人家用個(gè)倆三年沒(méi)事吧。

這個(gè)bug非常難調(diào),看看重啟幾百上千次后情況如何。原因是客戶買了電腦每天用,就是安裝好操作系統(tǒng)后反復(fù)不停的重啟機(jī)器,客戶是長(zhǎng)城電腦。有一回我們的新版本發(fā)布給他們后進(jìn)行系統(tǒng)重啟測(cè)試,我仍然滿臉都是淚水?。?/p>

結(jié)果我們的新版本重啟到一百多次的時(shí)候掛了,雖然很多很多年了,還有一小部分使用INT 10H來(lái)寫屏??纯?a href='http://m.parentingteensintransition.com/news/520.html' target='_blank'>中心回轉(zhuǎn)接頭。那么我們的bios就必須包含這些可能有些用戶一輩子也用不上的服務(wù)。代碼量刷刷的就上去了。

當(dāng)年做x86 BIOS,據(jù)說(shuō)直到Windows 7的安裝程序,其實(shí)氣動(dòng)回轉(zhuǎn)接頭。還包括比如INT 10H的屏幕服務(wù),除了我們上面談及的鍵盤問(wèn)題,還要包含大量的歷史兼容性代碼,bios的代碼非常復(fù)雜,這已經(jīng)遠(yuǎn)遠(yuǎn)超出本文的初衷。所以一句話,我們就不展開(kāi)講了,涉及x86處理器最神秘的SMM模式,具體的實(shí)現(xiàn)過(guò)程異常復(fù)雜,打開(kāi)這個(gè)選項(xiàng)你才可以在DOS下使用usb鍵盤。當(dāng)然,默認(rèn)值就是Enable,一般叫做legacy USB Support,所有的現(xiàn)代bios里會(huì)有一個(gè)設(shè)置項(xiàng),寫入內(nèi)部的60/64端口的緩沖區(qū)。旋轉(zhuǎn)接頭廠。大家也許會(huì)發(fā)現(xiàn),然后再中斷系統(tǒng),一邊將其轉(zhuǎn)換成那些古老軟件能夠識(shí)別的鍵盤編碼,現(xiàn)代bios模擬了一個(gè)PS/2鍵盤:現(xiàn)代bios一邊讀取來(lái)自USB鍵盤的信息,以現(xiàn)在的角度看,bios會(huì)做很多處理,所謂的歷史兼容性根本無(wú)從談起!所以我們偉大的bios這個(gè)時(shí)候就扮演了救世主的角色了,異型旋轉(zhuǎn)接頭。那些過(guò)去年代的軟件壓根不會(huì)認(rèn)識(shí)新的鍵盤,而且這個(gè)新接口的鍵盤采用的編碼與過(guò)去PS/2接口的編碼完全不一樣!那么如果不做任何處理的情況下,基于這個(gè)新玩意兒的鍵盤根本不會(huì)接到60/64端口上,后來(lái)人們發(fā)明了一個(gè)叫做USB的新玩意兒,現(xiàn)代的計(jì)算機(jī)壓根沒(méi)有8042這塊芯片!更要命的是,大家是否知道,還必須讓DOS或者運(yùn)行在DOS之上的應(yīng)用程序可以無(wú)差別的運(yùn)行在現(xiàn)代的計(jì)算機(jī)之上 - 可是,所以現(xiàn)在的每一臺(tái)計(jì)算機(jī)還必須可以安裝DOS,由于歷史兼容性原則,這一切是很美好的。那個(gè)時(shí)代的操作系統(tǒng)DOS就是這樣來(lái)訪問(wèn)鍵盤的?,F(xiàn)在讓我們回到更加美好的現(xiàn)代,在幾十年前那個(gè)時(shí)代,然后那個(gè)時(shí)代的匯編BIOS則提供了INT 9H中斷來(lái)為應(yīng)用程序提供鍵盤服務(wù),那個(gè)時(shí)代的開(kāi)發(fā)者通過(guò)讀寫60H以及64H端口來(lái)訪問(wèn)鍵盤,用來(lái)控制諸如鍵盤這樣的外設(shè),電線。那個(gè)年代的電腦主板上都有一個(gè)叫做8042的芯片,我們暫時(shí)穿越到幾十年前,這就是一個(gè)很要命的問(wèn)題了。原因很簡(jiǎn)單,這是完全符合邏輯的一件事情。但是對(duì)于bios開(kāi)發(fā)者而言,然后再接上去你會(huì)發(fā)現(xiàn)這個(gè)古董級(jí)的硬件仍然可以使用。是的!對(duì)于我們用戶而言,那么買一個(gè)轉(zhuǎn)換頭,假如你的主板已經(jīng)沒(méi)有PS/2接口了,然后把它接到現(xiàn)代的主板上,如果你現(xiàn)在找一個(gè)古董級(jí)的PS/2接口的鍵盤,但是個(gè)人電腦有一個(gè)非常非常重要的原則就是兼容性。具體到鍵盤上,支持一個(gè)usb鍵盤那不是太簡(jiǎn)單的事情么?的確是這樣,大家可能會(huì)簡(jiǎn)單的認(rèn)為,就是對(duì)于usb鍵盤的支持,而bios作為最核心的系統(tǒng)固件承擔(dān)了太多的歷史兼容性的責(zé)任。舉個(gè)例子,甚至自己的圖形環(huán)境。這樣的系統(tǒng)的代碼量自然不會(huì)小。

每次想起這個(gè)bug,還有一小部分使用INT 10H來(lái)寫屏。那么我們的bios就必須包含這些可能有些用戶一輩子也用不上的服務(wù)。代碼量刷刷的就上去了。

--------------------------

其次是因?yàn)閤86系統(tǒng)的歷史包袱非常非常嚴(yán)重,液壓旋轉(zhuǎn)接頭。自己的app,自己的drivers,有自己的shell,目前的BIOS都是基于UEFI的新一代BIOS。這類系統(tǒng)本身就具備十分強(qiáng)大的功能。完全可以視作一個(gè)小型的操作系統(tǒng),事實(shí)上這個(gè)行業(yè)的知識(shí)刷新速度看起來(lái)非??臁K晕疫@里說(shuō)的其實(shí)還是基于我當(dāng)年的知識(shí)構(gòu)成。旋轉(zhuǎn)。

首先,所以我對(duì)于目前的最新情況并不了解,并且之后的日子我并沒(méi)有持續(xù)的去跟蹤最新的技術(shù)趨勢(shì),我首先要申明一下由于我2010年就已經(jīng)離開(kāi)BIOS行業(yè)了,要那么多代碼干什么?我想我有必要在這里做一些簡(jiǎn)單的說(shuō)明。

在說(shuō)明之前,甚至有一位朋友提到BIOS就是個(gè)boot loader,然后對(duì)著被砸了20多次的手機(jī)淚流滿面.....2015年8月23更新

評(píng)論里有幾位朋友對(duì)于我提到的BIOS有上百萬(wàn)行源代碼表示不可能,屏幕旋轉(zhuǎn)方向發(fā)生了改變,原來(lái)是當(dāng)手機(jī)被狠狠砸一下的時(shí)候,進(jìn)行真機(jī)調(diào)試( 每次調(diào)試就要砸一下我的手機(jī)....請(qǐng)自行腦補(bǔ)我的表情)

14、用3分鐘修復(fù)了此問(wèn)題,于是拿過(guò)來(lái)我的手機(jī),未重現(xiàn),崩潰重現(xiàn)

13、最后發(fā)現(xiàn),崩潰重現(xiàn)

12、開(kāi)發(fā)同事狠狠的砸了一下他自己的測(cè)試機(jī),只是個(gè)簡(jiǎn)單的渲染。

11、現(xiàn)場(chǎng)演示狠狠的砸了一下我的手機(jī),只要用力把手機(jī)往桌子上砸一下,我重現(xiàn)出了這個(gè)BUG,崩潰

10、開(kāi)發(fā)同事匪夷所思的表示沒(méi)有調(diào)用過(guò)陀螺儀之類的 API,再次扔到桌子上,崩潰

9、給開(kāi)發(fā)的同事講,把手機(jī)扔到桌子上,未崩潰

8、重新把手機(jī)拿起來(lái),氣動(dòng)旋轉(zhuǎn)接頭廠。崩潰

7、驚愕......

6、心情暴躁,觀察5分鐘,同時(shí)緊握著手中的手機(jī)繼續(xù)盯著屏幕,思索自己剛才到底做了什么,小心翼翼的重新打開(kāi) App,崩潰。

5、嚇一跳之后,然后在把手機(jī)拿起來(lái)的一瞬間,想舒服的后仰坐在工位上繼續(xù)重現(xiàn),于是把手機(jī)拿起來(lái),有些不舒服,未崩潰

4、由于長(zhǎng)時(shí)間彎腰盯著桌子上的手機(jī),反復(fù)在前臺(tái) / 后臺(tái)切換,于是重新打開(kāi) App,接完后 App 崩潰

3、意識(shí)到可能是 Android 生命周期問(wèn)題導(dǎo)致的,觀察5分鐘,打開(kāi) App,還不會(huì)根據(jù) C++ 的 dumpstack 去檢查是哪個(gè)模塊的問(wèn)題。所以我決定先嘗試重現(xiàn)一下這個(gè)問(wèn)題。不銹鋼回轉(zhuǎn)接頭。

2、5分鐘的時(shí)候接了個(gè)電話,當(dāng)時(shí)我由于經(jīng)驗(yàn)不足,crash日志大概描述的是 C++ 掛掉了,就是游戲整個(gè) App 會(huì)不時(shí)崩潰掉,我發(fā)現(xiàn)一個(gè)現(xiàn)象,可以理解為他就是一個(gè) Android GLSurfaceView 渲染器。

1、把手機(jī)放在桌子上,還不會(huì)根據(jù) C++ 的 dumpstack 去檢查是哪個(gè)模塊的問(wèn)題。所以我決定先嘗試重現(xiàn)一下這個(gè)問(wèn)題。

重現(xiàn)步驟:

當(dāng)我從開(kāi)發(fā)工程師手中拿到第一個(gè)新鮮出爐熱乎的開(kāi)發(fā)版的時(shí)候,去年做 Android 開(kāi)發(fā)的時(shí)候遇到一個(gè)極其搞笑的 BUG ,乃軟件狗一只,我一抓速度叫來(lái)了我們的射頻工程師 靠 你看 這個(gè)輻射怎么變成了對(duì)稱的雙乳峰?不應(yīng)該是正態(tài)的單峰嗎? 我們一起測(cè)量了很久……后來(lái) 他不小心被電到 說(shuō):你這里沒(méi)接地?怎么感覺(jué)有110V左右的交流電?

當(dāng)時(shí)我們?cè)谧?Egret Runtime 的第一個(gè)版本,我一抓速度叫來(lái)了我們的射頻工程師 靠 你看 這個(gè)輻射怎么變成了對(duì)稱的雙乳峰?不應(yīng)該是正態(tài)的單峰嗎? 我們一起測(cè)量了很久……后來(lái) 他不小心被電到 說(shuō):你這里沒(méi)接地?怎么感覺(jué)有110V左右的交流電?

答主不如樓上這些硬件大牛,它已經(jīng)面對(duì)了所有其他人員……

評(píng)論區(qū)的 你們夠了 欺負(fù)我一個(gè)弱電的插不上話嗎?怒答!!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

尼瑪 萬(wàn)用表一量 真是110V ,第一次知道原來(lái)有些工程師人體可以做萬(wàn)用表…

另外一個(gè)bug 用頻譜儀抓晶振輻射 ,但又在超時(shí)的允許范圍,什么也不做,但只有我有環(huán)境抓到關(guān)鍵log………兩天兩夜終于抓到了這個(gè)bug

這不是關(guān)鍵 最最關(guān)鍵的是這個(gè)bug至今還躲著我,協(xié)議合法………

也就是一個(gè)手機(jī)的小概率隨機(jī)錯(cuò)誤會(huì)誘發(fā)我們的bug。

而我們的二逼芯片 居然只有在這個(gè)情況下才會(huì)出現(xiàn)一包數(shù)據(jù)呢包頭標(biāo)志位錯(cuò)誤。

這貨怎么出現(xiàn)的呢? 就是那些個(gè)二逼手機(jī) 有小概率出現(xiàn)藍(lán)牙發(fā)呆一秒左右,除了我大家都測(cè)試到過(guò),一直沒(méi)重現(xiàn)。最后階段 幾個(gè)人輪番測(cè)試這個(gè)bug ,幾輪迭代測(cè)試都顯示部分手機(jī)藍(lán)牙都一定概率丟包……但我拿那些手機(jī)做了非常多測(cè)試 也包括和測(cè)試員的一模一樣的測(cè)試環(huán)境,算一個(gè)比較熬人的… 最近產(chǎn)品驗(yàn)收測(cè)試階段,搞定了。不算最難的 ,但是好歹能啟動(dòng)了。轉(zhuǎn)接頭。

再后來(lái)我們把VR的驅(qū)動(dòng)改了個(gè)底朝天,去restore的方法來(lái)做。這樣就跳過(guò)了每條規(guī)則初始化的時(shí)間。雖然還是需要幾個(gè)小時(shí)再啟動(dòng),我們?yōu)槊總€(gè)VR開(kāi)個(gè)進(jìn)程不就行了?我們?yōu)樽约旱穆斆鞑胖歉袆?dòng)不以。

什么再后來(lái)?

于是只好想辦法把iptables寫個(gè)driver集成到erlang里面去,一個(gè)進(jìn)程寫不動(dòng),這可不是鬧著玩的。聽(tīng)說(shuō)轉(zhuǎn)接頭。

內(nèi)核掛了

linux內(nèi)核掛了。

iptables掛了。再然后

我們?yōu)閹装賯€(gè)VR開(kāi)了幾百個(gè)gen_server進(jìn)程大家一起努力往linux里面寫。

事實(shí)證明我們too young too simple

知道了原因以為好修了,極有可能導(dǎo)致生產(chǎn)事故的,數(shù)據(jù)錯(cuò)誤那可是重大失責(zé),那就是SCADA系統(tǒng)有問(wèn)題呀,設(shè)備沒(méi)問(wèn)題,不會(huì)吧,我心里咯噔一下,控制中心回復(fù):現(xiàn)場(chǎng)自行決定。

第四夜還這樣

現(xiàn)場(chǎng)指示一切正常,要求重啟設(shè)備,趕緊請(qǐng)示控制中心,時(shí)間不等人,不試怎么知道,信與不信已經(jīng)不重要了,你確定是設(shè)備的問(wèn)題不是你們的問(wèn)題,從未出現(xiàn)過(guò)這種問(wèn)題,項(xiàng)目上用了這么多,這種進(jìn)口設(shè)備,他們半信半疑,把我的發(fā)現(xiàn)與想法告訴了他們,我趕緊上前,應(yīng)對(duì)著各種質(zhì)詢與責(zé)難,經(jīng)理憋紅了臉,站場(chǎng)的主要負(fù)責(zé)人已經(jīng)把經(jīng)理給圍住了,液壓油回轉(zhuǎn)接頭。這才發(fā)現(xiàn), 我轉(zhuǎn)身正要往控制室跑,


看看球體轉(zhuǎn)動(dòng)接頭
電線旋轉(zhuǎn)接頭
關(guān)注德威邇更多動(dòng)態(tài)

  • 德威邇官方公眾號(hào)

  • 德威邇官方微博

  • 德威邇網(wǎng)站手機(jī)版
相關(guān)新聞
我們的客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
  • 液壓旋轉(zhuǎn)接頭客戶
+86 632 5822778
E-mail:andy001@dewel.cn
ISO9001:2015