欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種android系統(tǒng)掉電保護(hù)方法及裝置的制作方法

文檔序號(hào):6401179閱讀:246來(lái)源:國(guó)知局
專利名稱:一種android系統(tǒng)掉電保護(hù)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及掉電保護(hù)技術(shù)領(lǐng)域,具體涉及一種android系統(tǒng)掉電保護(hù)方法及裝置。
背景技術(shù)
工業(yè)電子設(shè)備要求在遇到意外掉電時(shí),能夠有選擇地對(duì)某些敏感數(shù)據(jù)進(jìn)行緊急存儲(chǔ),例如設(shè)備運(yùn)作狀態(tài)、物料使用記錄、報(bào)警歷史事件、設(shè)備操作記錄以及采樣歷史數(shù)據(jù)等,在掉電時(shí),這些數(shù)據(jù)不但需要得到一定量的保存,而且需要有固定的保存格式;在硬件方面,掉電保存電路的設(shè)計(jì)是工業(yè)電子設(shè)備電路設(shè)計(jì)中的重要環(huán)節(jié),這種電路的設(shè)計(jì)需要考慮到供電方式的切換、電容大小如何選取、掉電保持時(shí)間如何量化測(cè)定。實(shí)際上,這些問(wèn)題在工程中需要反復(fù)測(cè)試、反復(fù)改版才能最終確定下來(lái);在數(shù)據(jù)保存策略方面,電子通信設(shè)備在正常工作時(shí)候突然掉電后,有效保護(hù)工作時(shí)歷史數(shù)據(jù)的有效途徑有以下兩條:
1.正常運(yùn)行時(shí),每隔一段時(shí)間,往非易失存儲(chǔ)器(如NandFlash存儲(chǔ)器)保存歷史數(shù)
據(jù);
2.正常運(yùn)行時(shí),不將數(shù)據(jù)中途寫(xiě)到非易失存儲(chǔ)器,僅在掉電的瞬間讓中央處理器(CPU)來(lái)執(zhí)行數(shù)據(jù)保存到非易失存儲(chǔ)器的任務(wù),掉電后所有運(yùn)作所耗的能源來(lái)自于掉電保護(hù)電路中的電容元件。第一種方法的優(yōu)點(diǎn)是無(wú)需改動(dòng)硬件設(shè)計(jì),只需由軟件來(lái)完成相應(yīng)的保存邏輯,簡(jiǎn)單可靠,缺點(diǎn)是(flash)掉電存儲(chǔ)器的擦寫(xiě)次數(shù)有限制,以三星的K9F1208U0C(NandFlash)而言僅10萬(wàn)次,假如頻繁的對(duì)存儲(chǔ)器進(jìn)行讀寫(xiě)操作勢(shì)必縮短存儲(chǔ)器的讀寫(xiě)壽命,顯然對(duì)工業(yè)產(chǎn)品而言不可取,而且這種隔一段時(shí)間保存一次數(shù)據(jù)的方法,不一定能真正做到對(duì)實(shí)時(shí)數(shù)據(jù)的存儲(chǔ),具有一定的滯后性;第二種方法是當(dāng)前通用的方法,就現(xiàn)在大多數(shù)工業(yè)控制電子設(shè)備而言,采用的也是第二種方法,一般來(lái)說(shuō),都是檢測(cè)到掉電中斷以后,往相應(yīng)的應(yīng)用程序發(fā)送命令,由應(yīng)用程序來(lái)保存目標(biāo)數(shù)據(jù),但是這樣做有重大缺陷,發(fā)明人在參與一個(gè)基于安卓(Android)系統(tǒng)的工業(yè)電子設(shè)備研發(fā)的過(guò)程中,通過(guò)Linux Kernel檢測(cè)到掉電信號(hào)以后,又通過(guò)安卓的框架層(Framework)以廣播的方式(Broadcast)將掉電事件傳遞給上層應(yīng)用程序,由于安卓系統(tǒng)的復(fù)雜性,數(shù)據(jù)從內(nèi)核到框架層、再到應(yīng)用程序?qū)?,需要至?50ms,實(shí)際上,框架層還沒(méi)有向應(yīng)用層發(fā)送廣播,硬件系統(tǒng)就已經(jīng)停止運(yùn)行,此時(shí),電容余能早已耗盡,因?yàn)橐话愕挠布O(shè)計(jì)總共掉電時(shí)間只有60ms,這樣就會(huì)使得掉電保存失敗,如果通過(guò)硬件來(lái)解決,那么需要大大增加硬件成本和硬件調(diào)試時(shí)間,事實(shí)證明采用更復(fù)雜的電路設(shè)計(jì)來(lái)增加掉電時(shí)間是不可取的。

