<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機程序調試幾點(diǎn)經(jīng)驗

單片機程序調試幾點(diǎn)經(jīng)驗

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏
1、程序的確定性比硬件大,不要害怕程序問(wèn)題。

2、寫(xiě)程序,最重要的不是學(xué)會(huì )某種語(yǔ)言,而是會(huì )分析問(wèn)題并提出解決問(wèn)題的方法。

本文引用地址:http://dyxdggzs.com/article/201611/321280.htm

3、含有中斷的程序較為復雜,需要編寫(xiě)者清楚同一時(shí)刻,我在做什么,其他人在做什么,用“并發(fā)”的方式思考問(wèn)題,才能寫(xiě)好。

4、程序模塊化是為了編寫(xiě)而不是為了運行,模塊化和函數是兩個(gè)不同的概念,函數是為了將需要多次使用的代碼統一編寫(xiě),以便減少程序代碼量,便于維護;模塊化是指將復雜的程序功能化整為零而成的功能塊,一個(gè)模塊可能由多個(gè)函數組成,也可能就是一個(gè)函數,還有可能只是一段緊密相連的代碼塊。

模塊---打開(kāi)冰箱門(mén)

1、抬起右手,移動(dòng)到冰箱門(mén)把中心右側1cm處

2、彎曲右手手指,構筑冰箱門(mén)

3、以2kg的力量向后拉

4、完成

5、好的模塊化設計,模塊間的接口簡(jiǎn)單明了??偟膩?lái)說(shuō),好看好改的程序就是好程序。

6、編寫(xiě)程序的好習慣是分模塊編寫(xiě),邊寫(xiě)邊測試,在通過(guò)測試的模塊基礎上編寫(xiě)下一個(gè)模塊,可以減少程序出現問(wèn)題的可能性,快速排除與問(wèn)題相關(guān)的模塊并定位到程序語(yǔ)句。

7、注釋不是程序,但可以幫助編寫(xiě)者提高邊寫(xiě)的可能性,也可以大大提高程序的可維護性。建議C語(yǔ)言程序注釋到函數,一些重要的操作至少要注釋?zhuān)粎R編語(yǔ)言程序,至少注釋70%的語(yǔ)句行,建議一行一注。

8、程序有BUG是很正常的,要學(xué)會(huì )找BUG的方法。

9、故障分軟硬,軟故障最難找。軟故障多源于設計臨界所導致,在一定出發(fā)條件下發(fā)生,當條件破壞時(shí),故障可能消失得無(wú)影無(wú)蹤。

軟故障的誤導性來(lái)源于對硬故障的經(jīng)驗積累。硬故障因為無(wú)需出發(fā)條件,人們往往用
嘗試---判斷--再?lài)L試

10、單片機軟件和硬件密不可分,查找問(wèn)題時(shí)要兩者兵種,不可死認一方。

11、Debug高手和新手間的區別,高手知道該如何去找,而新手會(huì )迷茫。

12、平時(shí)就要注意積累。學(xué)習軟硬件只是,還要熟悉自己的實(shí)際應用,包括應用條件,否則會(huì )對放在面前,對推理極有價(jià)值的關(guān)鍵現象視而不見(jiàn)。找BUG可以用“猜”的方法,但是“猜”完了要推理到所有的現象上去“驗證”。所以我們說(shuō)“懷疑---否定---再懷疑---再否定,直到找到真理所在”,前面的“嘗試---判斷---再?lài)L試”是找BUG的基本方法。

13、在BUG面前,新手和高手初始化狀態(tài)是一樣的,只是高手有意識去找現象用于分析,新手看著(zhù)現象發(fā)呆罷了。

14、論據有兩種獲得方式---尋找和傻等,高手以尋找為主,新手以傻等為主。

15、隨機對隨機的方式是一種在查找小概率軟故障時(shí)用得極端確認方法,需要使用者對故障的基本特征熟練掌握,明確“小概率事件很少發(fā)生”的原理。

16、當一個(gè)系統由若干個(gè)部分組成時(shí),尋找故障的時(shí)候可以將懷疑引起故障的部分更換到其他系統上,通過(guò)觀(guān)察故障現象是否隨該部分遷移來(lái)判斷BUG所在。

17、將精力集中在需要查找的部分,排除其他模塊的影響,用最簡(jiǎn)單的方法去判斷,這就是模塊隔離法的價(jià)值所在。

18、發(fā)生時(shí)間相關(guān)性BUG,其分開(kāi)測試正確,合并測試出錯的特性往往讓初學(xué)者抓狂,在調試含有中斷的程序時(shí),一定要多條思路,懷疑程序的時(shí)間相關(guān)性。

19、因為只有在實(shí)際運行時(shí)才會(huì )表現出來(lái),時(shí)間相關(guān)性BUG比較難于查找,這也就是我們建議程序在實(shí)際環(huán)境中調試,而不是仿真環(huán)境下調試的原因之一,遵守基本規則編寫(xiě)程序是避免時(shí)間相關(guān)性BUG說(shuō)呢之所有BUG的根源。多觀(guān)察現象,積累判斷依據是找時(shí)間相關(guān)性BUG的法寶。雖然寫(xiě)程序很累,只要我們不斷的積累經(jīng)驗不斷的學(xué)習,樂(lè )趣自然在其中,當我們開(kāi)發(fā)成功一個(gè)產(chǎn)品我想得到的不僅僅是一個(gè)產(chǎn)品,還有自豪和滿(mǎn)足吧.程序員是一個(gè)有激情的工作,希望我們都能繼續寫(xiě)下去.



關(guān)鍵詞: 單片機程序調

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>