專(zhuān)利名稱(chēng):數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法。
技術(shù)背景存儲(chǔ)器作為主要的電子存儲(chǔ)設(shè)備,已廣泛地應(yīng)用在各種電子設(shè)備中以 存儲(chǔ)各種應(yīng)用程序和數(shù)據(jù)。隨著電子技術(shù)的快速發(fā)展,存儲(chǔ)器的種類(lèi)也越來(lái)越多,如硬盤(pán)、閃存(Flash)等。一般數(shù)字機(jī)頂盒采用閃存作為其主要的存儲(chǔ)設(shè)備,以存儲(chǔ)各種應(yīng)用程 序和主要的數(shù)據(jù)。由于不同類(lèi)型的數(shù)字機(jī)頂盒對(duì)閃存的要求也各不相同, 有些數(shù)字機(jī)頂盒需要采用2MB容量的閃存,有些需要采用4MB, 8MB或 16MB等不同容量的閃存;且有些數(shù)字機(jī)頂盒僅需要一片閃存即可,而有 些數(shù)字機(jī)頂盒需要采用兩片或更多片的閃存。因此,數(shù)字機(jī)頂盒的生產(chǎn)商 需要在閃存的選型上具有足夠的靈活性,可以選擇不同類(lèi)型的閃存芯片。但是, 一般數(shù)字機(jī)頂盒中的應(yīng)用程序與閃存的配置是綁定的, 一旦閃 存配置發(fā)生了變化,如在硬件設(shè)計(jì)中將一片閃存芯片更改為兩片閃存芯片, 或者將4MB的閃存芯片更改為8MB的閃存芯片,則該應(yīng)用程序都需要進(jìn) 行相應(yīng)得修改,以匹配該閃存芯片。因此,應(yīng)用程序出錯(cuò)的可能性大大提 高了,且應(yīng)用程序變得更加復(fù)雜,難以維護(hù)。且該數(shù)字機(jī)頂盒也需要重新 進(jìn)行CA認(rèn)證,增加了成本,也延誤了產(chǎn)品推向市場(chǎng)的時(shí)機(jī)。有鑒于此,有必要提供一種能自動(dòng)識(shí)別存儲(chǔ)器數(shù)量及其大小的方法。發(fā)明內(nèi)容為克服現(xiàn)有技術(shù)中數(shù)字機(jī)頂盒中的存儲(chǔ)器無(wú)法自動(dòng)識(shí)別的缺陷,有必 要提供一種數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法。為解決上述技術(shù)問(wèn)題,提供一種數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方 法,其包括以下步驟確定系統(tǒng)的尋址方式;將該多個(gè)存儲(chǔ)器的容量大小分別設(shè)置為默認(rèn)值,并分別以該默認(rèn)的存儲(chǔ)器容量大小計(jì)算出每個(gè)存儲(chǔ)器的默認(rèn)基地址;以該多個(gè)存儲(chǔ)器默認(rèn)的容量大小及默認(rèn)基地址為基礎(chǔ)進(jìn)行 空間分配,讀取每個(gè)存儲(chǔ)器的ID,從而獲得該每個(gè)存儲(chǔ)器的實(shí)際容量大?。?根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小,分別計(jì)算出每個(gè)存儲(chǔ)器的實(shí)際基地址; 根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小及其實(shí)際基地址重新進(jìn)行配置。與現(xiàn)有技術(shù)相比較,該數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,通過(guò) 兩次空間分配使該主芯片中的應(yīng)用程序完全匹配該各個(gè)存儲(chǔ)器,達(dá)到自動(dòng) 識(shí)別的功能。因此,該方法可以不用改變應(yīng)用程序,減少了應(yīng)用程序出錯(cuò) 的幾率,便于維護(hù),且該采用該方法的數(shù)字機(jī)頂盒,在更改硬件設(shè)計(jì)時(shí),由于其應(yīng)用程序不需要改變,則其不需要重新進(jìn)行CA認(rèn)證,減少了成本。
圖1是本發(fā)明實(shí)施方式所提供的數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方 法的流程圖;圖2是圖1所示的數(shù)字機(jī)頂盒為一高地址引導(dǎo)的系統(tǒng)時(shí)存儲(chǔ)器的空間 分配示意圖;圖3是圖1所示的數(shù)字機(jī)頂盒為一低地址引導(dǎo)的系統(tǒng)時(shí)存儲(chǔ)器的空間 分配示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施方式做進(jìn)一步詳細(xì)說(shuō)明。 參見(jiàn)圖1至圖3,為本發(fā)明實(shí)施例提供的一種數(shù)字機(jī)頂盒中的存儲(chǔ)器 自動(dòng)識(shí)別的方法,該方法包括以下步驟 步驟110:確定系統(tǒng)的尋址方式;目前數(shù)字機(jī)頂盒中的主芯片,即中央處理器(MCU)存在兩種不同的 尋址方式,即高地址引導(dǎo)的尋址方式和低地址引導(dǎo)的尋址方式。該尋址方 式由主芯片的類(lèi)型所確定。由于目前數(shù)字機(jī)頂盒中的主芯片都至少支持2片的閃存,因此對(duì)于高 地址引導(dǎo)的系統(tǒng),其第二閃存芯片的基地址A—Address一2為引導(dǎo)地址Boot Address減去第二閃存芯片的容量大小A—Size—2;第一閃存芯片的基地址 A—Address一l為第二閃存芯片的基地址A—Address—2減去第 一 閃存芯片的 容量大小A一Size一l;若有2片以上的閃存芯片,則依次類(lèi)推。對(duì)于低地址引導(dǎo)的系統(tǒng),其第一閃存芯片的基地址A一Address一l為引 導(dǎo)地址Boot Address;笫二閃存芯片的基地址A—Address—2為第一閃存芯 片的基地址A—Address—1加上第一閃存芯片的容量大小A—Size—1;若有2 片以上的閃存芯片,則依次類(lèi)推。步驟120:將該兩個(gè)閃存芯片的容量大小分別設(shè)置為默認(rèn)值,并以該 默認(rèn)的閃存芯片的容量大小分別計(jì)算出該多個(gè)存儲(chǔ)器的默認(rèn)基地址。步驟110確定了系統(tǒng)的引導(dǎo)方式之后,則引導(dǎo)地址Boot Address就是已知的。對(duì)于高地址引導(dǎo)的系統(tǒng),將該第一閃存芯片的容量大小設(shè)置為一 第一默認(rèn)值D一Size一1,第二閃存芯片的容量大小設(shè)置為一第二默認(rèn)值 D Size 2,并計(jì)算出該第一、第二閃存芯片的默認(rèn)基地址D—Address—1
和D—Address—2 ,其計(jì)算^>式為D—Address—2=Boot Address -D—Si e一2; D—Address—1=D—Address_2-D—Size—1;同—理,如^是低"k址引"^的系統(tǒng),將該第一閃存芯片的容量大小設(shè)置 為一第一默認(rèn)值D—Size—1,第二閃存芯片的容量大小設(shè)置為一第二默認(rèn) 值D—Size—2,并計(jì)^出該第 一 、第二閃存芯片的默認(rèn)基地址D—Address—1 和D一Address_2,其計(jì)算公式為D_Address_l= Boot Address;D—Address—2= D—Address—1 +D—Size—1;優(yōu)選地,該每個(gè)閃存芯片的默認(rèn)容量大小應(yīng)大于該每個(gè)閃存芯片的實(shí) 際容量大小。步驟130:主芯片以該兩個(gè)閃存芯片默認(rèn)的容量大小及相應(yīng)的默認(rèn)基 地址對(duì)該多個(gè)閃存芯片進(jìn)行空間分配,讀取每個(gè)閃存芯片的ID,并從而得 到每個(gè)閃存芯片的實(shí)際容量大小。該步驟130進(jìn)一步包括以下步驟步驟131:讀取第一閃存芯片的ID。讀取第一閃存芯片的ID,閃存芯片的ID是閃存的唯一標(biāo)識(shí),對(duì)于不 同型號(hào),不同容量大小的閃存,其ID都是唯一的,因此可以通過(guò)ID來(lái)確 定該閃存芯片的型號(hào)和大小。步驟132:判斷第一閃存芯片的ID是否有效,如果有效,則進(jìn)入步驟 133;如果無(wú)效,則進(jìn)入步驟134。由于該第一閃存芯片的ID為有效的ID,則表示該笫一閃存芯片實(shí)際 存在,進(jìn)入步驟133以獲取該第一閃存芯片的實(shí)際容量大小A一Size一l。如果該第一閃存芯片的ID為無(wú)效的ID,則表示該第一閃i芯^是不 存在的,即該數(shù)字機(jī)頂盒不包括該第一閃存芯片,此時(shí),進(jìn)入步驟134以 讀取第二閃存芯片的ID。步驟133:獲得該第一閃存芯片的實(shí)際大小,進(jìn)入步驟134;由于該第一閃存芯片的ID為有效的ID,則表示該第一閃存芯片實(shí)際 存在,且從其ID中可以唯一地獲得該第一閃存芯片的實(shí)際容量大小,獲得 該第一閃存芯片的實(shí)際容量大小A—Size—1后,進(jìn)入步驟134。步驟134:讀取第二閃存芯片的ID。同理,讀取該第二閃存芯片的ID,以獲得該第二閃存芯片的實(shí)際容量 大小A一Size一2。步驟135:判斷第二閃存芯片的ID是否有效,如杲有效,則進(jìn)入步驟 136;如果無(wú)效,則進(jìn)入步驟140。判斷該第二閃存芯片的ID是否為有效的ID,如果是有效的ID,則進(jìn)
入步驟136以獲得該第二閃存芯片的實(shí)際容量大小A_Size—2;如果不是, 則進(jìn)入步驟140;步驟136:獲得該第二閃存芯片的實(shí)際容量大小。由于該第二閃存芯片的ID是有效的ID,則從中可以獲得該第二閃存 芯片的實(shí)際容量大小A一Size—2。若該數(shù)字機(jī)頂盒具^(guò)兩S以上的閃存芯片,則重復(fù)上述步驟,依次獲 得該各個(gè)閃存芯片的實(shí)際容量大小。步驟140:根據(jù)得到的每個(gè)閃存芯片的實(shí)際容量大小,分別計(jì)算出該 每個(gè)閃存芯片的實(shí)際基地址。對(duì)于高地址引導(dǎo)的系統(tǒng),則第二閃存芯片的實(shí)際基地址A一Address—2, 可通過(guò)以下公式獲得A—Address—2=Boot Address -A—Size—2;而第一閃存芯片的實(shí)際基地址A—Address一l,可通過(guò)以下公式獲得 A_Address—l=A_Address—2 —A—Size—1 。對(duì)于低地址引導(dǎo)的系統(tǒng),則第 一 閃4—芯片的實(shí)際基地址A—Addressj , 可通過(guò)以下公式獲得A一Address」-Boot Address ;而第二閃存芯片的實(shí)際基地址A—Address—2,可通過(guò)以下公式獲得 A一Address一2-A一Address—1十A一Size一1 。步驟150:主芯》根據(jù)i個(gè)閃存芯片的實(shí)際容量大小及實(shí)際基地址重 新進(jìn)行配置。以獲得到的各個(gè)閃存芯片的實(shí)際容量大小及實(shí)際基地址為依據(jù),數(shù)字 機(jī)頂盒的主芯片重新進(jìn)行空間分配,以完全匹配各個(gè)閃存芯片。與現(xiàn)有技術(shù)相比較,該數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,通過(guò) 兩次空間分配使該主芯片中的應(yīng)用程序完全匹配該各個(gè)存儲(chǔ)器,達(dá)到自動(dòng) 識(shí)別的功能。因此,該方法可以不用改變應(yīng)用程序,減少了應(yīng)用程序出錯(cuò) 的幾率,便于維護(hù),且該采用該方法的數(shù)字機(jī)頂盒,在更改硬件設(shè)計(jì)時(shí), 由于其應(yīng)用程序不需要改變,則其不需要重新進(jìn)行CA認(rèn)證,減少了成本。另外,本領(lǐng)域技術(shù)人員還可在本發(fā)明精神內(nèi)做其它變化,這些依據(jù)本 發(fā)明精神所做的變化,都應(yīng)包含在本發(fā)明所要求保護(hù)的范圍之內(nèi)。
權(quán)利要求
1. 一種數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,其包括以下步驟確定系統(tǒng)的尋址方式;將該多個(gè)存儲(chǔ)器的容量大小分別設(shè)置為默認(rèn)值,并分別以該默認(rèn)的存儲(chǔ)器容量大小計(jì)算出每個(gè)存儲(chǔ)器的默認(rèn)基地址;以該多個(gè)存儲(chǔ)器默認(rèn)的容量大小及默認(rèn)基地址為基礎(chǔ)進(jìn)行空間分配,讀取每個(gè)存儲(chǔ)器的ID,從而獲得該每個(gè)存儲(chǔ)器的實(shí)際容量大??;根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小,分別計(jì)算出每個(gè)存儲(chǔ)器的實(shí)際基地址;根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小及其實(shí)際基地址重新進(jìn)行配置。
2、 如權(quán)利要求1所述的數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,其特 征在于,該多個(gè)存儲(chǔ)器為多個(gè)閃存芯片。
3、 如權(quán)利要求2所述的數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,其特 征在于,該多個(gè)存儲(chǔ)器包括第一閃存芯片和第二閃存芯片。
4、 如權(quán)利要求3所述的數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,其特 征在于,該數(shù)字機(jī)頂盒為一高地址引導(dǎo)的系統(tǒng),該笫二閃存芯片的默認(rèn)基 地址為該高地址引導(dǎo)系統(tǒng)的引導(dǎo)地址減去該第二閃存芯片的默認(rèn)容量大 小,該第 一 閃存芯片的默認(rèn)基地址為該第二閃存芯片的默認(rèn)基地址減去該 第一閃存芯片的默認(rèn)容量大??;該第二閃存芯片的實(shí)際基地址為該高地址 引導(dǎo)系統(tǒng)的引導(dǎo)地址減去該第二閃存芯片的實(shí)際容量大小,該第一閃存芯 片的實(shí)際基地址為該第二閃存芯片的實(shí)際基地址減去該第一閃存芯片的實(shí) 際容量大小。
5、 如權(quán)利要求3所述的數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法,其特 征在于,該數(shù)字機(jī)頂盒為一低地址引導(dǎo)的系統(tǒng),該第一閃存芯片的默認(rèn)基 地址為該低地址引導(dǎo)系統(tǒng)的引導(dǎo)地址,該第二閃存芯片的默認(rèn)基地址為該 第 一 閃存芯片的默認(rèn)基地址加上該第 一 閃存芯片的默認(rèn)容量大??;該第一 閃存芯片的實(shí)際基地址為該低地址引導(dǎo)系統(tǒng)的引導(dǎo)地址,該第二閃存芯片 的實(shí)際基地址為該第一閃存芯片的實(shí)際基地址加上該第一閃存芯片的實(shí)際 容量大小。
6、 如權(quán)利要求1至5中任意一項(xiàng)所述的存儲(chǔ)器自動(dòng)識(shí)別的方法,其特 征在于,該每個(gè)存儲(chǔ)器默認(rèn)的容量大小大于該每個(gè)存儲(chǔ)器的實(shí)際容量大小
全文摘要
本發(fā)明涉及一種數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法。該數(shù)字機(jī)頂盒中的存儲(chǔ)器自動(dòng)識(shí)別的方法包括以下步驟確定系統(tǒng)的尋址方式;將該多個(gè)存儲(chǔ)器的容量大小分別設(shè)置為默認(rèn)值,并分別以該默認(rèn)的存儲(chǔ)器容量大小計(jì)算出每個(gè)存儲(chǔ)器的默認(rèn)基地址;以該多個(gè)存儲(chǔ)器默認(rèn)的容量大小及默認(rèn)基地址為基礎(chǔ)進(jìn)行空間分配,讀取每個(gè)存儲(chǔ)器的ID,從而獲得每個(gè)存儲(chǔ)器的實(shí)際容量大小;根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小,分別計(jì)算出每個(gè)存儲(chǔ)器的實(shí)際基地址;根據(jù)每個(gè)存儲(chǔ)器的實(shí)際容量大小及其實(shí)際基地址重新進(jìn)行配置。
文檔編號(hào)G06F12/06GK101211316SQ200610157730
公開(kāi)日2008年7月2日 申請(qǐng)日期2006年12月26日 優(yōu)先權(quán)日2006年12月26日
發(fā)明者于熙波 申請(qǐng)人:深圳市同洲電子股份有限公司