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