亚洲人成网站18禁止天堂-国产精品一区在线观看网站-欧美精品在线播放第一页-中文字幕亚洲综合小综合

網(wǎng)站首頁

HOME

關(guān)于我們

ABOUT US

產(chǎn)品展示

PRODUCT

新聞中心

NEWS

成功案例

CASE

下載中心

DOWNLOAD

人才招聘

RECRUIT

在線留言

MESSAGE

聯(lián)系我們

CONTACT US

    技術(shù)文章
    聯(lián)系我們
    西安航普電子有限責(zé)任公司
    電話:029-81870107
    郵箱:hangpudianzi@163.com
    網(wǎng)址:www.dofazy.com
    公司地址:西安市電子四路西京三號2號樓17層
     
     
    技術(shù)文章
    嵌入式系統(tǒng)調(diào)試中偶發(fā)性問題解決技巧
    更新時(shí)間:2017-09-07 12:52:22    點(diǎn)擊:883次
    嵌入式系統(tǒng)軟件調(diào)試過程中,偶發(fā)性問題往往是一個(gè)令人頭痛的問題。這些問題的特點(diǎn)是:按一定概率出現(xiàn),具有不確定性。因此,如果不采取一些技巧,往往不容易捕捉到問題現(xiàn)場。因?yàn)閱栴}出現(xiàn)的特點(diǎn)是“稍縱即逝”。找不到問題出現(xiàn)的現(xiàn)場,則無法深入分析問題出現(xiàn)的機(jī)理原因,只能通過猜測問題原因并嘗試修改,然后觀察問題是否再出現(xiàn),如果問題看起來不再出現(xiàn)則認(rèn)為問題解決了,但是對于問題的實(shí)質(zhì)原因,卻難以說出個(gè)究竟來。這種方法雖然可以避免問題,但是無法從根本解決問題,很可能導(dǎo)致問題復(fù)發(fā)。

      對付偶發(fā)性問題的基本策略是:

      (1)通過問題現(xiàn)象,初步判斷問題的出現(xiàn)點(diǎn)。

     ?。?)用多種手段,鎖定問題現(xiàn)場。

     ?。?)用驗(yàn)證的方法放大問題點(diǎn),使之由偶發(fā)性問題變?yōu)楸匕l(fā)問題。

     ?。?)根據(jù)問題出現(xiàn)機(jī)理,提出解決對策

      (5)驗(yàn)證解決對策的可靠性。

      下面詳細(xì)介紹三種具體的方法來鎖定偶發(fā)性問題:

      (1)  如果對實(shí)時(shí)性不高,那么可以采用文件、串口等記錄手段記錄程序運(yùn)行過程中的各個(gè)狀態(tài)、關(guān)鍵變量的編號,便于發(fā)生問題后跟蹤分析。

      (2)  如果實(shí)時(shí)性要求很高,定義若干個(gè)公共數(shù)組變量,用于記錄在程序運(yùn)行過程中各關(guān)鍵變量和現(xiàn)場數(shù)據(jù),增加條件停止的程序,即所謂的陷阱程序。當(dāng)發(fā)生問題后,程序跑到陷阱程序中  可以通過停止運(yùn)行或把公共變量通過串口、屏幕輸出,觀察分析問題原因。

      (3)  ARM嵌入式系統(tǒng)中,如果程序出現(xiàn)突然復(fù)位或者死機(jī)時(shí),如何找回現(xiàn)場?很簡單,只需要在啟動(dòng)點(diǎn)上再設(shè)一個(gè)斷點(diǎn),當(dāng)程序復(fù)位或死機(jī)時(shí),并停止運(yùn)行時(shí),觀察R13,然后 在內(nèi)存中找到R13所指的程序段,反匯編之(AXD可以反匯編內(nèi)存),就可以大概分析出哪個(gè)函數(shù)出問題。然后追溯到對應(yīng)的C代碼上,在該C代碼之前若干行設(shè)置斷點(diǎn),然后單步運(yùn)行,可以觀察到問題再現(xiàn)。

      (4) 用多余的I/O口來跟蹤程序的運(yùn)行狀態(tài),方法是:當(dāng)程序運(yùn)行到某程序段時(shí)某輸出口為高電平,否則為低電平。用示波器觀察輸出口狀態(tài),如果問題出現(xiàn)在高電平,則可以初步判定可能該段程序有問題,可以深入跟蹤之。這在前后臺系統(tǒng)中比較管用,在多任務(wù)系統(tǒng)中, 可以考慮用多引腳組合起來跟蹤。這種方法對于實(shí)時(shí)測量系統(tǒng)中跟蹤程序很好用。

    上一篇: 利用FPGA和USB總線的視頻圖像的采集與處理系統(tǒng)設(shè)計(jì)
    下一篇: HDL設(shè)計(jì)探究
    ?
    版權(quán)所有 ? 西安航普電子有限責(zé)任公司 未經(jīng)許可

    嚴(yán)禁復(fù)制 陜ICP備08100257號 建站/推廣/維護(hù)/安全:西安利友科技