新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 軟件抗干擾經驗之一

        軟件抗干擾經驗之一

        作者: 時間:2016-11-22 來源:網絡 收藏
        軟件抗干擾經驗之一:用“軟件陷阱+程序口令”對付PC指針的彈飛

        本文引用地址:http://www.104case.com/article/201611/319649.htm

        當CPU受到外界干擾,有時PC指針會飛到另一段程序中,或跳到空白段去。

        其實,如果PC指針飛到空白段去,倒也好處理。只要在空白段設立軟件陷阱(攔截指令),將程序攔截到初始化段或程序錯誤處理段。

        但是,如果PC指針飛到另一段程序中去了,系統(tǒng)如何辦?小匠在這里推薦一種方法——程序口令,思路如下:

        1、首先,程序必須模塊化。每個模塊(子程序)執(zhí)行一個功能。每個模塊只有一個出口(RET)。

        2、設立一個模塊(子程序)ID寄存器。

        3、為每個子程序配置一個唯一的ID號碼。

        4、每當子程序執(zhí)行完畢,要返回(RET)之前,先將本子程序的ID號送入 ID寄存器

        5、返回到上級程序后,先判斷ID寄存器中的ID號。如果正確,則繼續(xù)執(zhí)行;如果不正確,則表示PC指針有可能已經跳錯了,子程序沒有按預計的出口返回,這時將程序攔截到初始化段或程序錯誤處理段。

        這種方法,如同在程序中設立了若干個崗哨,每次調用子程序返回后,都要對口令(ID號),驗明正身后再放行。再配合軟件陷阱,基本上可以將大多數PC指針彈飛的現象檢測到。

        到了程序錯誤處理段,要殺要剮(冷啟動還是熱啟動)就由您了。



        關鍵詞: 軟件抗干擾PC指

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 宜丰县| 且末县| 陆良县| 来宾市| 大新县| 九江县| 平安县| 临邑县| 思南县| 孟村| 义乌市| 临武县| 恩施市| 揭西县| 西安市| 乳源| 灵石县| 台南县| 安新县| 曲松县| 武隆县| 林甸县| 颍上县| 阜新| 清丰县| 东乌珠穆沁旗| 子洲县| 临高县| 大城县| 泰和县| 江华| 无棣县| 巧家县| 太谷县| 兖州市| 绵阳市| 苗栗县| 定州市| 饶阳县| 台东县| 疏附县|