捉鬼后記

發(fā)布時(shí)間:2012-3-27 10:31    發(fā)布者:絕對好文
關(guān)鍵詞: debug , 捉鬼
作者:merlin2007

這次抓鬼的過(guò)程應該說(shuō)是成功的。說(shuō)起來(lái),有幾條經(jīng)驗可以總結:

要注意保存好原始資料

現在的設計復雜程度越來(lái)越高,周期也拉的較長(cháng)。短的幾個(gè)月,長(cháng)的可能就得以年記。這么長(cháng)的時(shí)間,中間還要穿插許多不同的內容,任誰(shuí)都很難保證記住設計過(guò)程中的每個(gè)細節。這樣一來(lái),隨時(shí)注意留下記錄,保存好所用技術(shù)文件及關(guān)鍵的數據就顯得極為重要。你的工作筆記本的作用不是教科書(shū),不一定非要清清爽爽,橫平豎直。它應更像一塊黑板,不但記下你的計算過(guò)程和結果,還可以包括你的問(wèn)題,困惑和疑問(wèn)。文字,數字,圖形,甚至情緒化的標記都可以是內容。這樣作的目的只有一個(gè):幫你記住盡可能多的信息。你在設計過(guò)程中隨手寫(xiě)下的幾個(gè)字,文件中標注的幾個(gè)數據,日后都有可能對你有所幫助,幫你回憶起當時(shí)的設計依據和條件.

以這次的事情為例,如果我沒(méi)有保留K公司原來(lái)的技術(shù)文件,就很難在事發(fā)后的分析中發(fā)現新老文件的差異,以判斷出可能的故障原因。即使后來(lái)排除了故障,也很難讓人相信,這是器件廠(chǎng)商的原因,而不是我設計的問(wèn)題。麥克很可能會(huì )問(wèn):為什么在開(kāi)始設計時(shí)沒(méi)有注意這個(gè)問(wèn)題, 而導致現在造成這么大的恐慌?那就真是有嘴說(shuō)不清了。

你不止是個(gè)硬件設計工程師

你的頭銜是個(gè)“硬件工程師”, 但你不止是一個(gè)“硬件”工程師,F在電子工程設計的集成度越來(lái)越高,硬件與軟件的界限也越來(lái)越模糊,F在一個(gè)硬件工程師所從事的工作,幾乎等同于若干年前一個(gè)系統設計師。我總喜歡將現在硬件工程師的工作比喻成“搭臺”的,軟件工程師的工作是“唱戲”的。觀(guān)眾看到的是演員在臺上五花八門(mén)的演出,可沒(méi)了舞臺,燈光和布景,那就啥也不是。

系統的功能要靠軟件實(shí)現,但它必須要在硬件環(huán)境的支持下。在現在的產(chǎn)品開(kāi)發(fā)過(guò)程中,多數情況下硬件設計要先于軟件開(kāi)始,軟件的工作要在硬件已經(jīng)形成的環(huán)境里進(jìn)行(我這里指的是那些直接與硬件打交道的底層驅動(dòng)程序和管理程序,而不是指上層的應用程序和操作系統)。這就決定了硬件設計在整個(gè)流程中起著(zhù)一定的引領(lǐng)作用。從某種程度上說(shuō)硬件設計者是整個(gè)設計階段的帶路人并不為過(guò)。因此你不能把自己僅僅局限在硬件的領(lǐng)域內.  在設計過(guò)程中必須要考慮:這樣作,對軟件會(huì )有什么要求?有沒(méi)有實(shí)現的可能?如何能使相應軟件設計工作變得簡(jiǎn)單? 你可能不需要去寫(xiě)程序,但你必須要了解與你的硬件相關(guān)的軟件部分如何工作。

還以上面的事為例:當我認為可以通過(guò)軟件修改來(lái)解決這個(gè)問(wèn)題時(shí),不搞清具體的相關(guān)寄存器的功能和操作方式,而只是簡(jiǎn)單地推給軟件組讓他們去修改,以應對存儲器的初始化的問(wèn)題,那結果很可能就是被置之不理,因為他們很可能不理解存儲器的上電過(guò)程與他們有什么關(guān)系。至于存儲器的錯誤那更是與他們無(wú)關(guān):你們搞硬件的難道不應該先把硬件故障排除后再找我們嗎?

給你的設計多留些余地

