固件載入系統(tǒng)以及其固件載入方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明關(guān)于一種固件載入系統(tǒng),特別是關(guān)于一種相容多個(gè)存儲(chǔ)器裝置的固件載入系統(tǒng)。
【背景技術(shù)】
[0002]快閃存儲(chǔ)器是為一種可以被電抹除并且重新寫入的非易失性存儲(chǔ)器,并且主要是應(yīng)用在存儲(chǔ)卡、USB隨身碟、eMMC以及固態(tài)硬盤(Solid-State Disk)中,借以作為一般的儲(chǔ)存與電腦裝置和數(shù)字產(chǎn)品間的數(shù)據(jù)的轉(zhuǎn)運(yùn)。
[0003]然而,不同廠商的行動(dòng)裝置其配載的快閃存儲(chǔ)器的預(yù)設(shè)值皆不同。相應(yīng)于不同的預(yù)設(shè)值,不同版本以及不同廠商具有不同的固件程序碼。因此,造成程序開發(fā)人員以及使用者在使用以及編譯上的不方便。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種固件載入系統(tǒng)。固件載入系統(tǒng)包括一第一存儲(chǔ)器裝置以及一運(yùn)算單元。第一存儲(chǔ)器裝置包括一第一固件程序碼,第一固件程序碼具有一既定程序碼以及多個(gè)參數(shù)表,并且參數(shù)表是用以設(shè)定一第二存儲(chǔ)器裝置中的多個(gè)寄存器。運(yùn)算單元用以執(zhí)行一固件寫入程序,其中在固件寫入程序中,運(yùn)算單元根據(jù)一選擇信號(hào),選取參數(shù)表中的一者,并將所選取的參數(shù)表與既定程序碼編譯為一第二固件程序,并將第二固件程序?qū)懭氲诙鎯?chǔ)器裝置的一快閃存儲(chǔ)器中。
[0005]參數(shù)表分別包括不同的--^片特定數(shù)據(jù)(CSD ;Card Specific Data)、--片辨識(shí)數(shù)據(jù)(CID ;Card ID)以及一延伸卡片特定數(shù)據(jù)(ExtCSD ;Extended Card Specific Data)??ㄆ囟〝?shù)據(jù)以及延伸卡片特定數(shù)據(jù)是用以代表存儲(chǔ)器裝置的版本、以及設(shè)定第二存儲(chǔ)器裝置的多個(gè)動(dòng)作以及多個(gè)命令??ㄆ孀R(shí)數(shù)據(jù)用以代表第二存儲(chǔ)器裝置的一廠商辨識(shí)碼。
[0006]本發(fā)明亦提供另一種固件載入系統(tǒng)。固件載入系統(tǒng)包括一第一存儲(chǔ)器裝置以及一運(yùn)算單元。第一存儲(chǔ)器裝置包括一第一固件程序碼,第一固件程序碼具有一既定程序碼以及多個(gè)參數(shù)表,其中每一參數(shù)表具有多個(gè)既定參數(shù),用以設(shè)定一第二存儲(chǔ)器裝置中的多個(gè)寄存器。運(yùn)算單元用以執(zhí)行一固件寫入程序,其中在固件寫入程序中,運(yùn)算單元根據(jù)多個(gè)選擇信號(hào),分別選取每一參數(shù)表中的一既定參數(shù),并將所選取的既定參數(shù)與既定程序碼編譯為一第二固件程序,并將第二固件程序?qū)懭氲诙鎯?chǔ)器裝置的一快閃存儲(chǔ)器中。
[0007]參數(shù)表中的一第一參數(shù)表中的既定參數(shù)為多個(gè)卡片特定數(shù)據(jù)(CSD;CardSpecific Data)、參數(shù)表中的一第二參數(shù)表中的既定參數(shù)為多個(gè)卡片辨識(shí)數(shù)據(jù)(CID ;Card ID)以及參數(shù)表中的一第三參數(shù)表中的既定參數(shù)為多個(gè)延伸卡片特定數(shù)據(jù)(ExtCSD;Extended Card Specific Data)。卡片特定數(shù)據(jù)以及延伸卡片特定數(shù)據(jù)是用以代表存儲(chǔ)器裝置的版本、以及設(shè)定第二存儲(chǔ)器裝置的多個(gè)動(dòng)作以及多個(gè)命令??ㄆ孀R(shí)數(shù)據(jù)用以代表第二存儲(chǔ)器裝置的一廠商辨識(shí)碼。
[0008]本發(fā)明提供一種固件載入方法,適用于一固件載入系統(tǒng)。固件載入方法包括:根據(jù)一致能信號(hào),開始一固件寫入程序;在固件寫入程序中,接收一選擇信號(hào);在固件寫入程序中,根據(jù)選擇信號(hào),選取一第一固件程序碼中的多個(gè)參數(shù)表中的一者,其中第一固件程序碼包括一既定程序碼以及多個(gè)參數(shù)表,并且參數(shù)表是用以設(shè)定一第二存儲(chǔ)器裝置中的多個(gè)寄存器;將所選取的參數(shù)表與既定程序碼編譯為一第二固件程序;以及將第二固件程序?qū)懭氲诙鎯?chǔ)器裝置的一快閃存儲(chǔ)器中。
[0009]本發(fā)明亦提供一種固件載入方法,適用于一固件載入系統(tǒng)。固件載入方法包括:根據(jù)一致能信號(hào),開始一固件寫入程序;在固件寫入程序中,接收多個(gè)選擇信號(hào);在固件寫入程序中,根據(jù)選擇信號(hào),分別選取一第一固件程序碼中每一多個(gè)參數(shù)表中的多個(gè)既定參數(shù)中的一者,其中第一固件程序碼包括一既定程序碼以及多個(gè)參數(shù)表,并且參數(shù)表是用以設(shè)定一第二存儲(chǔ)器裝置中的多個(gè)寄存器;將所選取的既定參數(shù)與既定程序碼編譯為一第二固件程序;以及將第二固件程序?qū)懭氲诙鎯?chǔ)器裝置的一快閃存儲(chǔ)器中。
【附圖說明】
[0010]圖1為本發(fā)明所提供的一固件載入系統(tǒng)的一種實(shí)施例的方塊圖。
[0011]圖2為本發(fā)明所提供的參數(shù)表的一種實(shí)施例的示意圖。
[0012]圖3為本發(fā)明所提供的參數(shù)表的另一種實(shí)施例的示意圖。
[0013]圖4為本發(fā)明所提供的一數(shù)據(jù)存取方法的一種實(shí)施例的流程圖。
[0014]圖5為本發(fā)明所提供的一數(shù)據(jù)存取方法的另一種實(shí)施例的流程圖。
[0015]【附圖標(biāo)記說明】
[0016]100固件載入系統(tǒng);
[0017]120 主機(jī);
[0018]122輸入介面;
[0019]124第一存儲(chǔ)器裝置;
[0020]126運(yùn)算單元;
[0021]140第二存儲(chǔ)器裝置;
[0022]160 控制器;
[0023]162運(yùn)算單元;
[0024]164永久存儲(chǔ)器;
[0025]166隨機(jī)存取存儲(chǔ)器;
[0026]168寄存器單元;
[0027]180快閃存儲(chǔ)器;
[0028]ENl致能信號(hào);
[0029]SEl?SEN選擇信號(hào);
[0030]TAO ?TAN 參數(shù)表;
[0031]TBO ?TBN 參數(shù)表;
[0032]CSDO?CSDN卡片特定數(shù)據(jù);
[0033]ExtCSDO?ExtCSDN延伸卡片特定數(shù)據(jù);
[0034]CIDO?CIDN卡片辨識(shí)數(shù)據(jù);
[0035]S400 ?S410 ?S500 ?S510 步驟。
【具體實(shí)施方式】
[0036]以下將詳細(xì)討論本發(fā)明各種實(shí)施例的裝置及使用方法。然而值得注意的是,本發(fā)明所提供的許多可行的發(fā)明概念可實(shí)施在各種特定范圍中。這些特定實(shí)施例僅用于舉例說明本發(fā)明的裝置及使用方法,但非用于限定本發(fā)明的范圍。
[0037]圖1為本發(fā)明所提供的一固件載入系統(tǒng)的一種實(shí)施例的方塊圖。固件載入系統(tǒng)100包括一主機(jī)120以及一第二存儲(chǔ)器裝置140。主機(jī)120包括一輸入介面122、一第一存儲(chǔ)器裝置124以及一運(yùn)算單元126。輸入介面122用以接收使用者所輸入的信號(hào),以產(chǎn)生相應(yīng)的致能信號(hào)ENl以及選擇信號(hào)SEl?SEN,并將致能信號(hào)ENl以及選擇信號(hào)SEl?SEN傳送至運(yùn)算單元126。第一存儲(chǔ)器裝置124用以儲(chǔ)存一第一固件程序碼。第一固件程序碼具有一既定程序碼以及多個(gè)參數(shù)表。參數(shù)表是用以設(shè)定第二存儲(chǔ)器裝置140中的寄存器單元168的多個(gè)寄存器。運(yùn)算單元126用以根據(jù)相應(yīng)于使用者的輸入的致能信號(hào)EN1,執(zhí)行一固件寫入程序。在固件寫入程序中,運(yùn)算單元126用以將既定程序碼以及參數(shù)表編譯為一第二固件程序,并將第二固件程序?qū)懭氲诙鎯?chǔ)器裝置140的一快閃存儲(chǔ)器180中。
[0038]第二存儲(chǔ)器裝置140包括一快閃存儲(chǔ)器180以及一控制器160,且可根據(jù)主機(jī)120所下達(dá)的命令操作??刂破?60包括一運(yùn)算單元162、一永久存儲(chǔ)器(如,只讀存儲(chǔ)器ROM) 164、一隨機(jī)存取存儲(chǔ)器(RAM) 166以及一寄存器單元168,其中寄存器單元168包括多個(gè)寄存器(未圖示)。永久存儲(chǔ)器164具有ROM程序碼。當(dāng)?shù)诙鎯?chǔ)器裝置140上電后,運(yùn)算單元162將永久存儲(chǔ)器164中的ROM程序碼載入隨機(jī)存取存儲(chǔ)器166中執(zhí)行,使控制器160基于該ROM程序碼擷取快閃存儲(chǔ)器180中由主機(jī)120所載入的第二固件程序碼,以設(shè)定寄存器單元168中的寄存器,使得運(yùn)算單元162可根據(jù)第二固件程序碼中的參數(shù),設(shè)定寄存器單元168中的多個(gè)寄存器。因此,控制器162可根據(jù)參數(shù)對(duì)快閃存儲(chǔ)器180進(jìn)行存取??扉W存儲(chǔ)器180包括多個(gè)區(qū)塊,并且每一區(qū)塊包括多個(gè)頁面。
[0039]圖2為本發(fā)明所提供的參數(shù)表的一種實(shí)施例的示意圖。在本實(shí)施例中,第一存儲(chǔ)器裝置124所儲(chǔ)存的第一固件程序碼包括多個(gè)參數(shù)表TAO?TAN。每一參數(shù)表TAO?TAN分別包括不同的一^^片特定數(shù)據(jù)(CSD;Card Specific Da