徑連通。中央處理器101采用SPI FLASH控制寄存器107執(zhí)行SPI FLASH接口控制器106的模式切換操作,使得SPIFLASH接口控制器106可以處于以下第五和第六種模式之一。第五模式即鎖定模式,其中,在高速緩沖存儲器102與SPI FLASH存儲器200之間,自動進(jìn)行數(shù)據(jù)緩存。第六模式即寄存器控制模式,其中中央處理器101可以對SPI FLASH存儲器200進(jìn)行讀、寫和擦除操作。例如,在第六模式中,中央處理器101讀取內(nèi)存108,獲得升級文件并將其寫入SPI FLASH存儲器200,從而實現(xiàn)SPI FLASH存儲器200的升級。
[0059]中央處理器101不僅可以經(jīng)由高速緩沖存儲器102和SPI FLASH接口控制器106訪問SPI FLASH存儲器200,還可以經(jīng)由SPI FLASH控制寄存器107以及SPI FLASH接口控制器106訪問SPI FLASH存儲器200。
[0060]采用該架構(gòu)的處理器系統(tǒng)可以使得系統(tǒng)的SPIFLASH存儲器接口除了指令之外,還能夠支持到SPI FLASH存儲器升級。該方案可以兼容原有的處理器系統(tǒng),并且低成本地提供新增功能。
[0061 ] 在優(yōu)選的實施例中,SPI FLASH存儲器200的接口為可編程復(fù)用的接口。因此,SPIFLASH存儲器200可復(fù)用為數(shù)據(jù)存儲器。SPI FLASH存儲器能夠復(fù)用為數(shù)據(jù)存儲器,SPIFLASH存儲器接口能夠復(fù)用為某些標(biāo)準(zhǔn)的控制總線,使得系統(tǒng)的應(yīng)用靈活性增加。
[0062]在優(yōu)選的實施例中,上述處理器系統(tǒng)還包括嵌入式存儲器控制寄存器109,連接在中央處理器101和嵌入式存儲器104之間;所述嵌入式存儲器控制寄存器109提供附加的寄存器控制模式,其中,中央處理器101對嵌入式存儲器104進(jìn)行讀、寫和擦除操作中的至少一種操作。
[0063]圖4是根據(jù)本實用新型的第四實施例的訪問嵌入式存儲器的方法的流程圖。所述嵌入式存儲器的高效訪問方法包括以下步驟。
[0064]在步驟SlOO中,將中央處理器101的頻率與第一閾值進(jìn)行比較。
[0065]由于中央處理器的工作頻率與嵌入式存儲器的工作頻率達(dá)不到匹配時,會影響中央處理器的工作。因此,需要根據(jù)中央處理器的工作頻率選擇相應(yīng)的工作模式。
[0066]在步驟S200中,當(dāng)中央處理器101的頻率小于第一閾值時,嵌入式存儲器104工作于第一模式。第一模式即低功耗模式,中央處理器101直接從嵌入式存儲器104獲取指令和/或操作數(shù)。
[0067]在步驟S300中,當(dāng)中央處理器101的頻率大于等于第一閾值時,嵌入式存儲器工作于高速訪問模式。第二模式即高速訪問模式,中央處理器101經(jīng)由高速緩沖存儲器102從嵌入式存儲器104獲取指令和/或操作數(shù)。
[0068]如上所述,在中央處理器的工作頻率較高時,在高效訪問模式下,由于高速緩沖存儲器會預(yù)先存儲近期要使用的指令,會提高中央處理器獲取指令的速度,否則會由于嵌入式存儲器的速度會跟不上中央處理器的速度,造成中央處理器經(jīng)常處于等待狀態(tài)。
[0069]圖5是根據(jù)本實用新型的第五實施例的存儲器擴(kuò)展方法的流程圖。所述嵌入式存儲器的擴(kuò)展方法包括以下步驟。
[0070]在步驟S400中,將應(yīng)用程序與嵌入式存儲器的容量進(jìn)行比較。
[0071 ]由于嵌入式存儲器的容量一般比較小,如果應(yīng)用程序過大的話,嵌入式存儲器的容量不夠存儲時則需要對嵌入式存儲器進(jìn)行擴(kuò)展以便存儲應(yīng)用程序。
[0072]在步驟S500中,當(dāng)應(yīng)用程序的數(shù)據(jù)小于嵌入式存儲器的容量時,處理器系統(tǒng)工作于正常工作模式,第三模式為處理器的正常工作模式,處理器從嵌入式存儲器獲取指令和/或操作數(shù)。
[0073]在步驟S600中,當(dāng)應(yīng)用程序的數(shù)據(jù)大于嵌入式存儲器的容量時,處理器從第三模式切換至第四模式,第四模式為處理器的程序擴(kuò)展模式,處理器從外部SPI FLASH存儲器獲取指令和/或操作數(shù)。
[0074]如上所述,當(dāng)應(yīng)用程序過大時,嵌入式存儲器不足以存儲時,需要在片上系統(tǒng)外增加SPI FLASH存儲器,中央處理器通過高速緩沖存儲器從外部的SPI FLASH存儲器獲取指令和/或操作數(shù)。系統(tǒng)利用外部的SPI FLASH存儲器來擴(kuò)展程序。
[0075]圖6是根據(jù)本實用新型的第六實施例的程序升級方法的流程圖,圖8至10示出在程序升級方法的不同步驟中的存儲器操作示意性框圖。所述SPI FLASH存儲器升級方法包括以下多個步驟。
[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í)行升級時針對SPI FLASH接口控制器103的各種操作,例如包括接口狀態(tài)切換程序和讀寫擦除等控制程序。在優(yōu)選的實施例中,在復(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ù)存儲器不能一次性讀取升級文件的情況時,則分塊讀取升級文件。該升級文件寫入步驟將結(jié)合圖7進(jìn)一步詳細(xì)說明。
[0083]在優(yōu)選的實施例中,在步驟S900之后,系統(tǒng)重新上電,或者在高速緩沖存儲器中運行復(fù)位程序,使得系統(tǒng)將執(zhí)行新升級的程序。
[0084]圖7示出圖6中升級文件寫入步驟的流程圖。為了執(zhí)行圖6中的步驟S900,可以執(zhí)行以下多個步驟。
[0085]在步驟S901中,中央處理器301執(zhí)行高速緩沖存儲器102中的升級驅(qū)動程序,對SPIFLASH存儲器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)存。