一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

關(guān)于單片機(jī)程序跑飛死機(jī)的原因

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 2020-08-04 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

經(jīng)常接觸單片機(jī)的朋友,肯定遇到過(guò)單片機(jī)程序跑飛的問(wèn)題。由于程序較為復(fù)雜,所以一旦出現(xiàn)跑飛的現(xiàn)象就比較難以查找錯(cuò)誤出現(xiàn)的地方,網(wǎng)絡(luò)上對(duì)錯(cuò)誤的解釋和解決方法也比較五花八門,并不方便查找。小編特意幫大家整理了關(guān)于單片機(jī)程序跑飛死機(jī)的原因,大家快來(lái)看看能不能在其中找到自己想要答案吧。

單片機(jī)程序死機(jī),跑飛了
可以從以下幾個(gè)方面查找原因:

1、意外中斷

是否打開(kāi)了某個(gè)中斷,但是沒(méi)有響應(yīng)和清除中端標(biāo)志,導(dǎo)致程序一直進(jìn)入中斷,造成死機(jī)假象。

2、中斷變量處理不妥

若定義某些會(huì)在中斷中修改的全局變量,這時(shí)要注意兩個(gè)問(wèn)題:首先為了防止編譯器優(yōu)化中斷變量,要在這些變量定義時(shí)前加volatile;其次在主循環(huán)中讀取中斷變量前應(yīng)該首先關(guān)閉全局中斷,防止讀到一半被中斷給修改了,讀完之后再打開(kāi)全局中斷,否則出現(xiàn)造成數(shù)據(jù)亂套。

3、地址溢出,常見(jiàn)錯(cuò)誤為指針操作錯(cuò)誤

著重說(shuō)的是數(shù)組下標(biāo)使用循環(huán)函數(shù)中循環(huán)變量,如果循環(huán)變量沒(méi)控制好則會(huì)出現(xiàn)數(shù)組下標(biāo)越界,意外修改系統(tǒng)的寄存器造成死機(jī),這種情況下如果死機(jī)說(shuō)明運(yùn)氣好,否則后面不知道發(fā)生什么頭疼的事。

4、無(wú)條件的死循環(huán)

比如使用while(x),等待電平變化,正常情況下x都會(huì)變成0,就怕萬(wàn)一,因此最好加上時(shí)間限制。

5、看門狗沒(méi)有關(guān)閉

有的單片機(jī)即使沒(méi)使用看門狗開(kāi)機(jī)時(shí)也有可能意外自動(dòng)開(kāi)啟了最小周期的看門狗,導(dǎo)致軟件不斷復(fù)位,造成死機(jī)。這個(gè)要看芯片手冊(cè),最好在程序復(fù)位后首先應(yīng)該顯式清除看門狗再關(guān)閉看門狗。

6、堆棧溢出

最難查找的問(wèn)題,對(duì)于容量小的單片機(jī),盡量減少函數(shù)調(diào)用層級(jí),減少局部變量,從而減少壓棧的時(shí)候所需的空間。當(dāng)你把以上幾條都試過(guò)不能解決問(wèn)題,試一試把你的被調(diào)用少函數(shù)直接內(nèi)置到調(diào)用的地方并且把占用RAM大的局部變量改成全局變量,試一試說(shuō)不定就可以了。

通過(guò)本篇文章,大家是否找到了自己想要的問(wèn)題解決方法了呢?就算沒(méi)有找到,本篇文章也能幫助大家在一定程度上預(yù)防跑飛現(xiàn)象的發(fā)生。

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

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650502
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    26547

原文標(biāo)題:?jiǎn)纹瑱C(jī)程序總跑飛?小技巧幫你忙

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STC單片機(jī)范例程序

    電子發(fā)燒友網(wǎng)站提供《STC單片機(jī)范例程序.zip》資料免費(fèi)下載
    發(fā)表于 06-04 16:27 ?4次下載

    單片機(jī)各種復(fù)位電路原理

    使用哪種類型的單片機(jī),總要涉及到單片機(jī)復(fù)位電路的設(shè)計(jì)。而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場(chǎng)卻出現(xiàn)了“
    發(fā)表于 05-30 16:53

    晶振受到電磁干擾對(duì)單片機(jī)的影響

    單片機(jī)可以正常運(yùn)行的一個(gè)因素就是晶振的穩(wěn)定性。在工作過(guò)程中,晶振可能會(huì)受到電磁干擾的影響,導(dǎo)致單片機(jī)發(fā)生故障,甚至出現(xiàn)死機(jī)的情況。
    的頭像 發(fā)表于 03-20 18:01 ?651次閱讀

    單片機(jī)怎么寫(xiě)入程序

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

    單片機(jī)不工作的原因

    單片機(jī)不工作是一個(gè)復(fù)雜的問(wèn)題,可能涉及多個(gè)方面的因素。以下是對(duì)單片機(jī)不工作原因的詳細(xì)分析,旨在幫助技術(shù)人員或愛(ài)好者更好地理解和解決這一問(wèn)題。
    的頭像 發(fā)表于 10-17 18:11 ?3758次閱讀

    單片機(jī)異常復(fù)位的原因

    單片機(jī)異常復(fù)位是指單片機(jī)在正常工作過(guò)程中,非預(yù)期地返回到初始狀態(tài)或重啟。這種異常復(fù)位現(xiàn)象可能由多種因素引起,以下是對(duì)單片機(jī)異常復(fù)位原因的詳細(xì)分析:
    的頭像 發(fā)表于 10-17 17:56 ?3111次閱讀

    什么原因會(huì)導(dǎo)致單片機(jī)系統(tǒng)死機(jī)

    ______________________________________ 什么原因會(huì)導(dǎo)致單片機(jī)系統(tǒng)死機(jī)
    發(fā)表于 10-16 22:32

    什么原因會(huì)導(dǎo)致單片機(jī)程序

    ______________________________________ 什么原因會(huì)導(dǎo)致單片機(jī)程序
    發(fā)表于 10-16 22:31

    keil可以讀出單片機(jī)程序

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

    單片機(jī)燒錄程序用什么軟件

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

    單片機(jī)燒錄程序可以重新燒嗎

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

    單片機(jī)燒錄程序時(shí)為什么一直在檢測(cè)

    單片機(jī)燒錄程序時(shí),如果軟件一直在顯示“正在檢測(cè)單片機(jī)”,可能是由多種原因導(dǎo)致的。以下是一些常見(jiàn)的原因及其解決方法: 1. 連接問(wèn)題 USB轉(zhuǎn)
    的頭像 發(fā)表于 09-02 09:57 ?8094次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

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

    單片機(jī)燒錄程序的基本步驟是什么

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

    stm32單片機(jī)燒錄程序會(huì)擦除原來(lái)的程序

    在STM32單片機(jī)燒錄程序的過(guò)程中, 通常情況下會(huì)擦除原來(lái)的程序 ,并將新程序寫(xiě)入單片機(jī)的閃存(Flash)中。這一過(guò)程是通過(guò)燒錄工具(如S
    的頭像 發(fā)表于 09-02 09:42 ?4703次閱讀