這里說(shuō)的余地,并不單指在選擇器件時(shí),其參數相對于應用環(huán)境要留有一定的余量。更指 的是,應該充分利用你的設計中的可用資源,為其功能或工作特征的改變或拓展留下空間。

比如說(shuō):按照現在的硬件結構,有沒(méi)有可能應對不同的使用環(huán)境?這個(gè)產(chǎn)品將來(lái)有沒(méi)有升級的要求? 如果要升級硬件要做哪些變動(dòng)?能否讓你的設計用很少的修改,甚至不修改,只通過(guò)改動(dòng)軟件來(lái)實(shí)現?你選用的器件將來(lái)會(huì )有變動(dòng)嗎?如果有,你能做到不修改電路板就實(shí)現嗎?

舉個(gè)例子:一個(gè)器件管腳的設置會(huì )導致不同的功能狀態(tài),那么有可能的話(huà),在電路中就不妨將上拉和下拉電阻都放上,在裝配時(shí)根據需要只安裝其中之一即可。再比如,如果你的設計中有FPGA,那么通常情況下它的管腳和內部邏輯單元的使用量最好控制在80%以下。一方面這樣FPGA的編譯/合成速度會(huì )很快,內部的定時(shí)關(guān)系也容易保證,同時(shí)剩余的管腳和邏輯單元也可能成為你的備用資源。分析一下你的設計,把那些將來(lái)有可能用來(lái)改變電路功能或特征的的某些信號(主要是控制類(lèi)信號),接到FPGA上,而不是簡(jiǎn)單地固定在一個(gè)邏輯電平上。這樣一旦有需要,只要修改你的FPGA設計即可。這都遠比你將來(lái)再修改電路板要容易的多。

只所以這樣做,是因為就現在硬件的復雜程度而言,翻新一版硬件所需時(shí)間和費用遠非軟件的修改所能比。單說(shuō)修改過(guò)程,一旦方案確定,軟件的修改只是敲敲鍵盤(pán)以及系統編譯的時(shí)間,幾乎沒(méi)有其他成本。而硬件的改動(dòng),即便你只是要增加一個(gè)電阻,電路圖-布線(xiàn)-元器件表-制板-裝配-調試這一系列過(guò)程少那個(gè)也不成。這種耗費往往是驚人的。更不要說(shuō)碰到前面提到的緊急情況。如果我在前面提到的設計中,不是簡(jiǎn)單的將QDR存儲器上的DOFF控制線(xiàn)固定死,而是連到FPGA上,那么我就有可能在FPGA中加一個(gè)簡(jiǎn)單的控制即可達到目的,而無(wú)需興師動(dòng)眾去麻煩千里之外的軟件組的人,所需的時(shí)間還要少得多。在板子上增加幾個(gè)電阻,多布幾條線(xiàn),不是很困難的事,但可能帶來(lái)的收益卻是不可低估的!

當然,所有這些都要在不影響主體設計性能的前提下,不能喧賓奪主。說(shuō)句玩笑的話(huà),這多少有點(diǎn)兒像諜戰劇中那些深藏不露的間諜臥底,武俠小說(shuō)中密不示人的行俠劍客。這些人從受領(lǐng)任務(wù)的那一天起,就大隱于世,從不張揚。只是冷眼旁觀(guān)他們的同伴建功立業(yè),爭奇斗艷。他們也許永遠不會(huì )被啟用,只能默默一生,直到終老。而如果有一天他們被召喚,那多半是形勢已經(jīng)到了關(guān)鍵時(shí)刻,生死關(guān)頭. 他們的出手一擊,有可能成為扭轉乾坤的勝負手,一決生死的殺手锏。到了那時(shí),你可能會(huì )由衷地感嘆,自己當初是多么“英明”。

如果這樣的比喻可以接受,就這樣來(lái)概括吧:

各位將軍,當驅動(dòng)你的大軍攻城略地之時(shí),別忘了埋下一支伏兵,留下幾個(gè)臥底。他們可能使你在關(guān)鍵時(shí)刻反敗為勝。

列位莊主, 在差遣你的鏢局出發(fā)上路之前,要記得派出幾個(gè)潛行的劍客,布放幾個(gè)隱身的保鏢。他們也許會(huì )讓你在生死關(guān)頭轉危為安。
本文地址:http://selenalain.com/thread-87831-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页