0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機程序設(shè)計調(diào)試幾點經(jīng)驗

j4AI_wujianying ? 來源:單片機精講吳鑒鷹 ? 2019-11-20 11:19 ? 次閱讀

1、程序的確定性比硬件大,不要害怕程序問題。

2、寫程序,最重要的不是學(xué)會某種語言,而是會分析問題并提出解決問題的方法。

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

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

模塊---打開冰箱門

1、抬起右手,移動到冰箱門把中心右側(cè)1cm處

2、彎曲右手手指,構(gòu)筑冰箱門3、以2kg的力量向后拉

4、完成

5、好的模塊化設(shè)計,模塊間的接口簡單明了??偟膩碚f,好看好改的程序就是好程序。

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

7、注釋不是程序,但可以幫助編寫者提高邊寫的可能性,也可以大大提高程序的可維護(hù)性。建議C語言程序注釋到函數(shù),一些重要的操作至少要注釋;匯編語言程序,至少注釋70%的語句行,建議一行一注。

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

9、故障分軟硬,軟故障最難找。軟故障多源于設(shè)計臨界所導(dǎo)致,在一定出發(fā)條件下發(fā)生,當(dāng)條件破壞時,故障可能消失得無影無蹤。軟故障的誤導(dǎo)性來源于對硬故障的經(jīng)驗積累。硬故障因為無需出發(fā)條件,人們往往用

嘗試---判斷--再嘗試1

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

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

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

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

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

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

16、當(dāng)一個系統(tǒng)由若干個部分組成時,尋找故障的時候可以將懷疑引起故障的部分更換到其他系統(tǒng)上,通過觀察故障現(xiàn)象是否隨該部分遷移來判斷BUG所在。

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44459

    瀏覽量

    631247
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    327

    瀏覽量

    21307
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    15635

原文標(biāo)題:單片機程序設(shè)計調(diào)試幾點經(jīng)驗

文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機怎么寫入程序

    程序通常涉及以下幾個步驟: 選擇單片機和開發(fā)環(huán)境 : 確定項目需求,選擇合適的單片機型號。 安裝相應(yīng)的開發(fā)環(huán)境,如Keil、IAR、MPLAB等。 硬件連接 : 將單片機連接到開發(fā)板或
    的頭像 發(fā)表于 10-21 11:21 ?116次閱讀

    單片機基本io功能調(diào)試過程

    單片機基本IO功能的調(diào)試過程涉及多個步驟,旨在確保IO口能夠正確地執(zhí)行輸入和輸出操作。以下是一個調(diào)試過程,涵蓋了從準(zhǔn)備階段到實際測試的關(guān)鍵步驟: 一、準(zhǔn)備階段 確定單片機型號和IO口
    的頭像 發(fā)表于 09-14 14:38 ?336次閱讀

    keil可以讀出單片機程序

    Keil是一款廣泛應(yīng)用于單片機程序開發(fā)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案。然而,關(guān)于Keil是否能直接“讀出”單片機
    的頭像 發(fā)表于 09-02 10:32 ?486次閱讀

    單片機燒錄程序用什么軟件

    單片機燒錄程序單片機開發(fā)過程中的一個重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機的ROM中,以實現(xiàn)對
    的頭像 發(fā)表于 09-02 10:05 ?573次閱讀

    單片機燒錄程序可以重新燒嗎

    單片機(Microcontroller Unit, MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機燒錄程序是指將編寫
    的頭像 發(fā)表于 09-02 10:04 ?653次閱讀

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    單片機燒錄原理 單片機燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機的存儲器中,使其能夠按照程序的指令運行。這個過程通常需要使用燒錄器
    的頭像 發(fā)表于 09-02 09:54 ?302次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序單片機開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機內(nèi)部的存儲器中,使
    的頭像 發(fā)表于 09-02 09:47 ?499次閱讀

    基于51單片機8路搶答器電路圖proteus仿真及程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機8路搶答器電路圖proteus仿真及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開
    發(fā)表于 06-19 14:15 ?1次下載

    應(yīng)用單片機開發(fā)的ST LINK調(diào)試器設(shè)計制作

    調(diào)試ST單片機的過程中,ST-LINK是一個很好使用的調(diào)試工具。今天,我們就根據(jù)網(wǎng)絡(luò)上的設(shè)計方案進(jìn)行簡化,設(shè)計制作一個ST LINK調(diào)試器,用于之后的
    發(fā)表于 03-06 10:26 ?911次閱讀
    應(yīng)用<b class='flag-5'>單片機</b>開發(fā)的ST LINK<b class='flag-5'>調(diào)試</b>器設(shè)計制作

    單片機交通燈程序設(shè)計中斷系統(tǒng)

    隨著社會的發(fā)展,交通問題逐漸突出,特別是城市交通問題愈加嚴(yán)重。為了更好地管理和調(diào)控交通,提高交通流暢度和安全性,交通燈系統(tǒng)成為了城市交通管理的重要組成部分。而單片機交通燈的程序設(shè)計中斷系統(tǒng),則是實現(xiàn)
    的頭像 發(fā)表于 01-24 16:16 ?822次閱讀

    如何提升單片機開發(fā)技術(shù)?

    選擇合適的單片機型號和外設(shè),能夠更好地滿足程序的需求,提高程序的運行效率。 問:如何進(jìn)行單片機程序
    發(fā)表于 01-05 10:14

    單片機程序讀取需要什么工具

    其他外設(shè)組成。開發(fā)板上有豐富的引腳和接口,可以用于連接外部傳感器、顯示器、按鍵等外設(shè)。使用開發(fā)板可以方便地調(diào)試和測試單片機程序,同時也能提供電源和時鐘信號。 編程器:編程器是用來將單片機
    的頭像 發(fā)表于 01-02 18:10 ?3451次閱讀

    單片機程序調(diào)試常見問題 STM32單片機一般有幾種調(diào)試方式

    SWD是STM32單片機常用的調(diào)試模式之一。它通過單一的調(diào)試引腳(SWDIO)和時鐘引腳(SWCLK)來進(jìn)行調(diào)試和編程操作。使用SWD調(diào)試
    的頭像 發(fā)表于 12-02 17:14 ?3257次閱讀

    單片機解密失敗有哪幾點原因呢?

    單片機解密失敗有哪幾點原因呢? 單片機解密失敗的原因有很多,下面將詳細(xì)列舉可能的原因,并逐一進(jìn)行解釋,以期為您提供一個詳盡、詳實、細(xì)致的文章。 1. 芯片廠商實施的硬件保護(hù)機制 現(xiàn)代單片機
    的頭像 發(fā)表于 11-07 10:17 ?793次閱讀

    單片機中RAM少有哪幾點原因?

    單片機中RAM少有哪幾點原因? 正文: 單片機是指把整個計算機系統(tǒng)集成在一個芯片之內(nèi),具有微型化、低功耗、低成本等特點的集成電路。單片機系統(tǒng)中RAM少常有
    的頭像 發(fā)表于 10-29 16:23 ?621次閱讀