久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3650|回復: 2
收起左側

程序跑死原因查找

[復制鏈接]
ID:379720 發表于 2018-7-27 09:38 | 顯示全部樓層 |閱讀模式
程序跑死原因查找:
    1. 意外中斷。是否打開了某個中斷,但是沒有響應和清除中端標志,導致程序一直進入中斷,造成死機假象
    2. 中斷變量處理不妥。若定義某些會在中斷中修改的全局變量,這時要注意兩個問題:首先為了防止編譯器優化中斷變量,要在這些變量定義時前加volatile,其次在主循環
中讀取中斷變量前應該首先關閉全局中斷,防止讀到一半被中斷給修改了,讀完之后再打開全局中斷;否則出現造成數據亂套。
    3. 地址溢出,常見錯誤為指針操作錯誤。我要著重說的是數組下標使用循環函數中循環變量,如果循環變量沒控制好則會出現數組下標越界,意外修改系統的寄存器造成死機
,這種情況下如果死機說明運氣好,否則后面不知道發生什么頭疼的事。
    4. 無條件的死循環;比如使用while(x);等待電平變化,正常情況下x都會變成0,就怕萬一,因此最好加上時間限制;
    5. 看門狗沒有關閉。有的單片機即使沒使用看門狗開機時也有可能意外自動開啟了最小周期的看門狗,導致軟件不斷復位,造成死機,這個要看芯片手冊,最好在程序復位后
首先應該顯式清除看門狗再關閉看門狗;
    6. 堆棧溢出。最難查找的問題,對于容量小的單片機,盡量減少函數調用層級,減少局部變量,從而減少壓棧的時候所需的空間。當你把以上幾條都試過不能解決問題,試一
試把你的被調用少函數直接內置到調用的地方并且把占用RAM大的局部變量改成全局變量,試一試說不定就可以了。

今天在編寫單片機程序的時候,由于中斷服務程序寫的不好,導致單片機程序總是跑飛,最后費了好長時間,花了很大功夫才找到問題原因,由此總結了單片機程序跑飛的三種現
象、原因及解決方法。
一、數組越界(數組溢出)
現象:單片機程序在函數中運行時,總是在運行到函數末尾,要跳出函數時,程序跑飛。
原因:數組越界(數組溢出),函數中定義的數組元素的個數小于程序中實際使用的數組元素的個數,例如在函數中定義了一個數組ucDataBuff[10],這個數組只有10個元素,但
是在函數中卻有這樣的語句ucDataBuff[10]=0x1a,這個語句是給數組的第11個元素賦值,:由于定義的數組只有10個元素,從而導致賦值語句中不知道把0x1a放到什么地方,從而
導致程序跑飛。
解決方法:如果在調試程序時,發現程序總是在函數執行完畢時跑飛,多數情況是發生了數組越界(數組溢出)的錯誤,仔細檢查函數中調用的數組是否存在越界(溢出)的情況。
二、中斷服務程序缺失
現象:程序運行過程中總是跑飛。
原因:程序中打開了某個中斷,但是卻沒有相應的中斷服務程序,從而導致在中斷發生后,找不到中斷服務程序入口,從而導致程序跑飛。
解決方法:檢查程序中是否存在打開了某個中斷,但是沒有相對應的中斷服務程序。
三:看門狗復位
現象:在執行一段較為好費時間的程序時,程序跑飛,并且總是跳到復位位置處。
原因:程序中使用了看門狗,但是沒有及時“喂狗”,從而導致看門狗復位,使程序直接跳到復位位置。
解決方法:根據程序運行時間,尤其是一定要計算清楚最耗時的那段程序的運行時間,然后準確設置看門狗的復位時長,定時“喂狗”,尤其是如果有死循環的情況,一定要在死
循環中記得“喂狗”。
四:啟用了中斷,就一定要設置中斷函數,并要關閉中斷標志。
五:亂用指針也可能造成這種
回復

使用道具 舉報

ID:107079 發表于 2019-4-23 09:51 | 顯示全部樓層
樓主您好,不知您是否遇到過這種情況:程序刷寫進去后,正常工作了很久,但突然有一天無法工作。復位后也不行,重新燒錄程序才恢復正常。
回復

使用道具 舉報

ID:520297 發表于 2019-4-25 15:07 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女一区二区 | 2020国产在线| 国产a级黄色录像 | av一级毛片 | 精品国产乱码久久久 | 天天操天天天干 | 欧美亚洲国语精品一区二区 | 欧美午夜一区二区三区免费大片 | 在线播放中文字幕 | 国产91在线 | 中日 | 亚洲另类视频 | 成年人免费在线视频 | 久久出精品 | 色永久| 日韩在线精品视频 | 日本精品国产 | 亚洲精品一区二区网址 | 国产丝袜人妖cd露出 | 亚洲+变态+欧美+另类+精品 | 91久久夜色 | 天堂亚洲 | 亚洲中午字幕 | 国产精品久久久久久久久久久久 | 精品亚洲一区二区三区 | 国产精品欧美一区二区三区不卡 | 欧美九九| 欧美二级| 亚洲精品91| 国产精品久久久久一区二区三区 | 久久久久久国产精品 | 91久久精品日日躁夜夜躁欧美 | caoporon| 久久精品一区二区三区四区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 精品久久久久久18免费网站 | 亚洲欧美中文日韩在线v日本 | 中文字幕 国产 | 成人精品鲁一区一区二区 | av资源在线看 | 成人av免费看| 成人精品一区二区 |