發(fā)明內(nèi)容
本發(fā)明提供一種android系統(tǒng)掉電保護(hù)方法,能夠在系統(tǒng)徹底掉電的情況下對(duì)應(yīng)用程序數(shù)據(jù)進(jìn)行保護(hù),以解決上述問(wèn)題。本發(fā)明實(shí)施例提供一種android系統(tǒng)掉電保護(hù)方法,包括如下步驟: A:在linux內(nèi)核建立共享內(nèi)存;
B:將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存;
C:檢測(cè)掉電信號(hào),如果未檢測(cè)到掉電信號(hào),則執(zhí)行步驟B ;如果檢測(cè)到掉電信號(hào),則執(zhí)行步驟D ;
D:將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。優(yōu)選地,所述步驟D之后還包括步驟E:android系統(tǒng)重新上電后,從所述記錄文件中恢復(fù)歷史數(shù)據(jù)。優(yōu)選地,步驟D將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件還包括:調(diào)用Iinux內(nèi)核文件讀寫(xiě)函數(shù)將共享內(nèi)存中的數(shù)據(jù)寫(xiě)成所述記錄文件。優(yōu)選地,所述記錄文件包括bin格式文件、txt格式文件。本發(fā)明實(shí)施例還提供了一種android系統(tǒng)掉電保護(hù)裝置,包括:
新建單元,用于在Iinux內(nèi)核建立共享內(nèi)存;
寫(xiě)入單元,用于將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存;
掉電檢測(cè)單元,用于檢測(cè)掉電信號(hào),如果未檢測(cè)到掉電信號(hào),則執(zhí)行寫(xiě)入單元;如果檢測(cè)到掉電信號(hào),則執(zhí)行轉(zhuǎn)化單元;
轉(zhuǎn)化單元,用于將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。優(yōu)選地,還包括恢復(fù)單元,用于android系統(tǒng)重新上電后,從所述記錄文件中恢復(fù)歷史數(shù)據(jù)。優(yōu)選地,所述轉(zhuǎn)化單元包括調(diào)用單元,用于調(diào)用Iinux內(nèi)核的讀寫(xiě)函數(shù)將共享內(nèi)存中的數(shù)據(jù)寫(xiě)成所述記錄文件。上述技術(shù)方案可以看出,由于本發(fā)明實(shí)施例采用Iinux內(nèi)核開(kāi)辟共享內(nèi)存來(lái)存儲(chǔ)應(yīng)用程序數(shù)據(jù),在檢測(cè)到掉電信號(hào)時(shí)能夠及時(shí)將應(yīng)用程序數(shù)據(jù)進(jìn)行轉(zhuǎn)化,生成記錄文件予以保存,因此在設(shè)備完全掉電的情況下,android系統(tǒng)重新上電后,即使先前共享內(nèi)存中的應(yīng)用程序數(shù)據(jù)已經(jīng)丟失,但是系統(tǒng)還可以通過(guò)先前生成的記錄文件進(jìn)行恢復(fù),實(shí)現(xiàn)了在不改變硬件的基礎(chǔ)上,更加安全可靠地應(yīng)對(duì)設(shè)備完全掉電或普通宕機(jī)時(shí)對(duì)數(shù)據(jù)進(jìn)行保護(hù)。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實(shí)施例中android系統(tǒng)掉電保護(hù)方法的流程圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例:
本發(fā)明實(shí)施例提供一種android系統(tǒng)掉電保護(hù)方法,如圖1所示,包括如下步驟。步驟101:在Iinux內(nèi)核建立共享內(nèi)存。Android系統(tǒng)是基于Iinux內(nèi)核運(yùn)行的,因此本步驟中,把系統(tǒng)內(nèi)存劃分出一部分單獨(dú)管理,虛擬出一個(gè)獨(dú)立的閃存設(shè)備,不在Linux存儲(chǔ)管理系統(tǒng)的管理范圍內(nèi),實(shí)際Linux存儲(chǔ)管理系統(tǒng)根本不知道該段內(nèi)存空間的存在。步驟102:將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存。在上一步驟中分配好物理內(nèi)存以后,在這一步驟中將物理內(nèi)存做成一個(gè)Linux的平臺(tái)設(shè)備(PlatformDevice),并為該平臺(tái)設(shè)備編寫(xiě)一套獨(dú)立的平臺(tái)設(shè)備驅(qū)動(dòng)程序(Platform Driver),在驅(qū)動(dòng)程序的probe函數(shù)中,創(chuàng)建misc設(shè)備文件,映射上述共享內(nèi)存,完成初始化工作,使得應(yīng)用程序數(shù)據(jù)可以通過(guò)接口訪問(wèn)到這一塊共享內(nèi)存。應(yīng)用程序讀取這個(gè)平臺(tái)設(shè)備,_ap這段共享物理內(nèi)存到自己的進(jìn)程空間后,應(yīng)用程序就可以正常訪問(wèn)這塊共享內(nèi)存了,從而將應(yīng)用程序數(shù)據(jù)寫(xiě)入到該共享內(nèi)存中;此處的驅(qū)動(dòng)程序代碼如下:
master_fd = open("/dev/skmem", 0_RDWR | 0_NDELAY);if (master_fd >= 0) {size_t size; char* base = (char*) mmap(0, PMEM_BASE_SIZE, PR0T_READ|PR0T_WRITE,MAP_SHARED, master_fd, PMEM_BASE);
if (base == MAP_FAILED) {err = -errno;base = 0;
L0GE(〃mmap failecT);close(master_fd);master_fd = -1;
}
VirtualAddr = base;
LOGE(^VirtualAddr 0x%x〃,VirtualAddr);
在本實(shí)用新型實(shí)施例中應(yīng)用程序運(yùn)行時(shí)候,當(dāng)有需要保存的歷史數(shù)據(jù)產(chǎn)生時(shí),應(yīng)用程序往共享物理內(nèi)存中寫(xiě)數(shù)據(jù),相對(duì)于現(xiàn)有向flash中寫(xiě)入數(shù)據(jù)的技術(shù)方案,本實(shí)用新型實(shí)施例中應(yīng)用程序數(shù)據(jù)寫(xiě)入的是內(nèi)存,不存在擦寫(xiě)次數(shù)的限制,而且不會(huì)產(chǎn)生大量的10中斷和文件緩存同步動(dòng)作,將系統(tǒng)資源消耗降低到最低,這比頻繁讀寫(xiě)NandFlash的效率更高。步驟103:檢測(cè)掉電信號(hào)。本步驟中,系統(tǒng)設(shè)備(承載android系統(tǒng)運(yùn)行的設(shè)備)設(shè)有掉電檢測(cè)裝置,對(duì)于掉電檢測(cè)裝置本領(lǐng)域技術(shù)人員可以通過(guò)現(xiàn)有技術(shù)獲知,此處不一一贅述。本發(fā)明實(shí)施例中實(shí)現(xiàn)一套IRQ中斷邏輯,用request_irq注冊(cè)一個(gè)Iinux的中斷服務(wù),當(dāng)有掉電事件發(fā)生時(shí),通過(guò)Iinux中斷服務(wù)檢測(cè)掉電信號(hào),中央處理器立即觸發(fā)掉電中斷信號(hào)(這個(gè)時(shí)間是極短的),系統(tǒng)隨即能進(jìn)入掉電處理程序,即步驟104 ;而當(dāng)Iinux中斷服務(wù)未檢測(cè)到掉電信號(hào)時(shí),則系統(tǒng)會(huì)繼續(xù)執(zhí)行步驟102,以便及時(shí)將應(yīng)用程序的數(shù)據(jù)寫(xiě)入到共享內(nèi)存中。步驟104:將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。本步驟中,當(dāng)Iinux中斷服務(wù)檢測(cè)到掉電信號(hào)以后,與現(xiàn)有的技術(shù)方案不同的是,我們不需要往應(yīng)用程序發(fā)送broadcast信號(hào)了,特別當(dāng)系統(tǒng)負(fù)荷很重的時(shí)候,應(yīng)用程序根本來(lái)不及接收到掉電信號(hào)就關(guān)機(jī)了,由于共享內(nèi)存存儲(chǔ)的就是歷史數(shù)據(jù),系統(tǒng)可以利用Iinux內(nèi)核文件讀寫(xiě)函數(shù)(vfs_write)直接把共享內(nèi)存存成一個(gè)文件,即調(diào)用Iinux內(nèi)核文件讀寫(xiě)函數(shù)將共享內(nèi)存中的數(shù)據(jù)寫(xiě)成所述記錄文件,這樣做到了最快速度來(lái)存儲(chǔ)掉電數(shù)據(jù),該記錄文件包括bin格式文件、txt格式文件,既可以是bin格式文件也可以是txt格式文件,或者兩種格式的文件并存。當(dāng)系統(tǒng)設(shè)備宕機(jī)或徹底掉電后,即使在一段時(shí)間內(nèi)未能重新上電,由于上一步驟104中已經(jīng)生成了記錄歷史數(shù)據(jù)的記錄文件,因此只要系統(tǒng)一重新上電,則可以繼續(xù)執(zhí)行步驟105:從所述記錄文件中恢復(fù)歷史數(shù)據(jù)。對(duì)于由記錄文件恢復(fù)歷史數(shù)據(jù)的具體操作,本領(lǐng)域技術(shù)人員可以通過(guò)現(xiàn)有技術(shù)獲知,此處不一一贅述。本發(fā)明實(shí)施例還相應(yīng)的提供了一種android系統(tǒng)掉電保護(hù)裝置,包括:
新建單元,用于在Iinux內(nèi)核建立共享內(nèi)存;
寫(xiě)入單元,用于將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存;
掉電檢測(cè)單元,用于檢測(cè)掉電信號(hào),如果未檢測(cè)到掉電信號(hào),則執(zhí)行寫(xiě)入單元;如果檢測(cè)到掉電信號(hào),則執(zhí)行轉(zhuǎn)化單元;
轉(zhuǎn)化單元,用于將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。需要說(shuō)明的是,上述裝置和系統(tǒng)內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccess Memory)、磁盤(pán)或光盤(pán)等。以上對(duì)本發(fā)明實(shí)施例所提供的一種android系統(tǒng)掉電保護(hù)方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種android系統(tǒng)掉電保護(hù)方法,其特征在于,包括如下步驟: A:在Iinux內(nèi)核建立共享內(nèi)存; B:將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存; C:檢測(cè)掉電信號(hào),如果未檢測(cè)到掉電信號(hào),則執(zhí)行步驟B ;如果檢測(cè)到掉電信號(hào),則執(zhí)行步驟D ; D:將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。
2.如權(quán)利要求1所述的一種android系統(tǒng)掉電保護(hù)方法,其特征在于,所述步驟D之后還包括步驟E:android系統(tǒng)重新上電后,從所述記錄文件中恢復(fù)歷史數(shù)據(jù)。
3.如權(quán)利要求1或2所述的一種android系統(tǒng)掉電保護(hù)方法,其特征在于,步驟D將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件還包括:調(diào)用Iinux內(nèi)核文件讀寫(xiě)函數(shù)將共享內(nèi)存中的數(shù)據(jù)寫(xiě)成所述記錄文件。
4.如權(quán)利要求1或2所述的一種android系統(tǒng)掉電保護(hù)方法,其特征在于,所述記錄文件包括bin格式文件、txt格式文件。
5.一種android系統(tǒng)掉電保護(hù)裝置,其特征在于,包括: 新建單元,用于在Iinux內(nèi)核建立共享內(nèi)存; 寫(xiě)入單元,用于將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存; 掉電檢測(cè)單元,用于檢測(cè)掉電信號(hào),如果未檢測(cè)到掉電信號(hào),則執(zhí)行寫(xiě)入單元;如果檢測(cè)到掉電信號(hào),則執(zhí)行轉(zhuǎn)化單元; 轉(zhuǎn)化單元,用于將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。
6.如權(quán)利要求5所述的一種android系統(tǒng)掉電保護(hù)裝置,其特征在于,還包括恢復(fù)單元,用于android系統(tǒng)重新上電后,從所述記錄文件中恢復(fù)歷史數(shù)據(jù)。
7.如權(quán)利要求5或6所述的一種android系統(tǒng)掉電保護(hù)裝置,其特征在于,所述轉(zhuǎn)化單元包括調(diào)用單元,用于調(diào)用Iinux內(nèi)核的讀寫(xiě)函數(shù)將共享內(nèi)存中的數(shù)據(jù)寫(xiě)成所述記錄文件。
全文摘要
本發(fā)明公開(kāi)了一種android系統(tǒng)掉電保護(hù)方法及裝置,該方法包括如下步驟在linux內(nèi)核建立共享內(nèi)存;將android系統(tǒng)中運(yùn)行的應(yīng)用程序數(shù)據(jù)寫(xiě)入共享內(nèi)存;檢測(cè)掉電信號(hào),如果檢測(cè)到掉電信號(hào),則執(zhí)行將所述應(yīng)用程序數(shù)據(jù)寫(xiě)成能夠永久存儲(chǔ)的記錄文件。本發(fā)明實(shí)施例采用linux內(nèi)核開(kāi)辟共享內(nèi)存來(lái)存儲(chǔ)應(yīng)用程序數(shù)據(jù),在檢測(cè)到掉電信號(hào)時(shí)能夠及時(shí)將應(yīng)用程序數(shù)據(jù)進(jìn)行轉(zhuǎn)化,生成記錄文件予以保存,因此在設(shè)備完全掉電的情況下,android系統(tǒng)重新上電后,即使先前共享內(nèi)存中的應(yīng)用程序數(shù)據(jù)已經(jīng)丟失,但是系統(tǒng)還可以通過(guò)先前生成的記錄文件進(jìn)行恢復(fù),實(shí)現(xiàn)了在不改變硬件的基礎(chǔ)上,更加安全可靠地應(yīng)對(duì)設(shè)備完全掉電或普通宕機(jī)時(shí)對(duì)數(shù)據(jù)進(jìn)行保護(hù)。
文檔編號(hào)G06F11/14GK103186436SQ201310105978
公開(kāi)日2013年7月3日 申請(qǐng)日期2013年3月28日 優(yōu)先權(quán)日2013年3月28日
發(fā)明者宋斌, 秦英杰, 李鎮(zhèn) 申請(qǐng)人:深圳市顯控自動(dòng)化技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
陆良县| 沙坪坝区| 兴仁县| 邵阳县| 呈贡县| 阜平县| 堆龙德庆县| 贵定县| 潜山县| 同仁县| 新绛县| 嘉义县| 玉龙| 达拉特旗| 洪洞县| 额敏县| 临高县| 洞口县| 武功县| 乌拉特中旗| 平顶山市| 波密县| 刚察县| 永胜县| 长乐市| 象山县| 阿拉善左旗| 临邑县| 鹤庆县| 阿拉善右旗| 彭泽县| 利辛县| 拉萨市| 开原市| 靖边县| 邢台县| 宁乡县| 虹口区| 富宁县| 广灵县| 清新县|