一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

探索80C51的三種非常規的復位技術(shù)

  • 相關(guān)推薦

探索80C51的三種非常規的復位技術(shù)

探索80C51的三種非常規的復位技術(shù) 標準80C51片內現有的復位邏輯比較簡(jiǎn)單,只有通過(guò)一條復位引腳RST進(jìn)行外部擴展。技術(shù)手冊中給出了上電復位(POR,power on reset)和人工復位(MRST,manual reset)電路的接線(xiàn)方法,借助于一只專(zhuān)用外圍芯片,如MAX813L或DSl323等,來(lái)擴充欠壓復位(LVR,low voltage reset)和看門(mén)狗復位(WDR,watch dog timerreset)也有文章介紹。
本文將介紹三種非常規擴展復位方式軟件復位(SWR,software reset)、軟硬件復位(SHR,software andhardware reset)和非法地址復位(IAR,illegal address reset)。

軟件陷阱技術(shù)及其改良方法

軟件陷阱(software trap)是一種捕捉程序“跑飛”的編程方法。通?梢栽诔绦蛑性O置軟件陷阱,引導程序失控的單片機跳轉到一個(gè)指定的地址去執行,最終回復到正常軌道上來(lái)。軟件陷阱可以設置在用戶(hù)程序的空隙處或者轉移指令之后,還可以利用一系列的陷阱指令來(lái)填充程序存儲器的空白區。實(shí)現軟件陷阱功能的指令是一個(gè)“5字節指令串”,通常包含2條單字節NOP指令和1條3字節跳轉指令。
NOP ;利用空操作指令
NOP ;來(lái)增加捕捉有效性
LJMP SWRST;無(wú)條件跳轉到指定地址去
其中“SWRST”可以是一段“軟件復位程序”的入口地址標號,也可以是復位矢量“0000H”,即主程序入口地址。
如果S W R S T等于復位矢量0000H,則會(huì )把捕捉到的跑飛程序引導到初始化程序入口地址去執行,從而達到回復到正常軌道的目的。這種處理方法只適合中斷功能沒(méi)有被啟用的場(chǎng)合?梢栽O想,假如是在(低級或高級)中斷服務(wù)程序中跑飛的,這時(shí)即使把程序拉回到起點(diǎn),而中斷激活觸發(fā)器不能夠被清除,會(huì )影響以后的中斷請求無(wú)法被CPU響應。
如果SWRST等于“軟件復位程序”的入口地址,則會(huì )引發(fā)一次“軟件復位”。關(guān)于軟件復位程序的設計方法,隨后介紹。
總之,這種方法的指導思想是指,把未使用的ROM空間用跳轉引導指令填滿(mǎn),作為軟件“陷阱”,以捕獲“飛掉”的程序,并強行將捕獲到的跑飛程序引向一個(gè)特定的地址,在那里由一段專(zhuān)門(mén)處理錯誤的程序進(jìn)行處理,以恢復系統的正常運行。為提高跑飛程序的捕獲率,通常還要在引導指令之前放置上幾條空操作指令NOP。理由是,8051的指令編碼采用的是不等長(cháng)方式,長(cháng)度分別為1~3字節,而程序跑飛又是通過(guò)非法隨機改變PC值形成的。假若跑飛后的PC值落到3字節指令LJMP的中間,就會(huì )把操作數當作操作碼來(lái)執行,將會(huì )產(chǎn)生不可預知的結果。為了提高捕捉的有效性,就在LJMP指令之前至少填充2條單字節的NOP指令。
如果把“5字節指令串”改換成如下作者新設計的“4字節指令串”,陷阱指令將會(huì )更加有效。理由是,該指令對應的目標碼為“00 20 00 20H”,這段碼無(wú)論重復多少次都是等同的。另外,應該在程序存儲器0020H開(kāi)始的3字節中再放置一條跳轉到“軟件復位程序”真正入口的中轉指令LJMP SWRST。經(jīng)過(guò)核查,-0020H~0022H字節恰好位于定時(shí)器T1中斷矢量區尾部和串口中斷矢量之前。
SWRST0 EQU 0020H:定義“軟件復位程序”的間接入口地址為“0020H”
NOP ;填充一條單字節的空操作指令,機器碼是“00H”
LJMP SWRST0 ;無(wú)條件跳轉到指定地址去。對應的機器碼是“20 00 20H”

