• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Linux的嵌入式設(shè)備多狀態(tài)重啟記錄系統(tǒng)設(shè)計與實現(xiàn)

      2019-05-24 14:17王晨光孫文勝
      軟件導(dǎo)刊 2019年5期

      王晨光 孫文勝

      摘 要:近年來,隨著嵌入式技術(shù)的迅猛發(fā)展,嵌入式產(chǎn)品已滲透到生產(chǎn)與生活各個方面,嵌入式設(shè)備運行穩(wěn)定性則顯得愈發(fā)重要。針對嵌入式設(shè)備運行異?,F(xiàn)場難復(fù)現(xiàn)的問題,設(shè)計一種基于Linux的嵌入式設(shè)備多狀態(tài)重啟記錄系統(tǒng),可為設(shè)備問題定位提供重要的系統(tǒng)參考數(shù)據(jù),實現(xiàn)嵌入式設(shè)備多狀態(tài)重啟數(shù)據(jù)記錄。系統(tǒng)選擇EEPROM掉電記憶存儲芯片,結(jié)合嵌入式Linux系統(tǒng)中的看門狗驅(qū)動、EEPROM驅(qū)動和reboot命令,完成嵌入式設(shè)備斷電重啟、看門狗重啟與reboot命令正常重啟3種重啟狀態(tài)統(tǒng)計記錄。該系統(tǒng)為維護設(shè)備的穩(wěn)定運行提供了可靠方法,具有較高的實際應(yīng)用價值。

      關(guān)鍵詞:Linux;嵌入式設(shè)備;reboot;EEPROM;看門狗中斷;重啟記錄

      DOI:10. 11907/rjdk. 182250

      中圖分類號:TP319 文獻標(biāo)識碼:A 文章編號:1672-7800(2019)005-0125-05

      Abstract: With the rapid development of embedded technology in recent years, embedded device products have penetrated into every corner of life and production, and the stability of embedded device operation has become increasingly important. For the abnormal operation of the embedded device and difficulty to reproduce the scene, this paper proposes a multi-state restart recording system for embedded devices based on Linux to provide important system reference data for device problem location, enabling multiple times of multi-state restart data logging of embedded devices. This system selects the EEPROM power-down memory storage chip, combined with the watchdog driver, EEPROM driver and reboot command in the embedded Linux system. It completes the record of three reboot states for the embedded device power-off reboot, watchdog reboot, and reboot command normal reboot. This system provides a reliable method for stable operation and maintenance of the equipment, and has a high practical application value.

      Key Words: Linux;embedded devices;reboot; EEPROM;watchdog interrupt system; reboot record

      0 引言

      近年來,在計算機、互聯(lián)網(wǎng)和通信技術(shù)高速發(fā)展的同時,嵌入式系統(tǒng)開發(fā)技術(shù)也發(fā)展迅速,且應(yīng)用范圍急劇擴大[1]。然而,在嵌入式設(shè)備中軟件出現(xiàn)故障的概率遠高于硬件,成為影響系統(tǒng)正常運行的主要因素,主要原因是軟件故障環(huán)境很難再現(xiàn)。軟件運行狀態(tài)與很多因素有關(guān),如人為操作因素、環(huán)境因素等。由于開發(fā)環(huán)境與場外應(yīng)用環(huán)境存在差異,研發(fā)人員必須親赴現(xiàn)場進行故障定位,從而增加了額外投入成本。

      在國外,最早由Munson等[2]提出軟件黑匣子技術(shù),其構(gòu)建方法為軟件故障定位提供了新途徑,并且該技術(shù)在業(yè)界已有較多應(yīng)用。軟件黑匣子是通過對目標(biāo)軟件的改造,將黑匣子植入其中,在軟件運行過程中將模塊信息記錄到內(nèi)部存儲器后,再慢慢轉(zhuǎn)移到外部存儲器件中。但其會對系統(tǒng)模塊造成一定影響,當(dāng)某部分出現(xiàn)問題時,將導(dǎo)致一些重要數(shù)據(jù)丟失。一旦發(fā)生單板重啟,黑匣子則無法還原事故現(xiàn)場,達不到問題定位目的。為了解決該問題,業(yè)界提出采用系統(tǒng)內(nèi)存空間或非易失性RAM作為黑匣子記錄載體。該方法雖然介紹在一定程度上可以記錄非斷電狀態(tài)下的異常數(shù)據(jù)信息,但無法統(tǒng)計與記錄設(shè)備掉電情況,且在無人監(jiān)管情況下,無法記錄設(shè)備重啟的歷史信息數(shù)據(jù)。

      實驗室中的嵌入式產(chǎn)品在測試完成后進行實際應(yīng)用時,仍會出現(xiàn)很多故障及不穩(wěn)定現(xiàn)象[3]。許多文獻從不同角度研究嵌入式系統(tǒng)的穩(wěn)定性問題,并提出很多解決辦法。但嵌入式系統(tǒng)是一個十分復(fù)雜的系統(tǒng),只有從系統(tǒng)硬件、軟件以及結(jié)構(gòu)設(shè)計等方面全面考慮,對各種抗干擾技術(shù)進行綜合應(yīng)用,才能有效提高系統(tǒng)抗干擾性能[4-5]。

      維護嵌入式產(chǎn)品運行穩(wěn)定性是十分必要的,然而,當(dāng)前加載有Linux系統(tǒng)的嵌入式設(shè)備產(chǎn)品(例如網(wǎng)絡(luò)攝像機IPC)在系統(tǒng)運行層面僅作了看門狗保護,設(shè)備一旦出現(xiàn)程序運行異常,則會觸發(fā)看門狗重啟整個系統(tǒng),以防止設(shè)備卡死[6]。這是規(guī)避嵌入式設(shè)備運行不穩(wěn)定情況的一種常用方法,但對于后期問題定位與維護沒有任何幫助。嵌入式設(shè)備重啟方式可分為3類:斷電重啟,系統(tǒng)電源關(guān)閉后重新上電啟動;非斷電軟重啟,在系統(tǒng)電源工作正常的情況下,通過系統(tǒng)軟件主動重啟設(shè)備;非斷電看門狗觸發(fā)重啟,因嵌入式設(shè)備軟件運行異常導(dǎo)致看門狗中斷重啟整個系統(tǒng)。以某種機制記錄嵌入式設(shè)備上一次重啟狀態(tài)類型,可為設(shè)備問題定位提供重要的系統(tǒng)參考數(shù)據(jù)。針對嵌入式設(shè)備系統(tǒng)異常重啟的情況,本文參考黑匣子技術(shù),使用掉電存儲芯片作為信息記錄載體,對其進行精簡改進后,提出基于Linux的嵌入式設(shè)備多狀態(tài)重啟記錄系統(tǒng)。

      1 設(shè)備重啟記錄系統(tǒng)設(shè)計

      1.1 工作原理

      嵌入式設(shè)備關(guān)機重啟原因大致可分為3類:設(shè)備斷電后再次上電重啟、設(shè)備操作人員主動重啟、設(shè)備軟件運行異常觸發(fā)看門狗重啟。在嵌入式設(shè)備工作過程中,通過設(shè)備重啟記錄系統(tǒng)將每次設(shè)備重啟信息記錄入EEPROM存儲芯片中,可以記錄以上3類設(shè)備重啟狀態(tài)、重啟時間及系統(tǒng)內(nèi)運行業(yè)務(wù)參數(shù)信息等[7-8]。用戶可通過Linux系統(tǒng)的proc接口快捷查詢與管理重啟記錄數(shù)據(jù),以便于進行設(shè)備穩(wěn)定性分析及問題定位。該重啟狀態(tài)記錄系統(tǒng)涉及Linux系統(tǒng)與嵌入式平臺多個功能模塊,可結(jié)合相應(yīng)模塊完成對嵌入式設(shè)備多狀態(tài)重啟信息記錄。

      1.2 系統(tǒng)框圖設(shè)計

      嵌入式設(shè)備重啟狀態(tài)記錄系統(tǒng)應(yīng)具備以下特點:

      (1)嵌入式硬件平臺。該嵌入式設(shè)備可移植并運行Linux系統(tǒng),為用戶提供Linux終端管理環(huán)境,用戶可通過終端命令管理設(shè)備硬件資源。

      (2)EEPROM存儲芯片。EEPROM為帶電可擦除可編程只讀存儲器,是一種掉電后數(shù)據(jù)不會丟失的存儲芯片,用于記錄設(shè)備每次重啟的狀態(tài)數(shù)據(jù)與時間數(shù)據(jù)。通常為I2C總線式串口通信,在存儲空間不足的情況下,可通過I2C總線擴展多塊EEPROM存儲芯片。

      (3)看門狗中斷機制。該嵌入式平臺處理器需包含看門狗所需的特殊寄存器,如看門狗計數(shù)器及看門狗計數(shù)器溢出中斷標(biāo)志寄存器。

      (4)reboot命令。移植Linux系統(tǒng)需支持reboot命令,用于處理設(shè)備主動重啟狀態(tài)數(shù)據(jù)記錄。

      (5)看門狗驅(qū)動程序。移植Linux系統(tǒng)需加載看門狗驅(qū)動程序,用于管理看門狗設(shè)備并記錄嵌入式設(shè)備軟件運行異常導(dǎo)致設(shè)備重啟的狀態(tài)信息記錄。

      (6)EEPROM驅(qū)動程序。移植Linux系統(tǒng)需加載EEPROM存儲芯片驅(qū)動程序,所有設(shè)備重啟信息都將通過該驅(qū)動程序記錄入EEPROM芯片中。EEPROM存儲芯片通常為I2C總線協(xié)議通信,即該驅(qū)動程序需完成I2C總線協(xié)議讀寫操作。

      根據(jù)以上特點,該嵌入式設(shè)備多狀態(tài)重啟記錄系統(tǒng)設(shè)計框架如圖1所示。

      2 系統(tǒng)硬件設(shè)計

      嵌入式設(shè)備重啟狀態(tài)記錄系統(tǒng)開發(fā)平臺為JZ2440,嵌入式微處理器為S3C2440,是三星公司開發(fā)的一款基于Arm9內(nèi)核的微處理器。EEPROM芯片為M24128 (128-Kbit serial I2C bus EEPROM),共16KByte。EEPROM內(nèi)部存儲數(shù)據(jù)地址范圍為0X0000—0X3FFF。

      2.1 EEPROM工作電路

      意法半導(dǎo)體的M24128是一款128kbit的I2C串口總線EEPROM存儲芯片,相對于同類其它型號的EEPROM,M24128有著最大的存儲空間,可以存儲更多數(shù)據(jù),而無需通過總線擴展[9]。從成本與擴展便捷性方面考慮,EEPROM適合嵌入式設(shè)備針對少量數(shù)據(jù)的存儲需求。其工作電路如圖2所示。

      2.2 EEPROM擴展

      對于重啟次數(shù)相對頻繁的嵌入式設(shè)備,M24128的存儲空間難以滿足需求,針對該情況,可適當(dāng)擴展多片EEPROM存儲芯片[10]。以3塊EEPROM設(shè)備通過I2C總線擴展情況為例[11],如圖3所示。

      3 系統(tǒng)軟件設(shè)計

      結(jié)合EEPROM驅(qū)動程序、看門狗驅(qū)動程序與reboot命令完成對嵌入式設(shè)備斷電重啟、看門狗重啟及用戶主動重啟3種不同重啟狀態(tài)信息的記錄。

      3.1 EEPROM驅(qū)動程序

      Linux系統(tǒng)驅(qū)動程序可以直接編譯進內(nèi)核鏡像中,在內(nèi)核啟動過程中完成驅(qū)動程序加載,也可編譯為內(nèi)核模塊,在Linux系統(tǒng)啟動后,在其它腳本中加載該模塊。模塊一旦被加載,則與內(nèi)核中其它部分完全相同[12-14]。在嵌入式設(shè)備重啟狀態(tài)記錄系統(tǒng)中,EEPROM驅(qū)動程序?qū)⒈痪幾g進內(nèi)核鏡像中,從而省去了啟動后對內(nèi)核模塊腳本的加載過程,同時增大了內(nèi)核鏡像 [15],可視具體嵌入式設(shè)備選擇不同加載方法。

      EEPROM驅(qū)動程序需包括基本的I2C總線讀寫操作功能,以實現(xiàn)在EEPROM存儲芯片中讀寫數(shù)據(jù)。M24128寫數(shù)據(jù)支持兩種模式,一種為字節(jié)寫,即一次寫入1Byte數(shù)據(jù)到EEPROM中;另一種為頁寫,M24128頁大小為64Byte,即一次寫入64Byte數(shù)據(jù)。根據(jù)M24128數(shù)據(jù)手冊,兩種寫操作速度相差不大,都在5ms之內(nèi),故EEPROM驅(qū)動程序需支持以上兩種寫操作模式。綜合考慮設(shè)備重啟信息管理效率與EEPROM存儲空間利用率,將EEPROM存儲空間劃分為不同功能區(qū)塊。

      M24128芯片存儲空間為16Kbyte,其可訪問的地址空間為0X0000-0X3FFF,分別劃分為斷電重啟標(biāo)志區(qū)、重啟次數(shù)統(tǒng)計區(qū)與數(shù)據(jù)記錄區(qū),如圖4所示。

      (1)斷電重啟標(biāo)志區(qū)。斷電重啟標(biāo)志區(qū)劃分1Byte大小空間,訪問地址為0X0000。針對嵌入式設(shè)備斷電重啟的情況,因斷電是突然發(fā)生的,設(shè)備斷電關(guān)機前無法獲知即將關(guān)機信息,因此設(shè)備無法在斷電之前完成設(shè)備關(guān)機重啟信息記錄。故在EEPROM設(shè)備中特劃分此區(qū)域,用于判斷上一次是否為斷電重啟??稍谠O(shè)備斷電后再次上電開機后,對此次斷電重啟狀態(tài)進行判斷,并將相關(guān)數(shù)據(jù)記錄入EERPOM存儲芯片中。

      (2)重啟次數(shù)統(tǒng)計區(qū)。重啟次數(shù)統(tǒng)計區(qū)劃分1Byte大小空間,訪問地址緊隨斷電重啟標(biāo)志區(qū),為0X0001。該區(qū)域數(shù)據(jù)可發(fā)揮兩方面作用:①用于統(tǒng)計嵌入式設(shè)備在各種情況下的設(shè)備重啟總次數(shù);②用于計算下一個可用存儲塊,并在數(shù)據(jù)記錄區(qū)進行具體說明。

      (3)數(shù)據(jù)記錄區(qū)。在EEPROM中將數(shù)據(jù)記錄區(qū)劃分為多個Block塊,每個Block用于記錄一次嵌入式設(shè)備重啟信息。綜合設(shè)備重啟數(shù)據(jù)信息大小與EEPROM的寫效率,將每個Block大小劃分為64Byte。在該情況下需要考慮,每次設(shè)備重啟時,重啟數(shù)據(jù)應(yīng)存入哪個Block塊中。該地址是根據(jù)重啟次數(shù)統(tǒng)計區(qū)中的數(shù)據(jù)計算出的EEPROM頁地址,每次重啟次數(shù)加1,相應(yīng)的Block存儲地址則向下偏移64Byte。

      3.2 watchdog驅(qū)動及看門狗中斷服務(wù)函數(shù)

      在嵌入式設(shè)備中,看門狗是一種常見機制,用于檢測設(shè)備軟件運行極端異常情況下導(dǎo)致的設(shè)備卡死情況,一旦發(fā)生卡死現(xiàn)象則重啟整個嵌入式設(shè)備[16-17]??撮T狗設(shè)備驅(qū)動程序包括以下兩方面工作:

      (1)初始化看門狗基本功能,包括看門狗啟停、喂狗時間參數(shù)設(shè)置、喂狗線程創(chuàng)建和看門狗中斷配置等。在驅(qū)動程序中注冊管理看門狗設(shè)備的proc接口,提供給用戶使用。

      (2)在嵌入式設(shè)備重啟狀態(tài)記錄系統(tǒng)中,看門狗中斷服務(wù)函數(shù)[18]承擔(dān)著設(shè)備運行異常重啟信息記錄任務(wù),即在看門狗中斷發(fā)生后,進入中斷服務(wù)函數(shù)。在此需完成對EEPROM存儲芯片的讀寫操作,將此次設(shè)備重啟信息記錄在EEPROM中。

      看門狗工作流程如圖5所示。

      3.3 reboot系統(tǒng)命令

      reboot是一個集成在Busybox工具中的命令[19],其功能是完成Linux系統(tǒng)重啟,對于嵌入式設(shè)備而言,即重啟該設(shè)備。在嵌入式設(shè)備重啟狀態(tài)記錄系統(tǒng)中,需通過reboot命令實現(xiàn)對設(shè)備常規(guī)重啟狀態(tài)的信息記錄,記錄重啟信息依賴EEPROM驅(qū)動程序提供的接口完成,所以加載EEPROM驅(qū)動程序之后,reboot命令才能將數(shù)據(jù)寫入EEPROM。通過修改reboot命令源碼,根據(jù)嵌入式平臺重新編譯Busybox工具,并將其編譯到Linux內(nèi)核鏡像中[20-21]。

      3.4 系統(tǒng)軟件流程

      從系統(tǒng)運行角度可將整個系統(tǒng)分為4個階段:嵌入式設(shè)備啟動階段、看門狗模塊加載階段、嵌入式設(shè)備運行階段與嵌入式設(shè)備重啟階段,下面將針對各個階段進行詳細闡述,如圖6所示。

      (1)嵌入式設(shè)備啟動階段主要完成EEPROM存儲芯片的驅(qū)動程序加載,內(nèi)核啟動過程中由Linux內(nèi)核完成驅(qū)動程序加載。該階段完成的工作為讀取EEPROM存儲芯片上斷電重啟標(biāo)志區(qū),數(shù)字0表示上次設(shè)備重啟為reboot重啟或WatchDog重啟,數(shù)字1表示上次設(shè)備重啟為斷電重啟。若該值為0,擦除此標(biāo)志區(qū)并寫入1;若該值為1,將EEPROM中設(shè)備重啟次數(shù)統(tǒng)計區(qū)數(shù)值加1,并消耗1塊Block區(qū),用于記錄上次斷電重啟狀態(tài),并記錄當(dāng)前系統(tǒng)時間到該Block區(qū)。

      (2)看門狗驅(qū)動模塊加載階段主要完成看門狗驅(qū)動程序加載與看門狗中斷服務(wù)函數(shù)中對EEPROM的讀寫操作,為出現(xiàn)嵌入式設(shè)備運行異常情況作準(zhǔn)備。一旦發(fā)生異常,系統(tǒng)首先進入看門狗中斷服務(wù)函數(shù)中。該函數(shù)工作分為3步:①讀取EEPROM設(shè)備重啟次數(shù)統(tǒng)計區(qū)的值,將該值加1后更新此區(qū)域;②將EEPROM斷電重啟標(biāo)志區(qū)寫0;③根據(jù)步驟①統(tǒng)計的設(shè)備重啟次數(shù),計算出下一塊可利用Block區(qū)的起始地址空間(例如:此次為第3次重啟,將消耗Block3區(qū),該區(qū)域起始地址為:0x0000+1+1+(3-1)*sizeof(Block)=0x0082,此處取sizeof(Block)大小為64Bytes,可參考圖4,并將當(dāng)前系統(tǒng)運行時間與其它關(guān)鍵內(nèi)核信息記錄入該Block區(qū)域。

      (3)嵌入式設(shè)備運行階段主要由EEPROM驅(qū)動程序支持,為用戶提供proc接口,便于用戶通過proc接口訪問EEPROM中記錄的設(shè)備重啟信息并對信息進行管理,例如擦除部分或全部設(shè)備重啟記錄信息等,也可提供一些較高級的管理方式,如可根據(jù)EEPROM存儲空間實際大小,自適應(yīng)地刪除較早的設(shè)備重啟狀態(tài)記錄信息,為接下來的設(shè)備重啟狀態(tài)數(shù)據(jù)提供可用空間。

      (4)在嵌入式設(shè)備重啟階段,系統(tǒng)運行過程中也在等待設(shè)備運行結(jié)束狀態(tài)的到來。設(shè)備運行結(jié)束情況分為3種:第一種為設(shè)備突然斷電,在下次設(shè)備啟動加載EEPROM驅(qū)動時,會根據(jù)EEPROM的斷電重啟狀態(tài)區(qū)判斷上次設(shè)備重啟是否為斷電重啟,并作相應(yīng)信息記錄;第二種為設(shè)備接收到軟件下發(fā)的重啟命令reboot,主要通過修改reboot命令源碼實現(xiàn),并重新編譯BusyBox替換到設(shè)備中。reboot命令需完成的工作有以下3步:①寫0到EEPROM斷電重啟標(biāo)志區(qū);②讀取EEPROM設(shè)備重啟次數(shù)統(tǒng)計區(qū)的值,并將該值加1后更新此區(qū)域;③根據(jù)步驟②統(tǒng)計的設(shè)備重啟次數(shù)計算出下一塊可用Block區(qū)的起始地址空間,并將當(dāng)前系統(tǒng)運行時間與其它信息記錄入該Block區(qū)域,最后重啟設(shè)備;第三種為設(shè)備系統(tǒng)運行異常,導(dǎo)致觸發(fā)看門狗中斷,在看門狗中斷服務(wù)函數(shù)中,寫入EEPROM標(biāo)志以及異常運行狀態(tài)數(shù)據(jù),并重啟設(shè)備。

      本系統(tǒng)思想邏輯梳理如下:①系統(tǒng)啟動加載Linux內(nèi)核,并加載EEPROM驅(qū)動程序;②判斷是否為斷電重啟并作相應(yīng)記錄,然后初始化EEPROM斷電重啟標(biāo)志區(qū);③加載看門狗驅(qū)動,啟動看門狗;④系統(tǒng)運行階段由EEPROM驅(qū)動為用戶提供proc接口,并管理EEPROM重啟記錄信息;⑤系統(tǒng)重啟階段分為3種情況:斷電重啟,待下次設(shè)備啟動后再作記錄;reboot重啟,設(shè)備重啟之前在EEPROM中記錄下當(dāng)前設(shè)備重啟數(shù)據(jù)信息;WatchDog重啟,系統(tǒng)進入看門狗中斷服務(wù)函數(shù),在EEPROM中記錄此次WatchDog重啟信息。整體邏輯如圖7所示。

      4 結(jié)語

      本文在嵌入式系統(tǒng)中的軟件黑匣子技術(shù)基礎(chǔ)上,提出一種基于Linux系統(tǒng)的嵌入式設(shè)備多狀態(tài)重啟記錄系統(tǒng)設(shè)計方案。通過分析重啟記錄系統(tǒng)的功能需求,將嵌入式設(shè)備重啟劃分為3類,分別為設(shè)備斷電重啟、看門狗觸發(fā)重啟與用戶主動重啟,并選用EEPROM掉電記憶存儲芯片對過去多種狀態(tài)下的設(shè)備重啟信息進行記錄。驅(qū)動層面為用戶提供了便捷的設(shè)備重啟信息管理接口,用戶可在Linux終端管理窗口通過proc接口查詢與管理設(shè)備已記錄的重啟信息數(shù)據(jù)。針對重啟較為頻繁的設(shè)備,其設(shè)備重啟信息數(shù)據(jù)較多,當(dāng)EEPROM存儲空間不夠時,還可對其進行適當(dāng)擴展。對于EEPROM數(shù)據(jù)區(qū)中的具體數(shù)據(jù),可根據(jù)嵌入式設(shè)備不同的業(yè)務(wù)能力,選擇記錄不同數(shù)據(jù),該部分可結(jié)合實際應(yīng)用場景作進一步研究。

      參考文獻:

      [1] 谷中山. 嵌入式技術(shù)的實際應(yīng)用及前景[D]. 北京:北京動力機械研究所,2018.

      [2] 翟軍治. 板載軟件狀態(tài)檢測與異常分析[D]. 西安:西安電子科技大學(xué),2014.

      [3] 馬驍騏. 實時操作系統(tǒng)資源預(yù)留的研究與實現(xiàn)[D]. 北京:中國科學(xué)院研究生院(軟件研究所),2003.

      [4] 尚珊珊,趙鐵群. 軟件可靠性綜述[J]. 軟件導(dǎo)刊,2006(15):3-5.

      [5] 陳光宇,黃錫滋. 軟件可靠性學(xué)科發(fā)展現(xiàn)狀及展望[J]. 電子科技大學(xué)學(xué)報:社會科學(xué)版, 2002, 4(3):99-102.

      [6] 楊玉麗. 軟件可靠性研究現(xiàn)狀與展望[J]. 電腦知識與技術(shù),2010(1):128-129.

      [7] 王成長. 一種AP設(shè)備的異常重啟原因檢測方法及裝置[P]. 中國,106571954.A,2017-04-19.

      [8] 朱靖飛. 一種查看系統(tǒng)異常時代碼信息的方法及裝置[P]. 中國,102479116.A,2012-05-30.

      [9] ST.M24128-BF data sheets [EB/OL]. https://www.stmicroelectronics.com.cn/content/st_com/zh/products/memories/serial-eeprom/standard-serial-eeprom/standard-i2c-eeprom/m24128-bf.html.

      [10] DP.I2C中線協(xié)議學(xué)習(xí)筆記[EB/OL]. http://dpinglee.blog.163.com/blog/static/14409775320112239374615/.

      [11] 郭天祥. 51單片機C語言教程[M]. 北京:電子工業(yè)出版社,2015.

      [12] 宋寶華. Linux設(shè)備驅(qū)動開發(fā)詳解[M]. 北京:機械工業(yè)出版社,2015.

      [13] JONATHAN CORERT,ALESSANDRO RUBINI.Linux設(shè)備驅(qū)動程序[M]. 魏永明,譯. 北京:中國電力出版社,2009.

      [14] 尤晉元,張亞英,戚正偉. UNIX環(huán)境高級編程[M]. 北京:人民郵電出版社,2006.

      [15] 孫弋. 基于S3C2440的嵌入式Linux開發(fā)實例[M]. 西安:西安電子科技大學(xué)出版社,2010.

      [16] mr_raptor.S3C2440看門狗定時器(Watchdog)[EB/OL]. https://blog.csdn.net/mr_raptor/article/details/6555704.

      [17] 天王. S3C2440看門狗設(shè)置使用例程[EB/OL]. https://blog.csdn.net/skykingf/article/details/6185827.

      [18] CSDN.Linux驅(qū)動中斷函數(shù)參數(shù)詳解[EB/OL]. https://blog.csdn.net/sum_tw/article/details/73301981.

      [19] Wang-bob. 基于Linux與Busybox的Reboot命令流程分析[EB/OL]. https://blog.csdn.net/wavemcu/article/details/8544333.

      [20] CCJ.Linux內(nèi)核配置、編譯及Makefile簡述[EB/OL]. https://www.linuxidc.com/Linux/2016-12/137841.htm.

      [21] 金步國. Linux-4.4-x86_64內(nèi)核配置選項簡介[EB/OL]. https://blog.csdn.net/wdsfup/article/details/52302142.

      (責(zé)任編輯:黃 ?。?/p>

      荥经县| 乾安县| 龙川县| 伊金霍洛旗| 石渠县| 资溪县| 依安县| 红安县| 肇东市| 平阴县| 天长市| 汝南县| 赫章县| 北安市| 房产| 寿阳县| 和平县| 漳州市| 高邮市| 吉林省| 大名县| 贵德县| 西昌市| 南木林县| 崇礼县| 民丰县| 澄迈县| 威海市| 克山县| 西充县| 潮州市| 浦城县| 荃湾区| 安化县| 济南市| 普格县| 恭城| 临武县| 永泰县| 岑巩县| 龙山县|