專利名稱:系統(tǒng)啟動(dòng)方法以及嵌入式設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)操作系統(tǒng)技術(shù),特別涉及嵌入式系統(tǒng)啟動(dòng)技術(shù)。
背景技術(shù):
嵌入式設(shè)備的軟件系統(tǒng)一股由兩部分組成啟動(dòng)程序(也稱為bootloader)和應(yīng) 用程序。啟動(dòng)程序初始化最基本的設(shè)備,提供一個(gè)最簡(jiǎn)單的交互式操作界面,同時(shí)為加載應(yīng) 用程序做準(zhǔn)備。應(yīng)用程序是整個(gè)系統(tǒng)要完成的所有功能的集合。嵌入式設(shè)備通常放置在無(wú) 人值守的場(chǎng)合,完全獨(dú)立運(yùn)行或者通過(guò)網(wǎng)絡(luò)被遠(yuǎn)程管理。設(shè)備運(yùn)行過(guò)程中,會(huì)因?yàn)檫h(yuǎn)程重 啟、異常重啟等原因?qū)е略O(shè)備重新啟動(dòng)。如果應(yīng)用程序因?yàn)槟撤N原因被破壞,例如升級(jí)過(guò) 程中文件寫了一半就因?yàn)閿嚯妼?dǎo)致文件未完整寫入系統(tǒng),那么設(shè)備在重啟后會(huì)因?yàn)閼?yīng)用程 序不完整而不能正常運(yùn)行。這種情況下,由于系統(tǒng)沒(méi)有正常運(yùn)行,遠(yuǎn)程管理已經(jīng)不可能,而 人員到現(xiàn)場(chǎng)解決問(wèn)題是非常耗時(shí)的。如果能夠使得無(wú)人值守的嵌入式設(shè)備在某些應(yīng)用程序 被破壞后仍能繼續(xù)啟動(dòng),使得嵌入式設(shè)備能夠運(yùn)行,讓遠(yuǎn)程管理成為可能,便能減少人員到 線程解決問(wèn)題的機(jī)率,提高工作效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種在應(yīng)用程序沒(méi)有加載成功的情況下,系 統(tǒng)也能繼續(xù)啟動(dòng)的系統(tǒng)啟動(dòng)方法,以及實(shí)現(xiàn)該方法的嵌入式設(shè)備。本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案是,系統(tǒng)啟動(dòng)方法,包括步驟在系統(tǒng)中保存多個(gè)應(yīng)用程序,設(shè)置和應(yīng)用程序一一對(duì)應(yīng)的啟動(dòng)參數(shù);系統(tǒng)啟動(dòng)時(shí),啟動(dòng)程序首先判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是 否加載成功,如是,則直接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序;否則,系統(tǒng)依據(jù)當(dāng)前啟動(dòng)參 數(shù)計(jì)算下一個(gè)啟動(dòng)參數(shù),啟動(dòng)程序從新的啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序開(kāi)始啟動(dòng),直至應(yīng)用程 序加載成功。系統(tǒng)保存未成功加載的應(yīng)用程序所對(duì)應(yīng)的啟動(dòng)參數(shù),設(shè)備在重啟后,由于啟動(dòng)程 序不再對(duì)出現(xiàn)問(wèn)題的應(yīng)用程序進(jìn)行加載,使得系統(tǒng)能在某些應(yīng)用程序被破壞后仍能繼續(xù)啟 動(dòng),使得嵌入式設(shè)備能夠運(yùn)行。系統(tǒng)重新啟動(dòng)包括有系統(tǒng)發(fā)現(xiàn)異常而主動(dòng)重啟、或者遠(yuǎn)程重啟等非斷電重啟的情 況。為了更即時(shí)地發(fā)現(xiàn)應(yīng)用程序加載異常,進(jìn)一步引入了看門狗重啟,這樣可以避免設(shè)備在 啟動(dòng)過(guò)程中死機(jī)而不能恢復(fù)。即,準(zhǔn)備加載應(yīng)用程序之前,啟動(dòng)程序啟動(dòng)看門狗計(jì)時(shí);所述 看門狗在計(jì)時(shí)超過(guò)預(yù)設(shè)時(shí)間時(shí),將觸發(fā)系統(tǒng)重新啟動(dòng);應(yīng)用程序在加載成功后關(guān)閉看門狗。要使得在出現(xiàn)重啟后啟動(dòng)程序能夠讀取未成功加載的應(yīng)用程序所對(duì)應(yīng)的啟動(dòng)參 數(shù),在應(yīng)用程序加載之前,啟動(dòng)程序保存當(dāng)前啟動(dòng)參數(shù)為準(zhǔn)備加載的應(yīng)用程序所對(duì)應(yīng)的啟 動(dòng)參數(shù)。啟動(dòng)程序通過(guò)啟動(dòng)狀態(tài)參數(shù)判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí) 是否加載成功。啟動(dòng)狀態(tài)參數(shù)的設(shè)置方法為啟動(dòng)程序加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序之前,設(shè)置啟動(dòng)狀態(tài)參數(shù)為未成功狀態(tài);加載應(yīng)用程序成功后,設(shè)置啟動(dòng)狀態(tài)參數(shù)為成功狀 態(tài)。啟動(dòng)程序在重啟后,讀取啟動(dòng)狀態(tài)參數(shù),如為成功狀態(tài)則直接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的 應(yīng)用程序;如為未成功狀態(tài),則依據(jù)當(dāng)前啟動(dòng)參數(shù)計(jì)算下一個(gè)啟動(dòng)參數(shù),啟動(dòng)程序從新的啟 動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序開(kāi)始啟動(dòng),直至應(yīng)用程序加載成功。能夠?qū)崿F(xiàn)本發(fā)明系統(tǒng)啟動(dòng)方法的嵌入式設(shè)備,設(shè)備中保存有多個(gè)應(yīng)用程序,其特 征在于,包括啟動(dòng)程序模塊、應(yīng)用程序模塊、上電寄存器;所述上電寄存器包括第一存儲(chǔ)單 元;所述第一存儲(chǔ)單元用于,保存當(dāng)前啟動(dòng)參數(shù);所述啟動(dòng)程序模塊用于,加載應(yīng)用程序;在加載應(yīng)用程序之前,啟動(dòng)程序模塊判斷 當(dāng)前第一存儲(chǔ)單元中當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次系統(tǒng)啟動(dòng)時(shí)是否成功加載,如 是,則直接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序;否則依據(jù)當(dāng)前啟動(dòng)參數(shù)計(jì)算下一個(gè)啟動(dòng)參 數(shù)并保存在第一存儲(chǔ)單元;啟動(dòng)程序從新的啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序進(jìn)行加載;所述應(yīng)用程序模塊用于,運(yùn)行加載的應(yīng)用程序。進(jìn)一步的,還包括看門狗電路;所述看門狗電路用于,計(jì)時(shí)超過(guò)預(yù)設(shè)時(shí)間時(shí)觸發(fā)系 統(tǒng)非斷電重新啟動(dòng);啟動(dòng)程序模塊還用于,應(yīng)用程序加載之前,啟動(dòng)程序模塊啟動(dòng)看門狗電路計(jì)時(shí);應(yīng)用程序模塊還用于,在應(yīng)用程序加載成功后,應(yīng)用程序運(yùn)行,關(guān)閉看門狗電路。進(jìn)一步的,上電寄存器還包括第二存儲(chǔ)單元,第二存儲(chǔ)單元用于,保存啟動(dòng)狀態(tài)參 數(shù);所述啟動(dòng)狀態(tài)參數(shù)用于判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是否加載成 功。啟動(dòng)程序模塊還用于,通過(guò)啟動(dòng)狀態(tài)參數(shù)判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序上一 次啟動(dòng)時(shí)是否加載成功;啟動(dòng)程序模塊在保存當(dāng)前啟動(dòng)參數(shù)至第一存儲(chǔ)單元的同時(shí),還設(shè) 置第二存儲(chǔ)單元的啟動(dòng)狀態(tài)參數(shù)為未成功狀態(tài);應(yīng)用程序模塊還用于,在應(yīng)用程序加載成功后,應(yīng)用程序運(yùn)行,設(shè)置第二存儲(chǔ)單元 的啟動(dòng)狀態(tài)參數(shù)為成功狀態(tài)。本發(fā)明的有益效果是,使得在加載的應(yīng)用程序出現(xiàn)異常時(shí),系統(tǒng)能夠選擇性地加 載正常的應(yīng)用程序,保證系統(tǒng)能夠正常運(yùn)行,為無(wú)人值守的設(shè)備提供一種可靠的啟動(dòng)方式。
圖1為實(shí)施例嵌入式設(shè)備示意圖;圖2為實(shí)施例流程圖。
具體實(shí)施例方式本實(shí)施例通過(guò)軟硬件結(jié)合的方式完成重啟功能,其中硬件部分設(shè)計(jì)了一種特殊的 存儲(chǔ)寄存器,取名為“上電寄存器”,該寄存器有兩個(gè)存儲(chǔ)單元,一個(gè)用于記錄和當(dāng)前要加載 的啟動(dòng)程序?qū)?yīng)的啟動(dòng)參數(shù),一個(gè)記錄啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序是否可以加載成功。在設(shè) 備上電時(shí),該寄存器的第一存儲(chǔ)單元、第二存儲(chǔ)單元分別初始化為0和1,0表示加載和第 0個(gè)啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序,1表示該啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序可以正常啟動(dòng)。該寄存 器只有在上電時(shí)才被硬件初始化,之后只要不斷電,即使發(fā)生看門狗重啟,該寄存器的值也不會(huì)被硬件修改,但是軟件可以直接讀寫該寄存器。嵌入式設(shè)備能夠保存多個(gè)應(yīng)用程序文 件。該文件可以保存在設(shè)備的文件系統(tǒng)上,也可以直接保存在閃存等非易失性存儲(chǔ)器上。系 統(tǒng)配置分別和保存的應(yīng)用程序一一對(duì)應(yīng)的啟動(dòng)參數(shù),使用非易失性存儲(chǔ)器保存這些啟動(dòng)參 數(shù)。這些應(yīng)用程序文件可以是保存在設(shè)備上的,也可以是網(wǎng)絡(luò)上的某個(gè)地方,啟動(dòng)程序通過(guò) 啟動(dòng)參數(shù)能夠獲取到這個(gè)應(yīng)用程序文件。如圖1所示,嵌入式設(shè)備,包括啟動(dòng)程序模塊、應(yīng)用程序模塊、上電寄存器、看門狗 電路;所述上電寄存器包括第一存儲(chǔ)單元、第二存儲(chǔ)單元;第一存儲(chǔ)單元用于,保存使用的應(yīng)用程序?qū)?yīng)的啟動(dòng)參數(shù);第二存儲(chǔ)單元用于,保存當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序的加載狀態(tài),即啟動(dòng)狀態(tài) 參數(shù);啟動(dòng)程序模塊用于,根據(jù)當(dāng)前啟動(dòng)參數(shù)加載應(yīng)用程序,具體采用的方式為針對(duì)重 啟過(guò)程中對(duì)未成功加載的應(yīng)用程序之前的應(yīng)用程序不再進(jìn)行加載,僅加載未成功加載的應(yīng) 用程序之后的應(yīng)用程序;針對(duì)在應(yīng)用程序已成功加載而進(jìn)行的非斷電重啟,啟動(dòng)程序從上 一次啟動(dòng)時(shí)最后成功加載的應(yīng)用程序開(kāi)始進(jìn)行加載;即,啟動(dòng)程序模塊讀取第二存儲(chǔ)單元 的啟動(dòng)狀態(tài)參數(shù)為0,將第一存儲(chǔ)單元中的啟動(dòng)參數(shù)的下一個(gè)啟動(dòng)參數(shù)作為當(dāng)前啟動(dòng)參數(shù) 保存至第一存儲(chǔ)單元,并保持第二存儲(chǔ)單元的啟動(dòng)狀態(tài)參數(shù)為0,開(kāi)啟看門狗電路計(jì)時(shí);啟 動(dòng)程序模塊根據(jù)新的當(dāng)前啟動(dòng)參數(shù)獲取應(yīng)用程序進(jìn)行加載;應(yīng)用程序模塊用于,應(yīng)用程序加載成功后,運(yùn)行應(yīng)用程序,設(shè)置第二存儲(chǔ)單元的啟 動(dòng)狀態(tài)參數(shù)為1,并關(guān)閉看門狗電路;看門狗電路用于,計(jì)時(shí)超過(guò)預(yù)設(shè)時(shí)間時(shí)觸發(fā)系統(tǒng)非斷電重新啟動(dòng)。如圖2所示,本實(shí)施流程如下設(shè)備上電啟動(dòng),系統(tǒng)在初始化時(shí),通過(guò)啟動(dòng)程序在設(shè)備上下載多個(gè)應(yīng)用程序,同時(shí) 配置多個(gè)參數(shù)分別對(duì)應(yīng)設(shè)備上的各個(gè)應(yīng)用程序,同時(shí)啟動(dòng)參數(shù)還可以分別對(duì)應(yīng)網(wǎng)絡(luò)上的應(yīng) 用程序。上電寄存器的兩個(gè)存儲(chǔ)單元分別初始化為0和1 ;軟件可通過(guò)讀取該上電寄存器第一存儲(chǔ)單元判斷,當(dāng)前加載的的為第0個(gè)啟動(dòng)參 數(shù)對(duì)應(yīng)的應(yīng)用程序,并且該上電器寄存器的第二存儲(chǔ)單元為1,即當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用 程序能夠正常使用,因此使用啟動(dòng)參數(shù)0對(duì)應(yīng)的應(yīng)用程序啟動(dòng)設(shè)備,并將上電寄存器的第 二個(gè)存儲(chǔ)單元修改為0,表示啟動(dòng)中還不確定是否能夠成功,再啟動(dòng)看門狗電路計(jì)時(shí),設(shè)置 合適的超時(shí)時(shí)間,合適的超時(shí)時(shí)間是指設(shè)置的看門狗超時(shí)時(shí)間能保證正常情況下應(yīng)用程序 成功啟動(dòng);啟動(dòng)參數(shù)0對(duì)應(yīng)的應(yīng)用程序成功加載后,該應(yīng)用程序啟動(dòng)運(yùn)行后會(huì)關(guān)閉看門狗電 路,并設(shè)置上電寄存器的第二存儲(chǔ)單元為1,表示啟動(dòng)已經(jīng)成功。在加載過(guò)程中,如出現(xiàn)用戶通過(guò)命令重啟系統(tǒng)、或軟件的異常處理主動(dòng)重啟系統(tǒng)、 或者應(yīng)用程序加載時(shí)間超時(shí)看門狗重啟系統(tǒng),重啟后的啟動(dòng)程序讀取上電寄存器,分析的 結(jié)果如是當(dāng)前啟動(dòng)參數(shù)(第一存儲(chǔ)單元中的啟動(dòng)參數(shù))對(duì)應(yīng)的應(yīng)用程序沒(méi)有成功加載(看 門狗重啟的情況第二存儲(chǔ)單元的啟動(dòng)狀態(tài)參數(shù)一定是未成功狀態(tài)),啟動(dòng)程序會(huì)選擇下一 個(gè)啟動(dòng)參數(shù)讀取新的應(yīng)用程序。以加載啟動(dòng)參數(shù)0對(duì)應(yīng)的應(yīng)用程序時(shí),看門狗重啟為例,此 時(shí)上電寄存器中第一存儲(chǔ)單元中的值為0 ;第二存儲(chǔ)單元的值為0 ;重啟后,啟動(dòng)程序讀取 到第二存儲(chǔ)單元的值為0,則使用啟動(dòng)參數(shù)0的下一個(gè)啟動(dòng)參數(shù)1來(lái)加載應(yīng)用程序,設(shè)置第一存儲(chǔ)單元中的值為1,第二存儲(chǔ)單元中的值為0,啟動(dòng)看門狗電路計(jì)時(shí);加載啟動(dòng)參數(shù)1對(duì) 應(yīng)的應(yīng)用程序時(shí),如系統(tǒng)主動(dòng)重啟,此時(shí)上電寄存器中第一存儲(chǔ)單元中的值為1,第二存儲(chǔ) 單元的值為0 ;重啟后,看門狗電路關(guān)閉,啟動(dòng)程序讀取到第二存儲(chǔ)單元的值為0,則使用啟 動(dòng)參數(shù)1的下一個(gè)啟動(dòng)參數(shù)2來(lái)調(diào)用應(yīng)用程序并設(shè)置第一存儲(chǔ)單元中的值為2,第二存儲(chǔ) 單元中的值為0,啟動(dòng)看門狗電路計(jì)時(shí),啟動(dòng)參數(shù)2對(duì)應(yīng)的應(yīng)用程序成功加載后,該應(yīng)用程 序啟動(dòng)運(yùn)行后會(huì)關(guān)閉看門狗電路,并設(shè)置上電寄存器的第二存儲(chǔ)單元為1,表示啟動(dòng)已經(jīng)成 功。如出現(xiàn)用戶通過(guò)命令重啟系統(tǒng)、或軟件的異常處理主動(dòng)重啟系統(tǒng),此時(shí)當(dāng)前啟動(dòng) 參數(shù)對(duì)應(yīng)的應(yīng)用程序有可能已經(jīng)加載成功,重啟后的啟動(dòng)程序讀取、并分析上電寄存器后 選擇當(dāng)前啟動(dòng)參數(shù)讀取新的應(yīng)用程序;以加載成功啟動(dòng)參數(shù)1對(duì)應(yīng)的應(yīng)用程序后,用戶通 過(guò)命令重啟系統(tǒng)為例,此時(shí)上電寄存器中第一存儲(chǔ)單元中的值為1 ;第二存儲(chǔ)單元的值為 1 ;重啟后,啟動(dòng)程序讀取到第二存儲(chǔ)單元的值為1則加載啟動(dòng)參數(shù)1對(duì)應(yīng)的應(yīng)用程序,設(shè)置 第二存儲(chǔ)單元中的值為0,啟動(dòng)看門狗電路計(jì)時(shí)。利用看門狗電路和上電寄存器配合軟件實(shí)現(xiàn)系統(tǒng)在啟動(dòng)發(fā)生問(wèn)題時(shí),能夠自動(dòng)嘗 試預(yù)先設(shè)定好的啟動(dòng)參數(shù),直到設(shè)備順利啟動(dòng)??撮T狗電路應(yīng)用于此例是進(jìn)一步的優(yōu)化,即 使沒(méi)有看門狗電路,系統(tǒng)也可通過(guò)異常處理而主動(dòng)重啟。
權(quán)利要求
系統(tǒng)啟動(dòng)方法,其特征在于,包括以下步驟在系統(tǒng)中保存多個(gè)應(yīng)用程序,設(shè)置和應(yīng)用程序一一對(duì)應(yīng)的啟動(dòng)參數(shù);系統(tǒng)啟動(dòng)時(shí),啟動(dòng)程序首先判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是否加載成功,如是,則直接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序;否則,系統(tǒng)依據(jù)當(dāng)前啟動(dòng)參數(shù)計(jì)算下一個(gè)啟動(dòng)參數(shù),啟動(dòng)程序從新的啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序開(kāi)始啟動(dòng),直至應(yīng)用程序加載成功。
2.如權(quán)利要求1所述系統(tǒng)啟動(dòng)方法,其特征在于,準(zhǔn)備加載應(yīng)用程序之前,啟動(dòng)程序啟 動(dòng)看門狗計(jì)時(shí);所述看門狗在計(jì)時(shí)超過(guò)預(yù)設(shè)時(shí)間時(shí),將觸發(fā)系統(tǒng)重新啟動(dòng);應(yīng)用程序在加 載成功后關(guān)閉看門狗。
3.如權(quán)利要求2所述系統(tǒng)啟動(dòng)方法,其特征在于,應(yīng)用程序加載之前,將準(zhǔn)備加載的應(yīng) 用程序所對(duì)應(yīng)的啟動(dòng)參數(shù)作為當(dāng)前啟動(dòng)參數(shù)保存。
4.如權(quán)利要求1-3任一項(xiàng)所述系統(tǒng)啟動(dòng)方法,其特征在于,啟動(dòng)程序通過(guò)啟動(dòng)狀態(tài)參 數(shù)判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是否加載成功。
5.如權(quán)利要求4所述系統(tǒng)啟動(dòng)方法,其特征在于,啟動(dòng)程序加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的 應(yīng)用程序之前,設(shè)置啟動(dòng)狀態(tài)參數(shù)為未成功狀態(tài);加載應(yīng)用程序成功后,設(shè)置啟動(dòng)狀態(tài)參數(shù) 為成功狀態(tài)。
6.嵌入式設(shè)備,設(shè)備中保存有多個(gè)應(yīng)用程序,其特征在于,包括啟動(dòng)程序模塊、應(yīng)用程 序模塊、上電寄存器;所述上電寄存器包括第一存儲(chǔ)單元;所述第一存儲(chǔ)單元用于,保存當(dāng)前啟動(dòng)參數(shù);所述啟動(dòng)程序模塊用于,加載應(yīng)用程序;在加載應(yīng)用程序之前,啟動(dòng)程序模塊判斷第一 存儲(chǔ)單元中當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次系統(tǒng)啟動(dòng)時(shí)是否成功加載,如是,則直 接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序;否則依據(jù)當(dāng)前啟動(dòng)參數(shù)計(jì)算下一個(gè)啟動(dòng)參數(shù)并保存 在第一存儲(chǔ)單元;啟動(dòng)程序從新的啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序進(jìn)行加載;所述應(yīng)用程序模塊用于,運(yùn)行應(yīng)用程序。
7.如權(quán)利要求6所述嵌入式設(shè)備,其特征在于,還包括看門狗電路;所述看門狗電路用 于,計(jì)時(shí)超過(guò)預(yù)設(shè)時(shí)間時(shí)觸發(fā)系統(tǒng)非斷電重新啟動(dòng);所述啟動(dòng)程序模塊還用于,應(yīng)用程序加載之前,啟動(dòng)程序模塊啟動(dòng)看門狗電路計(jì)時(shí);所述應(yīng)用程序模塊還用于,在應(yīng)用程序加載成功后,應(yīng)用程序運(yùn)行,關(guān)閉看門狗電路。
8.如權(quán)利要求6或7所述嵌入式設(shè)備,其特征在于,所述上電寄存器還包括第二存儲(chǔ)單元,所述第二存儲(chǔ)單元用于,保存啟動(dòng)狀態(tài)參數(shù);所述啟動(dòng)狀態(tài)參數(shù)用于判斷當(dāng)前啟動(dòng)參 數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是否加載成功。
9.如權(quán)利要求8所述嵌入式設(shè)備,其特征在于,所述啟動(dòng)程序模塊還用于,通過(guò)啟動(dòng)狀 態(tài)參數(shù)判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序上一次啟動(dòng)時(shí)是否加載成功;啟動(dòng)程序模塊在保 存當(dāng)前啟動(dòng)參數(shù)至第一存儲(chǔ)單元的同時(shí),還設(shè)置第二存儲(chǔ)單元的啟動(dòng)狀態(tài)參數(shù)為未成功狀 態(tài);所述應(yīng)用程序模塊還用于,在應(yīng)用程序加載成功后,應(yīng)用程序運(yùn)行,設(shè)置第二存儲(chǔ)單元 的啟動(dòng)狀態(tài)參數(shù)為成功狀態(tài)。
全文摘要
本發(fā)明提供一種在應(yīng)用程序沒(méi)有加載成功的情況下,系統(tǒng)也能繼續(xù)啟動(dòng)的系統(tǒng)啟動(dòng)方法,以及實(shí)現(xiàn)該方法的嵌入式設(shè)備。包括步驟在系統(tǒng)中保存多個(gè)應(yīng)用程序,設(shè)置和應(yīng)用程序一一對(duì)應(yīng)的啟動(dòng)參數(shù);系統(tǒng)啟動(dòng)時(shí),啟動(dòng)程序首先判斷當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序在上一次啟動(dòng)時(shí)是否加載成功,如是,則直接加載當(dāng)前啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序;否則,系統(tǒng)依據(jù)當(dāng)前啟動(dòng)參數(shù)計(jì)算下一個(gè)啟動(dòng)參數(shù),啟動(dòng)程序從新的啟動(dòng)參數(shù)對(duì)應(yīng)的應(yīng)用程序開(kāi)始啟動(dòng),直至應(yīng)用程序加載成功。系統(tǒng)保存未成功加載的應(yīng)用程序所對(duì)應(yīng)的啟動(dòng)參數(shù),設(shè)備在重啟后,由于啟動(dòng)程序不再對(duì)出現(xiàn)問(wèn)題的應(yīng)用程序進(jìn)行加載,使得系統(tǒng)能在某些應(yīng)用程序被破壞后仍能繼續(xù)啟動(dòng),使得嵌入式設(shè)備能夠運(yùn)行。
文檔編號(hào)G06F9/445GK101882085SQ201010207359
公開(kāi)日2010年11月10日 申請(qǐng)日期2010年6月23日 優(yōu)先權(quán)日2010年6月23日
發(fā)明者劉學(xué)明, 曾健 申請(qǐng)人:邁普通信技術(shù)股份有限公司