09提供附加的寄存器控制模式,其中,中央處理器101對嵌入式存儲器104進(jìn)行讀、寫和擦除操作中的至少一種操作。
[0063]圖4是根據(jù)本發(fā)明的第四實(shí)施例的訪問嵌入式存儲器的方法的流程圖。所述嵌入式存儲器的高效訪問方法包括以下步驟。
[0064]在步驟S100中,將中央處理器101的頻率與第一閾值進(jìn)行比較。
[0065]由于中央處理器的工作頻率與嵌入式存儲器的工作頻率達(dá)不到匹配時(shí),會影響中央處理器的工作。因此,需要根據(jù)中央處理器的工作頻率選擇相應(yīng)的工作模式。
[0066]在步驟S200中,當(dāng)中央處理器101的頻率小于第一閾值時(shí),嵌入式存儲器104工作于第一模式。第一模式即低功耗模式,中央處理器101直接從嵌入式存儲器104獲取指令和/或操作數(shù)。
[0067]在步驟S300中,當(dāng)中央處理器101的頻率大于等于第一閾值時(shí),嵌入式存儲器工作于高速訪問模式。第二模式即高速訪問模式,中央處理器101經(jīng)由高速緩沖存儲器102從嵌入式存儲器104獲取指令和/或操作數(shù)。
[0068]如上所述,在中央處理器的工作頻率較高時(shí),在高效訪問模式下,由于高速緩沖存儲器會預(yù)先存儲近期要使用的指令,會提高中央處理器獲取指令的速度,否則會由于嵌入式存儲器的速度會跟不上中央處理器的速度,造成中央處理器經(jīng)常處于等待狀態(tài)。
[0069]圖5是根據(jù)本發(fā)明的第五實(shí)施例的存儲器擴(kuò)展方法的流程圖。所述嵌入式存儲器的擴(kuò)展方法包括以下步驟。
[0070]在步驟S400中,將應(yīng)用程序與嵌入式存儲器的容量進(jìn)行比較。
[0071]由于嵌入式存儲器的容量一般比較小,如果應(yīng)用程序過大的話,嵌入式存儲器的容量不夠存儲時(shí)則需要對嵌入式存儲器進(jìn)行擴(kuò)展以便存儲應(yīng)用程序。
[0072]在步驟S500中,當(dāng)應(yīng)用程序的數(shù)據(jù)小于嵌入式存儲器的容量時(shí),處理器系統(tǒng)工作于正常工作模式,第三模式為處理器的正常工作模式,處理器從嵌入式存儲器獲取指令和/或操作數(shù)。
[0073]在步驟S600中,當(dāng)應(yīng)用程序的數(shù)據(jù)大于嵌入式存儲器的容量時(shí),處理器從第三模式切換至第四模式,第四模式為處理器的程序擴(kuò)展模式,處理器從外部SPI FLASH存儲器獲取指令和/或操作數(shù)。
[0074]如上所述,當(dāng)應(yīng)用程序過大時(shí),嵌入式存儲器不足以存儲時(shí),需要在片上系統(tǒng)外增加SPI FLASH存儲器,中央處理器通過高速緩沖存儲器從外部的SPI FLASH存儲器獲取指令和/或操作數(shù)。系統(tǒng)利用外部的SPI FLASH存儲器來擴(kuò)展程序。
[0075]圖6是根據(jù)本發(fā)明的第六實(shí)施例的程序升級方法的流程圖,圖8至10示出在程序升級方法的不同步驟中的存儲器操作示意性框圖。所述SPI FLASH存儲器升級方法包括以下多個(gè)步驟。
[0076]SPI FLASH存儲器200的存儲區(qū)可以分為不同的區(qū)域,即程序區(qū)和保留區(qū)。程序區(qū)是中央處理器101的尋址空間,根據(jù)功能可示意性的分為A、B、C三塊,如圖8所示。在SPIFLASH存儲器200的區(qū)域A、B、C中分別存儲第一復(fù)制程序、升級驅(qū)動程序和第二復(fù)制程序。
[0077]在步驟S700中,在SPI FLASH接口控制器的第五模式,將升級驅(qū)動程序復(fù)制到高速緩沖存儲器中。第五模式即SPI FLASH接口控制器的鎖定模式,其中在高速緩沖存儲器102與SPI FLASH存儲器200之間,自動進(jìn)行數(shù)據(jù)緩存。
[0078]升級驅(qū)動程序用于執(zhí)行升級時(shí)針對SPI FLASH接口控制器103的各種操作,例如包括接口狀態(tài)切換程序和讀寫擦除等控制程序。在優(yōu)選的實(shí)施例中,在復(fù)制升級驅(qū)動程序之后進(jìn)行地址鎖定,使得升級驅(qū)動程序處于高速緩沖存儲器鎖定的地址空間中。
[0079]圖8示出步驟S700的存儲器操作示意性框圖,其中,用于執(zhí)行升級驅(qū)動程序復(fù)制操作的第一復(fù)制程序表示為A程序,而升級驅(qū)動程序自身表示為B程序。
[0080]在步驟S800中,中央處理器301執(zhí)行接口狀態(tài)切換程序,將SPI FLASH接口控制器從第五模式切換至第六模式。第六模式即SPI FLASH接口控制器的寄存器控制模式。
[0081]如上所述,只有當(dāng)SPI FLASH存儲器200的SPI FLASH接口控制器103被切換為寄存器控制模式,才能對接口進(jìn)行讀寫和擦除等操作,否則會與中央處理器101接口沖突。
[0082]在步驟S900中,在SPI FLASH接口控制器的第六模式,將升級文件寫入SPI FLASH存儲器200。如果數(shù)據(jù)存儲器不能一次性讀取升級文件的情況時(shí),則分塊讀取升級文件。該升級文件寫入步驟將結(jié)合圖7進(jìn)一步詳細(xì)說明。
[0083]在優(yōu)選的實(shí)施例中,在步驟S900之后,系統(tǒng)重新上電,或者在高速緩沖存儲器中運(yùn)行復(fù)位程序,使得系統(tǒng)將執(zhí)行新升級的程序。
[0084]圖7示出圖6中升級文件寫入步驟的流程圖。為了執(zhí)行圖6中的步驟S900,可以執(zhí)行以下多個(gè)步驟。
[0085]在步驟S901中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行擦除操作,從而擦除SPI FLASH存儲器200的保留區(qū),準(zhǔn)備下一步升級文件數(shù)據(jù)的寫入。
[0086]在步驟S902中,判斷升級文件是否大于內(nèi)存空間。
[0087]如果升級文件小于內(nèi)存空間,則執(zhí)行步驟S903至S905。
[0088]在步驟S903中,中央處理器301執(zhí)行SPI FLASH存儲器200中的第二復(fù)制程序,將外設(shè)設(shè)備內(nèi)的升級文件全部讀入到內(nèi)存。
[0089]在步驟S904中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行擦除操作,從而擦除SPI FLASH存儲器的程序區(qū)。
[0090]在步驟S905中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行寫入操作,從而將內(nèi)存數(shù)據(jù)寫入到SPI FLASH存儲器的程序區(qū)。
[0091]如果升級文件大于內(nèi)存空間,則執(zhí)行步驟S906至S311。
[0092]在步驟S906中,中央處理器301執(zhí)行SPI FLASH存儲器200中的第二復(fù)制程序,將外設(shè)設(shè)備內(nèi)的升級文件的一部分讀入到內(nèi)存。
[0093]在步驟S907中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行寫入操作,從而將內(nèi)存數(shù)據(jù)寫入到SPI FLASH存儲器的保留區(qū)。
[0094]在步驟S908中,判斷是否已經(jīng)復(fù)制全部升級文件。如果未復(fù)制全部升級文件,則重復(fù)步驟S906至S908。通過多次循環(huán),直至將全部升級文件復(fù)制到SPI FLASH存儲器的保留區(qū),進(jìn)一步執(zhí)彳丁步驟S909至311。
[0095]圖9示出步驟S906至S908的存儲器操作示意性框圖,其中,用于執(zhí)行升級文件復(fù)制操作的第二復(fù)制程序表示為C程序,而升級驅(qū)動程序自身表示為B程序。
[0096]在步驟S909中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行擦除操作,從而擦除SPI FLASH存儲器200的程序區(qū)。該步驟擦除了 SPI FLASH存儲器200的區(qū)域A、B、C,這樣系統(tǒng)代碼生命就此終止。
[0097]在步驟S910中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPI FLASH存儲器200進(jìn)行讀取和寫入操作,將SPI FLASH存儲器200的保留區(qū)內(nèi)容復(fù)制至程序區(qū)。
[0098]圖10示出步驟S909至S910的存儲器操作示意性框圖,其中,升級驅(qū)動程序自身表示為B程序。
[0099]由于可以在系統(tǒng)的運(yùn)行狀態(tài)切換SPI FLASH接口控制器的工作模式,上述處理器系統(tǒng)的應(yīng)用靈活性增加,不僅限于提供可升級的系統(tǒng),而且可以提供存儲器擴(kuò)展功能。例如,將存儲存儲器復(fù)用為數(shù)據(jù)存儲器,從而擴(kuò)展系統(tǒng)的數(shù)據(jù)區(qū)。
[0100]在本發(fā)明實(shí)施例中,嵌入式存儲器的升級方法與程序存儲器的升級方法一樣,嵌入式存儲器切換至控制寄存器模