專利名稱:一種電子系統(tǒng)程序加載方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電子技術(shù)領(lǐng)域,特別涉及一種電子系統(tǒng)程序的加載方法。
背景技術(shù):
現(xiàn)代電子系統(tǒng)一般包括CPU、非易失存儲(chǔ)器和通信接口等部分。應(yīng)用程序存放于非易失存儲(chǔ)器中。在設(shè)備的生產(chǎn)、維修和升級(jí)的過(guò)程中,需要將應(yīng)用程序加載到非易失存儲(chǔ)器中。
目前有如下五種加載方式。
現(xiàn)有方式一如圖1所示,使用編程器將應(yīng)用程序加載到非易失存儲(chǔ)器102中,而后將非易失存儲(chǔ)器102安裝至設(shè)備內(nèi)部。其缺點(diǎn)是設(shè)備的維修和升級(jí)過(guò)程中如需重新加載應(yīng)用程序至非易失存儲(chǔ)器,則需要開(kāi)啟設(shè)備外殼,拆卸非易失存儲(chǔ)器,用編程器加載應(yīng)用程序至該非易失存儲(chǔ)器,最后重新安裝非易失存儲(chǔ)器至設(shè)備內(nèi)部。操作過(guò)程繁瑣,多次拆裝給產(chǎn)品帶來(lái)不可靠性,而且不適合焊接安裝的非易失存儲(chǔ)器。
現(xiàn)有方式二如圖2所示,設(shè)備內(nèi)增置一BOOTROM 204,BOOTROM內(nèi)含啟動(dòng)程序,啟動(dòng)程序通過(guò)通信接口203和外界設(shè)備205通信,將應(yīng)用程序加載至非易失存儲(chǔ)器202中。其缺點(diǎn)是內(nèi)置包含啟動(dòng)程序的BOOTROM會(huì)顯著增加設(shè)備成本,而且這一啟動(dòng)程序在設(shè)備制造完成之后將不能修改。
現(xiàn)有方式三如圖3所示,外界設(shè)備305通過(guò)CPU 301內(nèi)置的JTAG接口控制CPU,將應(yīng)用程序加載至非易失存儲(chǔ)器302中。其缺點(diǎn)是,外界設(shè)備,例如個(gè)人電腦,由于不具備JTAG接口控制器,因而需要配備專門的時(shí)序轉(zhuǎn)換電路306,不適合普通消費(fèi)者以及銷售商使用。
現(xiàn)有方式四如圖4所示,作為方式二的改進(jìn),將啟動(dòng)程序和應(yīng)用程序均存放于非易失存儲(chǔ)器402中,與方式二相比,降低了物料成本。其缺點(diǎn)是健壯性欠佳。由于誤操作,干擾或突然掉電等原因,非易失存儲(chǔ)器中的啟動(dòng)程序容易遭到破壞。非易失存儲(chǔ)器中的啟動(dòng)程序一旦容易遭到破壞,則需要通過(guò)方式一或者方式三重新加載啟動(dòng)程序,否則設(shè)備將無(wú)法啟動(dòng)。
現(xiàn)有方式五如圖5所示,將啟動(dòng)程序固化至CPU 501內(nèi)部。其缺點(diǎn)是,缺乏靈活性,一旦更換了需要不同加載協(xié)議的非易失存儲(chǔ)器,則此方式失效。
上面所說(shuō)的外界設(shè)備,包括但不限于個(gè)人電腦、信息家電和工控計(jì)算機(jī)。
如上所述,現(xiàn)有的五種方式都有這樣那樣的缺點(diǎn),因此有必要尋找一種更加健壯靈活和操作簡(jiǎn)便的應(yīng)用程序加載方法。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對(duì)現(xiàn)有技術(shù)的不足,提供一種更加健壯靈活和操作簡(jiǎn)便的應(yīng)用程序加載方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明的電子系統(tǒng)程序加載方法將啟動(dòng)程序分解為兩部分,兩部分共同完成對(duì)非易失存儲(chǔ)器中應(yīng)用程序的加載。
啟動(dòng)程序的第一部分固化于CPU中。啟動(dòng)程序的第二部分不是永久存儲(chǔ)于電子系統(tǒng)中,而是在需要時(shí)從外界設(shè)備獲得。
啟動(dòng)程序的第一部分工作流程為A.通過(guò)通信接口與外界設(shè)備通信來(lái)判斷是否需要對(duì)非易失存儲(chǔ)器中應(yīng)用程序進(jìn)行加載,如不需要?jiǎng)t轉(zhuǎn)入步驟B,如需要?jiǎng)t轉(zhuǎn)入步驟C;B.執(zhí)行非易失存儲(chǔ)器中的應(yīng)用程序;C.通過(guò)通信接口從外界設(shè)備接收啟動(dòng)程序的第二部分,存放于RAM中,而后執(zhí)行啟動(dòng)程序的第二部分。
啟動(dòng)程序的第二部分的工作流程為D.通過(guò)通信接口從外界設(shè)備接收應(yīng)用程序,并將其寫(xiě)入非易失存儲(chǔ)器中;E.執(zhí)行非易失存儲(chǔ)器中的應(yīng)用程序。
另外,啟動(dòng)程序的第一部分固化的方法,包括CPU設(shè)計(jì)制造時(shí)使用硬連線、使用掩膜ROM、CPU初次使用時(shí)對(duì)CPU內(nèi)部只讀存儲(chǔ)器加載等方法。
本發(fā)明的電子系統(tǒng)程序加載方法具有如下優(yōu)點(diǎn)1.加載過(guò)程中使用通信接口,無(wú)需開(kāi)啟設(shè)備外殼,無(wú)需拆裝非易失存儲(chǔ)器。克服了現(xiàn)有方式一的不足。
2.電路板上無(wú)需安裝BOOTROM,克服了現(xiàn)有方式二的不足。
3.加載過(guò)程中只使用通信接口,無(wú)需專用的JTAG時(shí)序轉(zhuǎn)換器。克服了現(xiàn)有方式三的不足。
4.啟動(dòng)程序的第一部分固化于CPU中,即使非易失存儲(chǔ)器遭到擦除,也可啟動(dòng)并通過(guò)通信接口重新加載應(yīng)用程序至非易失存儲(chǔ)器??朔爽F(xiàn)有方式四的不足。
5.啟動(dòng)程序的第二部分在需要時(shí)從外界設(shè)備獲得,具有很大的靈活性,可以適應(yīng)不同的非易失存儲(chǔ)器和通信接口??朔爽F(xiàn)有方式五的不足,并節(jié)省CPU面積。
本發(fā)明通過(guò)把啟動(dòng)程序分解為兩部分,而且啟動(dòng)程序的第二部分在必要時(shí)才從外界設(shè)備獲得,與現(xiàn)有的各種加載方法相比,本發(fā)明的電子系統(tǒng)程序加載方法更加健壯,更加靈活,操作更加簡(jiǎn)便。
圖1是現(xiàn)有方式一系統(tǒng)結(jié)構(gòu)示意圖;圖2是現(xiàn)有方式二系統(tǒng)結(jié)構(gòu)示意圖;圖3是現(xiàn)有方式三系統(tǒng)結(jié)構(gòu)示意圖;圖4是現(xiàn)有方式四系統(tǒng)結(jié)構(gòu)示意圖;圖5是現(xiàn)有方式五系統(tǒng)結(jié)構(gòu)示意圖;圖6是本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖;圖7是本發(fā)明的一種具體實(shí)施方式
的流程圖;圖8是本發(fā)明的一種具體實(shí)施方式
的硬件結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合說(shuō)明書(shū)附圖6和7說(shuō)明本發(fā)明的一種具體實(shí)施方式
。
本具體實(shí)施方式
涉及一臺(tái)路由器,其硬件結(jié)構(gòu)包括CPU 801、非易失存儲(chǔ)器802、RS232串行通信接口803、SDRAM 806以及若干以太網(wǎng)口807。
本具體實(shí)施方式
以個(gè)人電腦805充當(dāng)外界設(shè)備。
在CPU設(shè)計(jì)時(shí),在CPU中固化入啟動(dòng)程序A部分,A部分的詳細(xì)流程如圖7中的711~717所示,并會(huì)在后文敘述。
在設(shè)計(jì)電路板時(shí),根據(jù)產(chǎn)品定位和器件價(jià)格選擇特定容量和品牌型號(hào)的SDRAM和非易失存儲(chǔ)器。并針對(duì)該特定容量和品牌型號(hào)的SDRAM和非易失存儲(chǔ)器編寫(xiě)應(yīng)用程序和啟動(dòng)程序B部分。
在維修升級(jí)過(guò)程中,按如下流程加載應(yīng)用程序至非易失存儲(chǔ)器。
1.啟動(dòng)所述電子系統(tǒng);2.CPU 801執(zhí)行固化于CPU內(nèi)部的啟動(dòng)程序A部分;3.啟動(dòng)程序A部分初始化RS232串口711;4.啟動(dòng)程序A部分向外界設(shè)備,也就是本具體實(shí)施方式
中的個(gè)人電腦805,發(fā)送詢問(wèn)字712;5.啟動(dòng)程序A部分等待外界設(shè)備,也就是本具體實(shí)施方式
中的個(gè)人電腦805,返回應(yīng)答。如果等待超時(shí)(例如沒(méi)有連接個(gè)人電腦)時(shí),或者返回的應(yīng)答為不需要加載(例如電子系統(tǒng)維護(hù)人員認(rèn)為不需要加載)時(shí),跳轉(zhuǎn)至非易失存儲(chǔ)器802,執(zhí)行應(yīng)用程序714,啟動(dòng)程序流程結(jié)束。如果返回的應(yīng)答為需要加載則繼續(xù)執(zhí)行后續(xù)流程;6.啟動(dòng)程序A部分先接收啟動(dòng)程序B部分的長(zhǎng)度715,然后依據(jù)長(zhǎng)度接收啟動(dòng)程序B部分。將B部分存放于CPU片內(nèi)的SRAM中716;7.跳轉(zhuǎn)至CPU片內(nèi)的SRAM,執(zhí)行啟動(dòng)程序B部分717;8.啟動(dòng)程序B部分初始化SDRAM 720;9.啟動(dòng)程序B部分接收應(yīng)用程序長(zhǎng)度721;
10.啟動(dòng)程序B部分依據(jù)長(zhǎng)度接收應(yīng)用程序,并存放于SDRAM中722,由于應(yīng)用程序長(zhǎng)度較大,為檢測(cè)傳輸過(guò)程中的錯(cuò)誤,增加了校驗(yàn)信息;11.應(yīng)用程序接收完成后,啟動(dòng)程序B部分對(duì)接收到的應(yīng)用程序進(jìn)行校驗(yàn)723。如果校驗(yàn)錯(cuò)誤,則進(jìn)行出錯(cuò)處理725,啟動(dòng)程序流程結(jié)束。如果校驗(yàn)正確,則繼續(xù)執(zhí)行后續(xù)流程;12.啟動(dòng)程序B對(duì)非易失存儲(chǔ)器進(jìn)行擦除操作,以便加載新的數(shù)據(jù)727;13.啟動(dòng)程序B將SDRAM中的應(yīng)用程序加載到非易失存儲(chǔ)器中728;14.跳轉(zhuǎn)到非易失存儲(chǔ)器中,執(zhí)行應(yīng)用程序。啟動(dòng)程序流程結(jié)束。
所述的電子系統(tǒng)程序加載方法,具有如下優(yōu)點(diǎn)1.加載過(guò)程中使用通信接口,無(wú)需開(kāi)啟設(shè)備外殼,無(wú)需拆裝非易失存儲(chǔ)器。
2.電路板上無(wú)需安裝BOOTROM,克服了技術(shù)背景中方式二的不足。
3.加載過(guò)程中只使用通信接口,無(wú)需專用的JTAG時(shí)序轉(zhuǎn)換器。
4.啟動(dòng)程序A部分固化于CPU中,即使非易失存儲(chǔ)器遭到擦除,也可啟動(dòng)并通過(guò)通信接口重新加載應(yīng)用程序至非易失存儲(chǔ)器5.啟動(dòng)程序A只和RS232串口和CPU片內(nèi)的SRAM有關(guān),RS232串口也往往集成于CPU內(nèi)部,因而啟動(dòng)程序A部分在不同設(shè)備中是普遍適用的。
6.啟動(dòng)程序B部分在需要時(shí)從外界設(shè)備獲得,具有很大的靈活性。修改電子系統(tǒng)配置,更換不同容量和品牌型號(hào)的SDRAM和非易失存儲(chǔ)器時(shí),只需要修改啟動(dòng)程序B部分即可適應(yīng)新的SDRAM和非易失存儲(chǔ)器。
總之,所述方法是一種強(qiáng)壯的,靈活的,操作簡(jiǎn)便的電子系統(tǒng)程序加載方法。
盡管本發(fā)明是參照其優(yōu)選實(shí)施例來(lái)具體描述的,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離有所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種修改。
權(quán)利要求
1.一種電子系統(tǒng)程序加載方法,其特征在于該方法將啟動(dòng)程序分解為兩部分,兩部分共同完成對(duì)非易失存儲(chǔ)器中應(yīng)用程序的加載;啟動(dòng)程序的第一部分固化于CPU中;啟動(dòng)程序的第二部分不是永久存儲(chǔ)于本電子系統(tǒng)中,而是在必要時(shí)從外界設(shè)備獲得;啟動(dòng)程序的第一部分工作流程為A.通過(guò)通信接口與外界設(shè)備通信來(lái)判斷是否需要對(duì)非易失存儲(chǔ)器中應(yīng)用程序進(jìn)行加載,如不需要?jiǎng)t轉(zhuǎn)入步驟B,如需要?jiǎng)t轉(zhuǎn)入步驟C;B.執(zhí)行非易失存儲(chǔ)器中的應(yīng)用程序;C.通過(guò)通信接口從外界設(shè)備接收啟動(dòng)程序B部分,存放于RAM中,而后執(zhí)行啟動(dòng)程序的第二部分;啟動(dòng)程序的第二部分的工作流程為D.通過(guò)通信接口從外界設(shè)備接收應(yīng)用程序,并將其寫(xiě)入非易失存儲(chǔ)器中;E.執(zhí)行非易失存儲(chǔ)器中的應(yīng)用程序。
全文摘要
本發(fā)明涉及一種電子系統(tǒng)程序的加載方法。本發(fā)明中將啟動(dòng)程序分解成兩部分,一部分固化于CPU中,另一部分通過(guò)通用串行接口按需從外界設(shè)備獲得。兩部分共同完成對(duì)板上非易失存儲(chǔ)器中應(yīng)用程序的加載。由于啟動(dòng)程序的一部分固化于CPU中,另一部分從上位機(jī)加載,而不是完全固化于CPU或者完全存儲(chǔ)在可能被意外擦除的非易失存儲(chǔ)器中,因而,本方法兼具強(qiáng)壯性與靈活性。另外,由于通過(guò)通用串行接口而不是JTAG接口,因而整個(gè)加載過(guò)程中不需要任何時(shí)序轉(zhuǎn)換電路,通用性強(qiáng)。
文檔編號(hào)G06F9/445GK1936841SQ200610098908
公開(kāi)日2007年3月28日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2006年7月14日
發(fā)明者梁堅(jiān), 曾榮躍, 黃智杰 申請(qǐng)人:杭州國(guó)芯科技有限公司