專利名稱:用戶程序引導方法及用戶程序引導系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及芯片系統(tǒng)(SoC,System on Chip)技術,尤其涉及用戶程序引導方法及用戶程序引導系統(tǒng)。
背景技術:
隨著信息技術的飛速發(fā)展,各種電子產(chǎn)品層出不窮,如MP3、MP4、PMP等。在這些消費類電子產(chǎn)品中,通常都包括一個SoC系統(tǒng)。參見圖1所示,SoC系統(tǒng)主要包括諸如微型控制單元(MCU)的微處理器和存儲體兩部分。所述存儲體可以是非易失性存儲器NOR FLASH、或NAND FLASH等。其中,微處理器中存儲了一些引導代碼(boot code)、編解碼算法代碼等芯片必須具備的代碼,主要用于完成芯片的初始化、用戶程序的引導及編解碼算法等;存儲體主要用于存儲用戶程序和大批量的數(shù)據(jù),如MP3數(shù)據(jù)等。
目前,在SoC系統(tǒng)中使用比較多的是NOR FLASH,MCU可以直接運行NOR FLASH中存儲的用戶程序。但隨著NAND FLASH性能價格比的不斷升高,NAND FLASH在消費類電子產(chǎn)品(如MP3、MP4、PMP等)中的使用越來越廣泛,大有取代NOR FLASH的趨勢。
通常,MCU采取直接尋址的方式從存儲器中讀取數(shù)據(jù),即MCU輸出物理地址、存儲器輸出數(shù)據(jù)。這種直接尋址的方式顯然與NAND FASH使用命令讀取數(shù)據(jù)的方式不一致,這也就造成了MCU不能直接運行NANDFLASH中存儲的用戶程序,而必須將NAND FLASH中存儲的用戶程序讀取到MCU內(nèi)部的隨機存儲器(RAM)中運行,完成MCU從NAND FLASH的引導。
MCU讀取NAND FLASH的代碼一般是針對特定類型的NAND FLASH而設計的,存儲在MCU內(nèi)部的存儲器中,具有不可修改的特性,且先于系統(tǒng)中的NAND FLASH產(chǎn)生。也就是說,MCU只能對與其相匹配的特定類型的NAND FLASH才能實現(xiàn)正確的訪問,而無法兼容其它類型的NANDFLASH。
但是,由于在實際應用中NAND FLASH的種類繁多,而不同的NANDFLASH具有不同的訪問命令、不同的地址長度、不同的訪問周期等特性,因此,對于不同的NAND FLASH,要想實現(xiàn)正確的訪問,就必須使用不同的訪問方法。
綜上所述,現(xiàn)有的用戶程序引導方法并不能適應各種類型NANDFLASH的訪問需求,而只能完成特定類型NAND FLASH的引導。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種用戶程序引導方法及用戶程序引導系統(tǒng),在使用NAND FLASH作為代碼存儲介質(zhì)的SoC系統(tǒng)中,實現(xiàn)微處理器從各種類型NAND FLASH的引導。
為達到上述目的,本發(fā)明提供的用戶程序引導方法如下在NAND FLASH中存儲用戶程序及其自身特征參數(shù),微處理器從NANDFLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到內(nèi)部隨機存儲器中運行。
其中,所述微處理器從NAND FLASH中讀取特征參數(shù)之前進一步包括設置微處理器訪問NAND FLASH的訪問周期;所述微處理器從NAND FLASH中讀取特征參數(shù)包括A、微處理器按照設置的訪問周期向NAND FLASH寫入讀命令,并向NAND FLASH寫入特征參數(shù)的存儲地址;B、微處理器判斷NAND FLASH是否準備好特征參數(shù),如果是,則按照設置的訪問周期從NAND FLASH中讀出所有的特征參數(shù);否則,繼續(xù)執(zhí)行本步驟。
所述訪問周期大于等于50ns。
所述讀命令為命令0;所述微處理器向NAND FLASH寫入特征參數(shù)的存儲地址包括微處理器向NAND FLASH連續(xù)寫入6個8位的地址0。
所述步驟B之前進一步包括微處理器在預定長度的時間內(nèi)判斷NAND FLASH是否在準備特征參數(shù),如果是,則執(zhí)行步驟B;否則,按照設置的訪問周期向NAND FLASH寫入確認命令,再執(zhí)行步驟B。
所述微處理器判斷NAND FLASH是否在準備特征參數(shù)包括微處理器判斷NAND FLASH的READY引腳是否為低電平;所述微處理器判斷NAND FLASH是否準備好特征參數(shù)包括微處理器判斷NAND FLASH的READY引腳是否為高電平。
所述確認命令為0x30。
所述特征參數(shù)存儲在NAND FLASH第零塊的第零頁。
所述特征參數(shù)包括列地址寬度、行地址寬度、頁面容量、讀操作的命令、信號的建立和保持時間、數(shù)據(jù)緩沖時間和壞塊表的物理位置。
所述微處理器為微型控制單元MCU。
另外,本發(fā)明還提供了一種用戶程序引導系統(tǒng),該系統(tǒng)包括NAND FLASH和微處理器,其中,NAND FLASH,用于存儲用戶程序及其自身特征參數(shù);微處理器,用于從NAND FLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NANDFLASH中讀取用戶程序到內(nèi)部隨機存儲器中運行。
所述特征參數(shù)存儲在NAND FLASH第零塊的第零頁。
所述微處理器為微型控制單元MCU。
由此可見,本發(fā)明通過NAND FLASH存儲其自身的特征參數(shù),在引導過程中,微處理器從NAND FLASH中讀取該特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,而不是事先將NAND FLASH的訪問操作配置好固化在微處理器中。這樣,微處理器就可以針對不同類型的NAND FLASH執(zhí)行不同的訪問操作,完成各種類型NAND FLASH的正確訪問,實現(xiàn)從各種類型NAND FLASH的引導,能夠與任一類型的NANDFLASH相兼容。
圖1為現(xiàn)有技術中的SoC系統(tǒng)結構示意圖。
圖2為本發(fā)明中的用戶程序引導系統(tǒng)結構示意圖。
圖3為本發(fā)明實施例中的用戶程序引導方法流程圖。
具體實施方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,下面參照附圖并舉實施例,對本發(fā)明作進一步詳細說明。
本發(fā)明提供的用戶程序引導方法的基本思想是在NAND FLASH中存儲用戶程序及其自身特征參數(shù),微處理器從NAND FLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到內(nèi)部隨機存儲器RAM中運行。
由于在初始狀態(tài)下,微處理器并不知道當前NAND FLASH的類型,因此需要根據(jù)不同類型的NAND FLASH所具有的統(tǒng)一特性,確定一個最基本的NAND FLASH模型。比如,微處理器默認當前NAND FLASH具有6個字節(jié)的地址寬度、支持讀命令(一般的都為0)、具有8位寬的數(shù)據(jù)接口寬度、具有慢的訪問速度等?;蛘咴撃P鸵嗫芍С执_認命令(一般的為0x30)。通過該基本模型,微處理器可以成功地讀取NAND FLASH的特征參數(shù),然后使用這些特征參數(shù)建立當前NAND FLASH的模型,得到與當前NANDFLASH相適應的特征參數(shù),也就是說,根據(jù)這些特征參數(shù)重新配置NANDFLASH的訪問操作。
對應本發(fā)明提供的用戶程序引導方法,本發(fā)明還提供了一種用戶程序引導系統(tǒng),參見圖2所示,該系統(tǒng)包括NAND FLASH和微處理器。其中,NANDFLASH,用于存儲用戶程序及其自身特征參數(shù);微處理器,用于從NAND FLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到內(nèi)部RAM中運行。
其中,所述微處理器為MCU等處理芯片。
所述NAND FLASH的特征參數(shù)包括列地址寬度、行地址寬度、頁面容量、讀操作的命令、信號的建立和保持時間、數(shù)據(jù)緩沖時間和壞塊表的物理位置等。
由于NAND FLASH的第零頁具有可以保證是完好的特殊性,因此,可以將NAND FLASH的特征參數(shù)保存在NAND FLASH第零塊的第零頁,即在NAND FLASH的地址0處記錄下該NAND FLASH的特征參數(shù)。
為更加清晰起見,下面以MCU這種微處理器為例,對本發(fā)明提供的引導方法進行詳細說明。其中,NAND FLASH的特征參數(shù)保存在NAND FLASH第零塊的第零頁。
參見圖3所示,本實施例中的用戶程序引導方法主要包括以下步驟步驟301MCU上電以后,進行復位、初始化的操作。
步驟302MCU為了獲取NAND FLASH的特征參數(shù),首先向NANDFLASH慢速寫入讀命令。
本步驟中,所述讀命令為0?,F(xiàn)有技術中,讀寫NAND FLASH的訪問周期一般為50ns。而本發(fā)明中,由于在初始狀態(tài)下MCU默認訪問的對象是最基本的NAND FLASH,因此為了提高可靠性和兼容性,MCU應當盡量慢速訪問NAND FLASH。本發(fā)明中,可以預先設置MCU訪問NAND FLASH的訪問周期,該訪問周期大于等于50ns,如以50ns的20倍為周期慢速寫入讀命令。
步驟303MCU向NAND FLASH慢速寫入需要讀取的特征參數(shù)在NAND FLASH中的地址。
目前的NAND FLASH的地址寬度即地址字節(jié)數(shù),一般是從3字節(jié)到5字節(jié)不等??紤]到向后的兼容性,這里可以選擇慢速連續(xù)寫入6個8位的地址0。對于多余的地址,NAND FLASH會自動忽略,因此不必擔心由于多余地址而導致NAND FLASH出現(xiàn)誤動作。
步驟304MCU在預定長度的時間內(nèi)判斷NAND FLASH是否在準備特征參數(shù),即判斷NAND FLASH是否處于忙的狀態(tài),如果是,則執(zhí)行步驟306;否則,執(zhí)行步驟305。
一般在實際應用中,MCU是判斷NAND FLASH的READY引腳是否為低電平,如果是,則表示NAND FLASH處于忙狀態(tài);如果為高電平,則表示NAND FLASH處于空閑狀態(tài),還沒開始準備MCU所需要的特征參數(shù)。其中,初始狀態(tài)下,NAND FLASH的READY引腳是高電平。
并且,MCU在預先設定的一個或多個時鐘周期內(nèi),多次查詢NANDFLASH的READY引腳的電平信號,如果每次都為高電平,則判斷NANDFLASH處于空閑狀態(tài)。
步驟305MCU向NAND FLASH慢速寫入確認命令(如命令0x30),再次表示MCU希望讀取NAND FLASH中的特征參數(shù)。
步驟306MCU判斷NAND FLASH是否已經(jīng)準備好特征參數(shù),比如判斷NAND FLASH的READY引腳是否又變成高電平,如果是,則執(zhí)行步驟307;否則,繼續(xù)執(zhí)行本步驟。
步驟307MCU從NAND FLASH慢速讀出所有的特征參數(shù)。
本步驟中,MCU每次向NAND FLASH發(fā)出一個讀信號,則從NANDFLASH中讀出一個字節(jié)的特征參數(shù)。
步驟308MCU根據(jù)讀出的特征參數(shù)重新配置NAND FLASH的訪問操作。
步驟309MCU通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到自身內(nèi)部的RAM中。
步驟310MCU使程序指針跳轉到RAM的起始處,開始運行從NANDFLASH中導入的指令。
至此,MCU就成功地完成了從NAND FLASH的引導。
以上所述對本發(fā)明的目的、技術方案和有益效果進行了進一步的詳細說明,所應理解的是,以上所述并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種用戶程序引導方法,其特征在于,該方法包括在NAND FLASH中存儲用戶程序及其自身特征參數(shù),微處理器從NANDFLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到內(nèi)部隨機存儲器中運行。
2.根據(jù)權利要求
1所述的方法,其特征在于,所述微處理器從NANDFLASH中讀取特征參數(shù)之前進一步包括設置微處理器訪問NAND FLASH的訪問周期;所述微處理器從NAND FLASH中讀取特征參數(shù)包括A、微處理器按照設置的訪問周期向NAND FLASH寫入讀命令,并向NAND FLASH寫入特征參數(shù)的存儲地址;B、微處理器判斷NAND FLASH是否準備好特征參數(shù),如果是,則按照設置的訪問周期從NAND FLASH中讀出所有的特征參數(shù);否則,繼續(xù)執(zhí)行本步驟。
3.根據(jù)權利要求
2所述的方法,其特征在于,所述訪問周期大于等于50ns。
4.根據(jù)權利要求
2所述的方法,其特征在于,所述讀命令為命令0;所述微處理器向NAND FLASH寫入特征參數(shù)的存儲地址包括微處理器向NAND FLASH連續(xù)寫入6個8位的地址0。
5.根據(jù)權利要求
2所述的方法,其特征在于,所述步驟B之前進一步包括微處理器在預定長度的時間內(nèi)判斷NAND FLASH是否在準備特征參數(shù),如果是,則執(zhí)行步驟B;否則,按照設置的訪問周期向NAND FLASH寫入確認命令,再執(zhí)行步驟B。
6.根據(jù)權利要求
5所述的方法,其特征在于,所述微處理器判斷NANDFLASH是否在準備特征參數(shù)包括微處理器判斷NAND FLASH的READY引腳是否為低電平;所述微處理器判斷NAND FLASH是否準備好特征參數(shù)包括微處理器判斷NAND FLASH的READY引腳是否為高電平。
7.根據(jù)權利要求
5所述的方法,其特征在于,所述確認命令為0x30。
8.根據(jù)權利要求
1所述的方法,其特征在于,所述特征參數(shù)存儲在NANDFLASH第零塊的第零頁。
9.根據(jù)權利要求
1至8任一項所述的方法,其特征在于,所述特征參數(shù)包括列地址寬度、行地址寬度、頁面容量、讀操作的命令、信號的建立和保持時間、數(shù)據(jù)緩沖時間和壞塊表的物理位置。
10.根據(jù)權利要求
1至8任一項所述的方法,其特征在于,所述微處理器為微型控制單元MCU。
11.一種用戶程序引導系統(tǒng),其特征在于,該系統(tǒng)包括NAND FLASH和微處理器,其中,NAND FLASH,用于存儲用戶程序及其自身特征參數(shù);微處理器,用于從NAND FLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NANDFLASH中讀取用戶程序到內(nèi)部隨機存儲器中運行。
12.根據(jù)權利要求
11所述的系統(tǒng),其特征在于,所述特征參數(shù)存儲在NANDFLASH第零塊的第零頁。
13.根據(jù)權利要求
11所述的系統(tǒng),其特征在于,所述微處理器為微型控制單元MCU。
專利摘要
本發(fā)明提供了一種用戶程序引導方法,該方法包括在NAND FLASH中存儲用戶程序及其自身特征參數(shù),微處理器從NAND FLASH中讀取所述特征參數(shù),根據(jù)讀取的特征參數(shù)重新配置NAND FLASH的訪問操作,并通過重新配置的訪問操作從NAND FLASH中讀取用戶程序到內(nèi)部隨機存儲器中運行。另外,本發(fā)明還提供了一種用戶程序引導系統(tǒng),包括微處理器和NAND FLASH。本發(fā)明能夠?qū)崿F(xiàn)微處理器從各種類型NAND FLASH的引導,與各種類型的NAND FLASH相兼容。
文檔編號G06F9/445GK1996248SQ200610167187
公開日2007年7月11日 申請日期2006年12月26日
發(fā)明者鄧乃利 申請人:北京中星微電子有限公司導出引文BiBTeX, EndNote, RefMan