軟件復位技術(shù)

軟件復位是一種新技術(shù),目前有越來(lái)越多的新型單片機配備了該功能。例如Philips公司的P 87LPC 700和P89LPC900系列、TI—BB公司的MSCl 200系列和SunPlus公司的SPMC65系列等,內部都設計了專(zhuān)門(mén)用于實(shí)現軟件復位的控制寄存器或者控制位。
軟件復位是在利用軟件陷阱技術(shù)或軟件看門(mén)狗技術(shù)時(shí),必需配套實(shí)施的一項后續處理工作。所謂“軟件復位”是一種由用戶(hù)軟件控制的復位活動(dòng),就是利用一系列指令來(lái)模擬硬件復位所實(shí)現的各種操作內容,并且重新從頭開(kāi)始執行用戶(hù)程序。
其中的操作內容應該包含:(1)對于標準80C51的21個(gè)特殊功能寄存器SFR的復位操作,利用MOV指令很容易實(shí)現。全部復位可能不是必需的,只管那些在用戶(hù)程序中用到的SFR即可,可以由用戶(hù)自己定制。(2)對于無(wú)統一編址的程序計時(shí)器PC的復位,利用一條跳轉指令即可。(3)中斷激活觸發(fā)器的復位既容易被人們忽略,也不容易實(shí)現。理由是它們對于用戶(hù)程序是不可見(jiàn)的,無(wú)法直接讀寫(xiě)其內容。有的編程人員采用LJMP 0000H(機器碼為20 0000H)作為軟件陷阱,認為直接跳轉到復位矢量就完成了軟件復位,就是這類(lèi)失誤案例的典型代表。
清除中斷激活觸發(fā)器有何必要呢?程序的跑飛是隨機發(fā)生的,其起飛點(diǎn)完全可能發(fā)生在低級或高級中斷服務(wù)子程序中,這時(shí)的中斷激活觸發(fā)器已經(jīng)被置位。如果在程序回復之后沒(méi)有及時(shí)清除它們,將阻止以后出現的所有的同級或低級中斷請求。

中斷激活觸發(fā)器包含高權組和低權組兩個(gè)觸發(fā)器,電路組成如圖1所示,該圖是根據作者的理解和經(jīng)驗繪制的。電路中包括1個(gè)邏輯或門(mén)G1、兩個(gè)S-R觸發(fā)器FFl和FF2。當CPU響應低級中斷請求之后,FFl被置位,其Q=0,封鎖“低權組”不再受理新的低級中斷請求;當CPU響應高級中斷請求之后,因為G1的作用而使FFl和FF2同時(shí)被置位,FFI的Q=0封鎖“低權組”,FF2的Q;0封鎖“高權組”,不再受理新的高級和低級中斷請求。
如何設計“軟件復位程序”呢?其編寫(xiě)方法如下。
SWRST: ;定義軟件復位程序的實(shí)際入口地址
CLR EA ;首先關(guān)閉中斷源總使能位
SETB FO ;設置一個(gè)軟件復位標志位

MOV PO,#0FFH;設定通用端口PO為高阻輸入狀態(tài)
MOV P1,#0FFH;設定通用端口P1為高阻輸入狀態(tài)
MOV P2,#0FFH;設定通用端口P2為高阻輸入狀態(tài)
MOV P3,#0FFH, 設定通用端口P3為高阻輸入狀態(tài)
MOV PSW,#00H;設定程序狀態(tài)字寄存器為原始值
……

下一頁(yè)

【探索80C51的三種非常規的復位技術(shù)】相關(guān)文章:

探索現代汽車(chē)涂裝技術(shù)03-19

關(guān)于現代教育技術(shù)的探索與實(shí)踐03-20

教育技術(shù)裝備的實(shí)踐探索論文05-02

探索高層建筑沉降觀(guān)測技術(shù)的應用03-18

微課在信息技術(shù)教學(xué)中的應用探索12-03

機電一體化技術(shù)的發(fā)展探索11-16

運用信息技術(shù)探索審計治理的科學(xué)化03-23

試論信息技術(shù)課網(wǎng)絡(luò )教學(xué)模式的探索03-16

探析《電工電子技術(shù)》課程教學(xué)探索和實(shí)踐03-03

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看