| MCU應(yīng)用系統(tǒng)調(diào)試方法 | | | | | <!--畫(huà)中畫(huà)廣告開(kāi)始--> | <!-- 廣告位 --><!-- $sign哪個(gè)頁(yè)面$digit位置$way等h不循環(huán)TR;X循環(huán)TR;$num顯示個(gè)數(shù) --> | <!--畫(huà)中畫(huà)廣告結(jié)束-->一、硬件調(diào)試方法:
單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開(kāi)的.許多硬件故障只有通過(guò)軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件故障后才和軟件一起聯(lián)調(diào)。
1.常見(jiàn)的硬件故障
(1)邏輯錯(cuò)誤
樣機(jī)硬件的邏輯錯(cuò)誤是由于設(shè)計(jì)錯(cuò)誤和加工過(guò)程中的工藝錯(cuò)誤而造成的,包括錯(cuò)線(xiàn)、開(kāi)路、短路、相位錯(cuò)誤、時(shí)序錯(cuò)誤等,其中最常見(jiàn)的是短路故障。
(2)元器件錯(cuò)誤
元器件錯(cuò)誤的原因有器件損壞或性能不符合要求,電解電容、二極管的極性接反或集成塊裝反等。
(3)可靠性差
應(yīng)用系統(tǒng)可靠性差的原因很多,如金屬化孔、接插件接觸不良、內(nèi)部和外部的干擾、電壓紋波系數(shù)過(guò)大、器件負(fù)載過(guò)重等均會(huì)造成系統(tǒng)的可靠性差。另外,走線(xiàn)和布置的不合理也會(huì)造成系統(tǒng)可靠性差。
(4)電源故障
電源故障包括:電壓值不符合設(shè)計(jì)要求、電源功率不足、負(fù)載能力差、紋波太重等。
2.硬件調(diào)試力法
(1)脫機(jī)調(diào)試
脫機(jī)調(diào)試是在加電前,先用萬(wàn)用表等工具,按圖紙仔細(xì)核對(duì)樣機(jī)線(xiàn)路是否正確,并對(duì)元器件的安裝、型號(hào)、規(guī)格等進(jìn)行仔細(xì)檢查,特別注意印制板加工和焊接時(shí)有無(wú)走線(xiàn)之間相互短路等。
(2)聯(lián)機(jī)調(diào)試
聯(lián)機(jī)前先切斷電源,把仿真插頭插到樣機(jī)的單片機(jī)插座上,檢查一下開(kāi)發(fā)機(jī)與樣機(jī)之間的電源、接地是否良好。一切正常后,即可打開(kāi)電源。通電后執(zhí)行開(kāi)發(fā)機(jī)讀/寫(xiě)指令,對(duì)用者樣機(jī)的存儲(chǔ)器I/O口進(jìn)行讀/寫(xiě)操作,進(jìn)行邏輯檢查。若有故障,可用示波器觀察有關(guān)點(diǎn)的波形,尋找和分析故障原因,并進(jìn)一步排除故障。
在用者系統(tǒng)的樣機(jī)(主機(jī)部分)調(diào)試好后,便可按入用者系統(tǒng)的其它外圍部件,如鍵盤(pán)、顯示器等,再進(jìn)一步進(jìn)行調(diào)試。
二、軟件調(diào)試方法:
軟件調(diào)試與所選用的軟件結(jié)構(gòu)有關(guān),如果采用模塊程序設(shè)計(jì)技術(shù),則逐個(gè)模塊調(diào)好后再進(jìn)行系統(tǒng)程序總調(diào)。如果采用實(shí)時(shí)多任務(wù)操作系統(tǒng),一般是逐個(gè)任務(wù)進(jìn)行調(diào)試。
對(duì)于模塊結(jié)構(gòu)程序.要一個(gè)個(gè)子程序分別調(diào)試。調(diào)試時(shí),一定要符合入口條件和出口條件,調(diào)試可用單步運(yùn)行和斷點(diǎn)運(yùn)行方式,通過(guò)檢查用者系統(tǒng)的CPU現(xiàn)場(chǎng)情況、RAM的內(nèi)容和I/O口的狀態(tài),檢測(cè)程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求,有無(wú)循環(huán)錯(cuò)誤、有無(wú)機(jī)器碼錯(cuò)誤以及轉(zhuǎn)移地址的錯(cuò)誤,同時(shí),還可以發(fā)現(xiàn)用者系統(tǒng)中存在的硬件設(shè)計(jì)錯(cuò)誤和軟件算法錯(cuò)誤。
各程序模塊通過(guò)后,則可以把相關(guān)功能塊連在一起進(jìn)行總調(diào)。這個(gè)階段若有故障,可以考慮各子程序運(yùn)行時(shí)是否破壞了現(xiàn)場(chǎng),緩沖單元、工作寄存器是否發(fā)生沖突,標(biāo)志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài)是否正常等等,若用者系統(tǒng)是在開(kāi)發(fā)機(jī)的監(jiān)控程序下運(yùn)行時(shí),還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。
單步和斷點(diǎn)調(diào)試后,還應(yīng)進(jìn)行連續(xù)調(diào)試,用以確定定時(shí)精度、CPU的實(shí)時(shí)響應(yīng)等問(wèn)題。
對(duì)于實(shí)時(shí)多任務(wù)操作系統(tǒng)的調(diào)試方法和模塊結(jié)構(gòu)的調(diào)試方法類(lèi)似,只是需逐個(gè)任務(wù)進(jìn)行調(diào)試,在調(diào)試某一個(gè)任務(wù)時(shí),同時(shí)也調(diào)試相關(guān)的子程序、中斷服務(wù)程序。逐個(gè)任務(wù)調(diào)試好后,再使各個(gè)任務(wù)同時(shí)運(yùn)行。
當(dāng)全部調(diào)試和修改完成后,將用者程序固化到EPROM中,插入用者樣機(jī)后,用者系統(tǒng)即能獨(dú)立工作,至此,單片機(jī)應(yīng)用系統(tǒng)研制完成。 | |