專利名稱:一種修正只讀存儲(chǔ)器中程序的嵌入式系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng),尤其涉及嵌入式系統(tǒng)中的只讀存儲(chǔ)器。
背景技術(shù):
嵌入式系統(tǒng)是一種嵌入到受控器件內(nèi)部并為特定應(yīng)用而設(shè)計(jì)的專用計(jì) 算機(jī)系統(tǒng),其特征為系統(tǒng)內(nèi)核小、專用性強(qiáng)、軟件固態(tài)存儲(chǔ)等,被廣泛應(yīng)用
于家庭智能管理、信息家電、交通管理、工業(yè)控制、POS網(wǎng)絡(luò)及電子商務(wù)等
各領(lǐng)域。
嵌入式系統(tǒng)核心部件為嵌入式微處理器(Micro Processor Unit, MPU) 或嵌入式微控制器(Microcontroller Unit, MCU)或嵌入式DSP處理器 (Embedded Digital Signal Processor, EDSP) 。 MPU、 MCU、 EDSP工作在為 特定用戶群所設(shè)計(jì)的系統(tǒng)中,它將通用CPU中許多由板卡完成的任務(wù)集成在 芯片內(nèi)部,從而使系統(tǒng)設(shè)計(jì)趨于小型化并具有較高的效率和可靠性。
目前嵌入式系統(tǒng)主要有三種存儲(chǔ)方法,分別為利用專門的外置芯片進(jìn)行 存儲(chǔ)、利用主芯片內(nèi)的一次性可編程(one time programmable,以下簡(jiǎn)稱 OTP)模塊進(jìn)行存儲(chǔ)、利用主芯片內(nèi)的只讀存儲(chǔ)器(Read Only Memory,以 下簡(jiǎn)稱ROM)進(jìn)行存儲(chǔ)。
利用專門的外置芯片進(jìn)行存儲(chǔ)的方法適用于程序量較大的嵌入式系統(tǒng), 其特點(diǎn)是靈活、易更改,當(dāng)程序量較大時(shí)成本較低,但是如果程序量較小成 本反而較高。利用主芯片內(nèi)的OTP模塊進(jìn)行存儲(chǔ)的方法是在產(chǎn)品生產(chǎn)最后環(huán) 節(jié)將程序?qū)懭氲叫酒腛TP內(nèi)部。利用主芯片內(nèi)的ROM進(jìn)行存儲(chǔ)的方法是在 芯片生產(chǎn)過(guò)程中將程序固化到芯片內(nèi)部。
在容量相同的情況下,使用ROM的嵌入式系統(tǒng)的成本低于采用OTP的嵌 入式系統(tǒng)成本,因此對(duì)于對(duì)成本要求嚴(yán)格的嵌入式系統(tǒng),使用ROM是更好的 選擇。然而傳統(tǒng)的ROM存儲(chǔ)方式在嵌入式產(chǎn)品生產(chǎn)過(guò)程中就已經(jīng)將程序固化 在R0M中,程序不能被靈活修改。因此如果僅采用R0M方式存儲(chǔ), 一旦程序 出現(xiàn)問(wèn)題很可能導(dǎo)致重新投片,風(fēng)險(xiǎn)很高。
綜上所述,在嵌入式系統(tǒng)中僅采用ROM存儲(chǔ)會(huì)給嵌入式產(chǎn)品帶來(lái)風(fēng)險(xiǎn),而僅采用OTP存儲(chǔ)又會(huì)提高嵌入式產(chǎn)品成本,因此一種成本低廉而又能夠修 正ROM程序的嵌入式系統(tǒng)及其實(shí)現(xiàn)方法具有重要的實(shí)用價(jià)值。
發(fā)明內(nèi)容
本發(fā)明提供了能夠解決以上問(wèn)題的修正ROM程序的嵌入式系統(tǒng)及其實(shí) 現(xiàn)方法。
在第一方面,本發(fā)明提供了一種修正ROM程序的嵌入式系統(tǒng),該系統(tǒng)包 括處理器及與該處理器通過(guò)地址線相連的ROM,以便處理器向ROM寫地址。 該嵌入式系統(tǒng)包括OTP、監(jiān)控電路、二選一控制器。0TP與R0M共用地址線, 且該0TP用于存儲(chǔ)修正的R0M程序。監(jiān)控電路位于所述地址線上,用于監(jiān)控 該地址線上的地址。二選一控制器根據(jù)監(jiān)控電路監(jiān)控到的地址,控制選擇 ROM中的程序或者選擇跳轉(zhuǎn)到OTP的指令。
在第二方面,本發(fā)明提供了一種嵌入式系統(tǒng)中修正ROM程序的方法,其 中該嵌入式系統(tǒng)包括處理器和R0M,處理器向R0M寫地址。該方法包括 首先監(jiān)控所述地址內(nèi)容;然后判定該地址是否滿足觸發(fā)條件;當(dāng)該地址滿足 所述觸發(fā)條件時(shí),發(fā)送跳轉(zhuǎn)到0TP的指令,并將該跳轉(zhuǎn)到OTP的指令發(fā)送至 處理器,其中OTP與ROM共用地址線且存儲(chǔ)修正的ROM程序;最后處理器根 據(jù)接收到的數(shù)據(jù)執(zhí)行相應(yīng)操作。
本發(fā)明的嵌入式系統(tǒng)主體采用ROM存儲(chǔ),通過(guò)OTP存儲(chǔ)方式對(duì)ROM中錯(cuò) 誤程序進(jìn)行修正,本發(fā)明的系統(tǒng)及方法在降低嵌入式產(chǎn)品風(fēng)險(xiǎn)的同時(shí)節(jié)約了 成本,因此具有重要的實(shí)用價(jià)值。
下面將參照附圖對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行更詳細(xì)的說(shuō)明,在附圖
中-
圖1是修正ROM程序的嵌入式系統(tǒng)框圖2是監(jiān)控電路寄存器的存儲(chǔ)格式;
圖3是嵌入式系統(tǒng)中修正ROM程序的流程圖。
具體實(shí)施方式
在嵌入式芯片生產(chǎn)完成后,系統(tǒng)程序已經(jīng)完全被固化到ROM中,且不能 做任何修改,此時(shí)若發(fā)現(xiàn)ROM中的某些程序出現(xiàn)錯(cuò)誤,嵌入式芯片很可能會(huì) 報(bào)廢,進(jìn)而給嵌入式產(chǎn)品的生產(chǎn)帶來(lái)極大風(fēng)險(xiǎn)。本發(fā)明為了彌補(bǔ)此種缺陷, 在嵌入式產(chǎn)品生產(chǎn)的最后環(huán)節(jié),將ROM錯(cuò)誤程序的修正程序燒錄到OTP中, 以便修正由ROM錯(cuò)誤程序而導(dǎo)致的系統(tǒng)功能發(fā)生錯(cuò)誤。所述嵌入式芯片如 MP3芯片,嵌入式產(chǎn)品如MP3。
圖1是修正R0M程序的嵌入式系統(tǒng)框圖,該嵌入式系統(tǒng)包括處理器110、 R0M120、 0TP130、監(jiān)控電路140、 二選一控制器150。其中,處理器110為 MPU、 MCU或EDSP等,特別地,本系統(tǒng)更加適合使用哈弗結(jié)構(gòu)的處理器。
R0M120用于存儲(chǔ)嵌入式系統(tǒng)的主要程序,并在嵌入式芯片生產(chǎn)過(guò)程中 將該主要程序全部固化。0TP130用于存儲(chǔ)修正程序,以便修正R0M中的錯(cuò) 誤程序,進(jìn)而完成ROM中錯(cuò)誤程序所本來(lái)應(yīng)當(dāng)完成的功能。
嵌入式系統(tǒng)存儲(chǔ)程序的硬件由R0M120和0TP130共同完成,R0M120與 0TP130使用同一套地址空間,并通過(guò)地址高低位進(jìn)行選擇。舉例如地址線 上的地址高四位為1111則為0TP130地址,否則為R0M120地址。將該共同 完成嵌入式存儲(chǔ)程序的硬件稱為R0M/0TP。由于嵌入式系統(tǒng)程序的修改內(nèi)容 相對(duì)于嵌入式系統(tǒng)的總程序來(lái)說(shuō)較小,因此0TP130存儲(chǔ)容量相對(duì)于R0M120 較小。
監(jiān)控電路140位于處理器110與R0M/0TP的地址線上,用于監(jiān)控該地址 線上的內(nèi)容,在監(jiān)控到該地址線上的內(nèi)容為R0M120錯(cuò)誤程序的地址時(shí)發(fā)送 控制信號(hào)和跳轉(zhuǎn)到OTP中的指令,以便處理器110不再執(zhí)行R0M120中的錯(cuò) 誤程序,而執(zhí)行0TP130中的修正程序。
監(jiān)控電路140包括一組寄存器,圖2是監(jiān)控電路寄存器的存儲(chǔ)格式。該 寄存器暫存內(nèi)容包括觸發(fā)條件和替換內(nèi)容,所述觸發(fā)條件是R0M120錯(cuò)誤程 序的入口地址,該錯(cuò)誤地址對(duì)應(yīng)的程序是處理器110執(zhí)行R0M120的錯(cuò)誤程 序。所述替換內(nèi)容為跳轉(zhuǎn)到0TP130相應(yīng)修正程序的入口地址,該指令包含 跳轉(zhuǎn)到0TP130中的具體地址,該地址在發(fā)現(xiàn)R0M120程序錯(cuò)誤時(shí)通過(guò)設(shè)計(jì) 0TP130的過(guò)程中得到。
監(jiān)控電路140監(jiān)控到的地址滿足觸發(fā)條件時(shí),即該監(jiān)控地址是R0M120 程序出錯(cuò)的入口地址時(shí),該監(jiān)控電路140發(fā)送控制信號(hào)并通過(guò)數(shù)據(jù)線二發(fā)送二選一控制器150通過(guò)控制信號(hào)和數(shù)據(jù)線二與監(jiān)控電路140相連,并通 過(guò)數(shù)據(jù)線一與ROM/OTP存儲(chǔ)結(jié)構(gòu)相連,通過(guò)數(shù)據(jù)線三與處理器110相連。
二選一控制器150根據(jù)監(jiān)控電路140監(jiān)控到的地址,控制選擇R0M120 中程序或者選擇跳轉(zhuǎn)到0TP130的指令。具體地,二選一控制器150在接收 到來(lái)自監(jiān)控電路140的控制信號(hào)時(shí),選擇數(shù)據(jù)線二中的跳轉(zhuǎn)到OTP中的指令, 否則選擇數(shù)據(jù)線一中的R0M程序,并通過(guò)數(shù)據(jù)線三將該接收到的數(shù)據(jù)發(fā)送至 處理器110。
處理器110根據(jù)數(shù)據(jù)線三中的數(shù)據(jù)內(nèi)容,執(zhí)行ROM的程序或執(zhí)行跳轉(zhuǎn)到 OTP的指令。
需要說(shuō)明的是,圖1只是示意性地描述地址線及數(shù)據(jù)線,實(shí)際上地址線 數(shù)量及數(shù)據(jù)線數(shù)量與嵌入式系統(tǒng)其他設(shè)計(jì)有關(guān),不受本發(fā)明的限定。 圖3是嵌入式系統(tǒng)中修正ROM程序的流程圖。
在步驟310,在處理器110向R0M/0TP發(fā)送地址的過(guò)程中,監(jiān)控電路140 監(jiān)控該處理器110與R0M/0TP地址線上的地址。
在步驟320,判斷監(jiān)控電路140監(jiān)控到的地址是否滿足觸發(fā)條件,所述 觸發(fā)條件是ROM120錯(cuò)誤程序的地址。
在步驟330,在監(jiān)控電路140監(jiān)控到的地址不滿足觸發(fā)條件時(shí),二選一 控制器150選擇數(shù)據(jù)線一中的數(shù)據(jù),也就是選擇R0M/0TP中的程序,并將該 ROM程序通過(guò)數(shù)據(jù)線三發(fā)送至處理器110。
在步驟331,處理器接收數(shù)據(jù)線三中的R0M/0TP程序,根據(jù)該程序內(nèi)容
執(zhí)行相應(yīng)操作。
在步驟340,在監(jiān)控電路140監(jiān)控到的地址滿足觸發(fā)條件時(shí),監(jiān)控電路 140向二選一控制器150發(fā)送控制信號(hào)并通過(guò)數(shù)據(jù)線二發(fā)送跳轉(zhuǎn)到OTP的指 令。
在步驟341, 二選一控制器150接收來(lái)自監(jiān)控電路140的該控制信號(hào)并 選中數(shù)據(jù)二中跳轉(zhuǎn)到OTP制定位置的指令。
在步驟342, 二選一控制器150將接收到的該跳轉(zhuǎn)指令通過(guò)數(shù)據(jù)線三發(fā) 送至處理器110。所述跳轉(zhuǎn)指令包括跳轉(zhuǎn)到OTP中的具體地址,以便處理器 110能夠正確跳轉(zhuǎn)到OTP中相應(yīng)位置。在步驟343,處理器110根據(jù)該跳轉(zhuǎn)指令中OTP的地址,跳轉(zhuǎn)到OTP相 應(yīng)修正程序中,從而開始執(zhí)行OTP中的相應(yīng)修正程序,進(jìn)而完成對(duì)ROM錯(cuò)誤 程序的修正。
顯而易見,在不偏離本發(fā)明的真實(shí)精神和范圍的前提下,在此描述的本 發(fā)明可以有許多變化。因此,所有對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見的改變, 都應(yīng)包括在本權(quán)利要求書所涵蓋的范圍之內(nèi)。本發(fā)明所要求保護(hù)的范圍僅由 所述的權(quán)利要求書進(jìn)行限定。
權(quán)利要求
1.一種修正ROM程序的嵌入式系統(tǒng),包括處理器(110)和與該處理器通過(guò)地址線相連的ROM(120),以便處理器(110)向ROM(120)寫地址;其特征在于,所述嵌入式系統(tǒng)包括OTP(130)、監(jiān)控電路(140)、二選一控制器(150);所述OTP(130)與ROM(120)共用地址線,且該OTP(130)用于存儲(chǔ)修正的ROM(120)程序;所述監(jiān)控電路(140)位于所述地址線上,用于監(jiān)控該地址線上的地址;所述二選一控制器(150)根據(jù)監(jiān)控電路(140)監(jiān)控到的地址,控制選擇ROM(120)中的程序或者選擇跳轉(zhuǎn)到OTP(130)的指令。
2. 如權(quán)利要求1所述的一種修正ROM程序的嵌入式系統(tǒng),其特征在于, 所述OTP (130)與所述ROM (120)通過(guò)地址高低位選中,且OTP (130)存 儲(chǔ)容量小于ROM (120)的存儲(chǔ)容量。
3. 如權(quán)利要求1所述的一種修正ROM程序的嵌入式系統(tǒng),其特征在于, 所述監(jiān)控電路(140)包括寄存器,該寄存器用于存儲(chǔ)觸發(fā)條件和所述跳轉(zhuǎn) 到OTP (130)的指令;所述觸發(fā)條件為錯(cuò)誤ROM (120)程序的入口地址。
4. 如權(quán)利要求3所述的一種修正ROM程序的嵌入式系統(tǒng),其特征在于, 監(jiān)控電路(140)監(jiān)控到的地址滿足所述觸發(fā)條件情況下,向二選一控制器(150)發(fā)送控制信號(hào)和跳轉(zhuǎn)到OTP (130)的指令。
5. 如權(quán)利要求4所述的一種修正ROM程序的嵌入式系統(tǒng),其特征在于, 所述二選一控制器(150)在接收到所述控制信號(hào)后,選擇所述跳轉(zhuǎn)到OTP(130)的指令。
6. 如權(quán)利要求1所述的一種修正ROM程序的嵌入式系統(tǒng),其特征在于, 所述處理器(110)為嵌入式微處理器器、嵌入式微控制器、嵌入式DSP處 理器中的一個(gè)。
7. —種嵌入式系統(tǒng)中修正ROM程序的方法,其中該嵌入式系統(tǒng)包括處理 器(110)和R0M (120),處理器向R0M (120)寫地址;所述方法包括步驟l,監(jiān)控所述地址內(nèi)容;步驟2,判定所述地址是否滿足觸發(fā)條件;步驟3,當(dāng)所述地址滿足所述觸發(fā)條件時(shí),發(fā)送跳轉(zhuǎn)到OTP (130)的指令, 并將該跳轉(zhuǎn)到0TP(130)的指令發(fā)送至處理器(110);其中,所述OTP (130) 與ROM (120)共用地址線,且存儲(chǔ)修正的ROM (120)程序;步驟4,處理器(110)根據(jù)接收到的數(shù)據(jù)執(zhí)行相應(yīng)操作。
8. 如權(quán)利要求7所述的一種嵌入式系統(tǒng)中修正ROM程序的方法,其特征 在于在步驟2中,當(dāng)判定所述地址不滿足所述觸發(fā)條件時(shí),將ROM (120) 中的程序發(fā)送至處理器(110)
9. 如權(quán)利要求7所述的一種嵌入式系統(tǒng)中修正ROM程序的方法,其特征 在于在步驟3中,判定所述地址滿足觸發(fā)條件后且在發(fā)送所述跳轉(zhuǎn)到OTP(130)指令的同時(shí)發(fā)送控制信號(hào)。
10. 如權(quán)利要求7所述的一種嵌入式系統(tǒng)中修正ROM程序的方法,其特 征在于,所述觸發(fā)條件為錯(cuò)誤R0M (120)程序的入口地址。
11. 如權(quán)利要求7所述的一種嵌入式系統(tǒng)中修正ROM程序的方法,其特 征在于,所述OTP (130)與所述ROM (120)通過(guò)地址高低位選中,且OTP(130)存儲(chǔ)容量小于R0M (120)的存儲(chǔ)容量。
全文摘要
本發(fā)明涉及嵌入式系統(tǒng),尤其涉及一種修正ROM程序的嵌入式系統(tǒng)及其實(shí)現(xiàn)方法。該嵌入式系統(tǒng)包括處理器、ROM、OTP、監(jiān)控電路、二選一控制器等。本發(fā)明主體采用ROM存儲(chǔ),并采用OTP對(duì)ROM中錯(cuò)誤程序進(jìn)行修正,且OTP與ROM共用地址線,并通過(guò)監(jiān)控電路監(jiān)控該地址線上的地址,二選一控制器根據(jù)該監(jiān)控到的地址控制選擇ROM中的程序或者選擇跳轉(zhuǎn)到OTP的指令。本發(fā)明的系統(tǒng)及方法解決了嵌入式系統(tǒng)芯片ROM不能修改的問(wèn)題,在降低嵌入式系統(tǒng)芯片風(fēng)險(xiǎn)的同時(shí)節(jié)約了成本,因此具有重要的應(yīng)用價(jià)值。
文檔編號(hào)G06F9/445GK101604248SQ20091008900
公開日2009年12月16日 申請(qǐng)日期2009年7月20日 優(yōu)先權(quán)日2009年7月20日
發(fā)明者巖 史 申請(qǐng)人:北京海爾集成電路設(shè)計(jì)有限公司