嵌入式安卓系統(tǒng)的固件處理的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種嵌入式安卓系統(tǒng)的固件處理的方法及裝置。其中方法包括如下步驟:掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小;根據(jù)系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件;在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取系統(tǒng)內(nèi)存的大小,并設(shè)置安卓系統(tǒng)的配置。其根據(jù)系統(tǒng)的實際內(nèi)存分配相應(yīng)的預(yù)留內(nèi)存給系統(tǒng)硬件,使內(nèi)存大小不同,其他配置相同的同一系列產(chǎn)品可使用相同的固件。避免在內(nèi)存不同時,須使用單獨的相對應(yīng)的配置文件及與配置文件相對應(yīng)的固件。為產(chǎn)品的維護(hù)及固件升級帶來極大便利,節(jié)約版本維護(hù)及生產(chǎn)管理的成本。
【專利說明】嵌入式安卓系統(tǒng)的固件處理的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式【技術(shù)領(lǐng)域】,尤其涉及一種嵌入式安卓系統(tǒng)的固件處理的方法及裝置。
【背景技術(shù)】
[0002]目前,在嵌入式設(shè)備的生產(chǎn)過程中,通常存在以下問題:在同一款/系列產(chǎn)品,存在不同內(nèi)存容量硬件的情況。通常使用在不同內(nèi)存時,需要針對內(nèi)存容量的大小做出不同的配置,以使設(shè)備運行達(dá)到最佳性能。但是,在需要使用不同的配置時,通常會生成不同的固件文件。這種方法的缺點在于:首先,給工廠的生產(chǎn)管理帶來不便,由于不同的配置必須使用不同的固件,必須給相應(yīng)的產(chǎn)品燒寫對應(yīng)的固件,否則可能導(dǎo)致產(chǎn)品工作異常;其次,給產(chǎn)品的版本維護(hù)帶來挑戰(zhàn),在每次修復(fù)缺陷/升級版本后,都需要生成多個固件,最終導(dǎo)致固件的數(shù)目成指數(shù)增長。
[0003]綜上所述,不同內(nèi)存的同一系列的產(chǎn)品需對應(yīng)不同的固件是一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]基于此,有必要提供一種適用于多種內(nèi)存的嵌入式安卓系統(tǒng)的固件處理的方法及裝置。
[0005]為實現(xiàn)本發(fā)明目的提供的一種嵌入式安卓系統(tǒng)的固件處理的方法,包括以下步驟:
[0006]掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大??;
[0007]根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件;
[0008]在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配置。
[0009]作為一種嵌入式安卓系統(tǒng)的固件處理的方法的可實施方式,所述掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小,包括以下步驟:
[0010]在引導(dǎo)加載階段掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大??;
[0011]將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù);
[0012]通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
[0013]作為一種嵌入式安卓系統(tǒng)的固件處理的方法的可實施方式,所述獲取系統(tǒng)內(nèi)存的大小包括以下步驟:
[0014]獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值;
[0015]根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
[0016]作為一種嵌入式安卓系統(tǒng)的固件處理的方法的可實施方式,
[0017]獲取所述行參數(shù)值包括以下步驟:
[0018]讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元的第二數(shù)據(jù);
[0019]判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行行數(shù)據(jù)讀取的步驟;
[0020]獲取所述列參數(shù)值包括以下步驟:
[0021]讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù);
[0022]判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行列數(shù)據(jù)讀取的步驟;
[0023]獲取所述塊參數(shù)值包括以下步驟:
[0024]讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù);
[0025]判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù)設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行塊數(shù)據(jù)讀取的步驟。
[0026]作為一種嵌入式安卓系統(tǒng)的固件處理的方法的可實施方式,所述根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件,包括以下步驟:
[0027]判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果;
[0028]根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件;
[0029]根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
[0030]基于同一發(fā)明構(gòu)思的一種嵌入式安卓系統(tǒng)的固件處理的裝置,包括系統(tǒng)內(nèi)存獲取模塊,系統(tǒng)內(nèi)存預(yù)留模塊,以及系統(tǒng)配置模塊,其中:
[0031]所述系統(tǒng)內(nèi)存獲取模塊,用于掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大??;
[0032]所述系統(tǒng)內(nèi)存預(yù)留模塊,用于根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件;
[0033]所述系統(tǒng)配置模塊,用于在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配置。
[0034]作為一種嵌入式安卓系統(tǒng)的固件處理的裝置的可實施方式,所述系統(tǒng)內(nèi)存獲取模塊包括參數(shù)讀取子模塊,參數(shù)保存子模塊,以及參數(shù)傳遞子模塊,其中:
[0035]所述參數(shù)讀取子模塊,用于在引導(dǎo)加載階段掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大??;
[0036]所述參數(shù)保存子模塊,用于將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù);
[0037]所述參數(shù)傳遞子模塊,用于通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
[0038]作為一種嵌入式安卓系統(tǒng)的固件處理的裝置的可實施方式,所述系統(tǒng)內(nèi)存獲取模塊包括參數(shù)值獲取子模塊和內(nèi)存確定子模塊,其中:
[0039]所述參數(shù)值獲取子模塊,用于獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值;
[0040]所述內(nèi)存確定子模塊,用于根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
[0041]作為一種嵌入式安卓系統(tǒng)的固件處理的裝置的可實施方式,所述參數(shù)值獲取子模塊包括行參數(shù)確定單元,列參數(shù)確定單元,以及塊參數(shù)確定單元,其中:
[0042]所述行參數(shù)確定單元包括第一數(shù)據(jù)讀取子單元和第一判斷子單元;
[0043]所述第一數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元的第二數(shù)據(jù);
[0044]所述第一判斷子單元判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行所述第一數(shù)據(jù)讀取子單元;
[0045]所述列參數(shù)確定單元包括第二數(shù)據(jù)讀取子單元和第二判斷子單元;
[0046]所述第二數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù);
[0047]所述第二判斷子單元,用于判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行所述第二數(shù)據(jù)讀取子單元;
[0048]所述塊參數(shù)確定單元包括第三數(shù)據(jù)讀取子單元和第三判斷子單元;
[0049]所述第三數(shù)據(jù)讀取子單元,用于讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù);
[0050]所述第三判斷子單元,用于判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù)設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行所述第三數(shù)據(jù)讀取子單元。
[0051]作為一種嵌入式安卓系統(tǒng)的固件處理的裝置的可實施方式,所述系統(tǒng)內(nèi)存預(yù)留模塊包括內(nèi)存大小判斷子模塊,默認(rèn)配置子模塊,以及修改子模塊,其中:
[0052]所述內(nèi)存大小判斷子模塊,用于判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果;
[0053]所述默認(rèn)配置子模塊,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件;
[0054]所述修改子模塊,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
[0055]本發(fā)明的有益效果包括:
[0056]本發(fā)明提供的本發(fā)明的嵌入式安卓系統(tǒng)的固件處理的方法及裝置,系統(tǒng)上電后對硬件內(nèi)存進(jìn)行掃描,獲得系統(tǒng)的實際內(nèi)存大小,并根據(jù)系統(tǒng)的實際內(nèi)存分配相應(yīng)的預(yù)留內(nèi)存給系統(tǒng)硬件。從而使內(nèi)存大小不同,其他配置相同的同一系列產(chǎn)品可使用相同的固件。避免在內(nèi)存不同時,須使用單獨的相對應(yīng)的配置文件及與配置文件相對應(yīng)的固件。為產(chǎn)品的維護(hù)及固件升級帶來極大便利,節(jié)約版本維護(hù)及生產(chǎn)管理的成本。
【專利附圖】
【附圖說明】
[0057]圖1為本發(fā)明一種嵌入式安卓系統(tǒng)的固件處理的方法的一具體實施例的流程圖;[0058]圖2為本發(fā)明一種嵌入式安卓系統(tǒng)的固件處理的方法的另一具體實施例的流程圖;
[0059]圖3為本發(fā)明一種嵌入式安卓系統(tǒng)的固件處理的方法的參數(shù)確定的流程圖;
[0060]圖4為一動態(tài)隨機存儲器的內(nèi)存單元物理排布示意圖;
[0061]圖5為本發(fā)明一種嵌入式安卓系統(tǒng)的固件處理的裝置的一具體實施例的系統(tǒng)構(gòu)成示意圖;
[0062]圖6為本發(fā)明一種嵌入式安卓系統(tǒng)的固件處理的裝置的一具體實施例的參數(shù)值獲取子模塊的構(gòu)成示意圖。
【具體實施方式】
[0063]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明的嵌入式安卓系統(tǒng)的固件處理的方法及裝置的【具體實施方式】進(jìn)行說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0064]本發(fā)明實施例的嵌入式安卓系統(tǒng)的固件處理的方法,如圖1所示,包括以下步驟:
[0065]S100,掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小。
[0066]S200,根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件。
[0067]S300,在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配直。配直完成后,Android(安卓)系統(tǒng)完成啟動。
[0068]本發(fā)明實施例的嵌入式安卓系統(tǒng)的固件處理的方法,系統(tǒng)上電后對硬件內(nèi)存進(jìn)行掃描,獲得系統(tǒng)的實際內(nèi)存大小,并根據(jù)系統(tǒng)的實際內(nèi)存分配相應(yīng)的預(yù)留內(nèi)存給系統(tǒng)硬件。從而使配置相同的同一系列產(chǎn)品可使用相同的固件,避免在內(nèi)存不同時,須使用單獨的相對應(yīng)的配置文件及與配置文件相對應(yīng)的固件。為后續(xù)產(chǎn)品的維護(hù)及固件升級帶來極大便利,同時節(jié)約版本維護(hù)及生產(chǎn)管理的成本。
[0069]在其中一個嵌入式安卓系統(tǒng)的固件處理的方法的實施例中,如圖2所示,步驟S100,掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小,包括以下步驟:
[0070]S110,在boot階段(引導(dǎo)加載階段),掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大小。
[0071]S120,將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù)。
[0072]S130,通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
[0073]在其中一個嵌入式安卓系統(tǒng)的固件處理的方法的實施例中,所述獲取系統(tǒng)內(nèi)存的大小包括以下步驟:
[0074]S110’,獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值。
[0075]S120’,根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
[0076]在boot階段,掃描內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的實際大小。掃描DRAM(DynamicRandom Access Memory,動態(tài)隨機存取存儲器)大小關(guān)鍵在于獲取DRAM的bank (塊參數(shù)),raw(行參數(shù)),column(列參數(shù))三個參數(shù)。如圖4所示,為一 DRAM內(nèi)存單元的物理排布示意圖。具體的,如圖3所示,系統(tǒng)上電后,首先將bank, raw, column三個參數(shù)設(shè)置為預(yù)先設(shè)置的最小值bl,rl,Cl。所述最小值可根據(jù)系統(tǒng)內(nèi)存浮動范圍進(jìn)行預(yù)先設(shè)置。如對最小內(nèi)存為256MB的情況,可設(shè)置三個參數(shù)分別為4,8k,lk。[0077](I)獲取所述行參數(shù)值包括以下步驟:
[0078]S1111,讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元
的第二數(shù)據(jù)。
[0079]S1112,判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行前一 Sllll步驟。
[0080]如圖3所不,讀取同bank, column下index為O和index (索引)為rl的raw單元的數(shù)據(jù)。如果數(shù)據(jù)相同,則獲取到raw值為當(dāng)前rl值。否則rl++,返回前一步驟繼續(xù)執(zhí)行。直至確認(rèn)raw參數(shù)大小成功,rl為第一預(yù)設(shè)值。
[0081](2)獲取所述列參數(shù)值包括以下步驟:
[0082]S1121,讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù)。
[0083]S1122,判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行前一 S1121步驟。
[0084]如圖3所不,讀取同bank, raw下index (索引)為O和index為cl的column單元的數(shù)據(jù)。如果數(shù)據(jù)相同,則獲取到column值為當(dāng)前Cl值。否則cl++,返回前一步驟繼續(xù)執(zhí)行。直至確認(rèn)column參數(shù)大小成功,cl為第二預(yù)設(shè)值。
[0085](3)獲取所述塊參數(shù)值包括以下步驟:
[0086]S1131,讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù)。
[0087]S1132,判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù)設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行前一 S1131步驟。
[0088]如圖3所示,讀取同raw, column下bank為O和bank為bl的單元的數(shù)據(jù)。如果數(shù)據(jù)相同,則獲取到bank值為當(dāng)前bl值。否則bl++,返回前一步驟繼續(xù)執(zhí)行。獲取到bank,raw, column參數(shù)后,DRAM的實際大小即被確定,bl為第三預(yù)設(shè)值。
[0089]此處需要說明的是,前述三個參數(shù)的確定沒有直接的先后順序,可根據(jù)需要確定具體的判斷順序,也可同時進(jìn)行判斷。
[0090]在其中一個額嵌入式安卓系統(tǒng)的固件處理的方法的實施例中,如圖2所示,步驟S200,根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件,包括以下步驟:
[0091]S210,判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果。如可設(shè)置常用的IGB設(shè)置為默認(rèn)內(nèi)存。
[0092]S220,根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件。
[0093]S230,根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
[0094]本發(fā)明實施例的嵌入式安卓系統(tǒng)的固件處理的方法,設(shè)置系統(tǒng)默認(rèn)內(nèi)存,將常用的系統(tǒng)內(nèi)存設(shè)置為默認(rèn)內(nèi)存,在默認(rèn)內(nèi)存小使用默認(rèn)配置預(yù)留設(shè)備使用內(nèi)存,而無需在修改,提高系統(tǒng)啟動速度。而對非默認(rèn)內(nèi)存,可根據(jù)預(yù)設(shè)的不同的內(nèi)存對應(yīng)的預(yù)留設(shè)備內(nèi)存進(jìn)行修改,達(dá)到同一固件適用于多種內(nèi)存系統(tǒng),且保證系統(tǒng)實際使用性能的效果。
[0095]如圖2所示,Linux系統(tǒng)初始化完成后,安卓系統(tǒng)在啟動過程中,同樣,也可根據(jù)是否為默認(rèn)內(nèi)存進(jìn)行虛擬機的配置。保證設(shè)備整體性能的同時,提高啟動速度,及生產(chǎn)管理成本。
[0096]基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種嵌入式安卓系統(tǒng)的固件處理的裝置,由于此裝置解決問題的原理與前述一種嵌入式安卓系統(tǒng)的固件處理的方法相似,因此,該裝置的實施可以按照前述方法的具體步驟實現(xiàn),重復(fù)之處不再贅述。
[0097]在其中一個嵌入式安卓系統(tǒng)的固件處理的裝置的實施例中,如圖4所示,包括系統(tǒng)內(nèi)存獲取模塊100,系統(tǒng)內(nèi)存預(yù)留模塊200,以及系統(tǒng)配置模塊300其中:所述系統(tǒng)內(nèi)存獲取模塊100,用于掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大??;所述系統(tǒng)內(nèi)存預(yù)留模塊200,用于根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件;所述系統(tǒng)配置模塊300,用于在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配置。
[0098]本發(fā)明實施例的嵌入式安卓系統(tǒng)的固件處理的裝置,系統(tǒng)上電后對硬件內(nèi)存進(jìn)行掃描,獲得系統(tǒng)的實際內(nèi)存大小,并根據(jù)系統(tǒng)的實際內(nèi)存分配相應(yīng)的預(yù)留內(nèi)存給系統(tǒng)硬件。從而使其他配置相同的同一系列產(chǎn)品可使用相同的固件,避免在內(nèi)存不同時,須使用單獨的相對應(yīng)的配置文件及與配置文件相對應(yīng)的固件。為后續(xù)產(chǎn)品的維護(hù)及固件升級帶來極大便利,同時節(jié)約版本維護(hù)及生產(chǎn)管理的成本。
[0099]在其中一個嵌入式安卓系統(tǒng)的固件處理的裝置的實施例中,所述系統(tǒng)內(nèi)存獲取模塊100包括參數(shù)讀取子模塊110,參數(shù)保存子模塊120,以及參數(shù)傳遞子模塊130。其中:所述參數(shù)讀取子模塊110,用于在引導(dǎo)加載階段掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大小;所述參數(shù)保存子模塊120,用于將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù);所述參數(shù)傳遞子模塊130,用于通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
[0100]在其中一個嵌入式安卓系統(tǒng)的固件處理的裝置的實施例中,所述系統(tǒng)內(nèi)存獲取模塊100還包括參數(shù)值獲取子模塊140和內(nèi)存確定子模塊150。其中:所述參數(shù)值獲取子模塊140,用于獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值;所述內(nèi)存確定子模塊150,用于根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
[0101]在其中一個嵌入式安卓系統(tǒng)的固件處理的裝置的實施例中,如圖6所示,所述參數(shù)值獲取子模塊140包括行參數(shù)確定單元141,列參數(shù)確定單元142,以及塊參數(shù)確定單元143。
[0102]所述行參數(shù)確定單元141包括第一數(shù)據(jù)讀取子單元和第一判斷子單元。所述第一數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元的第二數(shù)據(jù);所述第一判斷子單元判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行所述第一數(shù)據(jù)讀取子單元;
[0103]所述列參數(shù)確定單元142包括第二數(shù)據(jù)讀取子單元和第二判斷子單元。所述第二數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù);所述第二判斷子單元,用于判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行所述第二數(shù)據(jù)讀取子單元;
[0104]所述塊參數(shù)確定單元143包括第三數(shù)據(jù)讀取子單元和第三判斷子單元。所述第三數(shù)據(jù)讀取子單元,用于讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù);所述第三判斷子單元,用于判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù)設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行所述第三數(shù)據(jù)讀取子單元。
[0105]在其中一個嵌入式安卓系統(tǒng)的固件處理的裝置的實施例中,所述系統(tǒng)內(nèi)存預(yù)留模塊200包括內(nèi)存大小判斷子模塊210,默認(rèn)配置子模塊220,以及修改子模塊230。其中:所述內(nèi)存大小判斷子模塊210,用于判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果;所述默認(rèn)配置子模塊220,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件;所述修改子模塊230,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
[0106]本發(fā)明實施例的嵌入式安卓系統(tǒng)的固件處理的裝置,設(shè)置系統(tǒng)默認(rèn)內(nèi)存,將常用的系統(tǒng)內(nèi)存設(shè)置為默認(rèn)內(nèi)存,在默認(rèn)內(nèi)存小使用默認(rèn)配置預(yù)留設(shè)備使用內(nèi)存,而無需在修改,提高系統(tǒng)啟動速度。而對非默認(rèn)內(nèi)存,可根據(jù)預(yù)設(shè)的不同的內(nèi)存對應(yīng)的預(yù)留設(shè)備內(nèi)存進(jìn)行修改,達(dá)到同一固件適用于多種內(nèi)存系統(tǒng),且保證系統(tǒng)實際使用性能的效果。
[0107]以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種嵌入式安卓系統(tǒng)的固件處理的方法,其特征在于,包括以下步驟: 掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小; 根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件; 在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配置。
2.根據(jù)權(quán)利要求1所述的嵌入式安卓系統(tǒng)的固件處理的方法,其特征在于,所述掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大小,包括以下步驟: 在引導(dǎo)加載階段掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大小; 將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù); 通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的嵌入式安卓系統(tǒng)的固件處理的方法,其特征在于,所述獲取系統(tǒng)內(nèi)存的大小包括以下步驟: 獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值; 根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
4.根據(jù)權(quán)利要求3所述的嵌入式安卓系統(tǒng)的固件處理的方法,其特征在于: 獲取所述行參數(shù)值包括以下步驟: 讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元的第二數(shù)據(jù); 判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行行數(shù)據(jù)讀取的步驟; 獲取所述列參數(shù)值包括以下步驟: 讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù); 判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行列數(shù)據(jù)讀取的步驟; 獲取所述塊參數(shù)值包括以下步驟: 讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù); 判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù)設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行塊數(shù)據(jù)讀取的步驟。
5.根據(jù)權(quán)利要求1至4任一項所述的嵌入式安卓系統(tǒng)的固件處理的方法,其特征在于,所述根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件,包括以下步驟: 判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果; 根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件; 根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
6.一種嵌入式安卓系統(tǒng)的固件處理的裝置,其特征在于,包括系統(tǒng)內(nèi)存獲取模塊,系統(tǒng)內(nèi)存預(yù)留模塊,以及系統(tǒng)配置模塊,其中:所述系統(tǒng)內(nèi)存獲取模塊,用于掃描系統(tǒng)內(nèi)存硬件,獲取系統(tǒng)內(nèi)存的大??; 所述系統(tǒng)內(nèi)存預(yù)留模塊,用于根據(jù)所述系統(tǒng)內(nèi)存的大小,保留預(yù)設(shè)的預(yù)留內(nèi)存給系統(tǒng)硬件; 所述系統(tǒng)配置模塊,用于在安卓系統(tǒng)初始化階段,通過系統(tǒng)調(diào)用獲取所述系統(tǒng)內(nèi)存的大小,并設(shè)置所述安卓系統(tǒng)的配置。
7.根據(jù)權(quán)利要求6所述的嵌入式安卓系統(tǒng)的固件處理的裝置,其特征在于,所述系統(tǒng)內(nèi)存獲取模塊包括參數(shù)讀取子模塊,參數(shù)保存子模塊,以及參數(shù)傳遞子模塊,其中: 所述參數(shù)讀取子模塊,用于在引導(dǎo)加載階段掃描系統(tǒng)內(nèi)存硬件,獲取實際的系統(tǒng)內(nèi)存的大??; 所述參數(shù)保存子模塊,用于將所述系統(tǒng)內(nèi)存的大小保存為啟動參數(shù); 所述參數(shù)傳遞子模塊,用于通過所述啟動參數(shù)將所述系統(tǒng)內(nèi)存的大小傳遞給Linux系統(tǒng)。
8.根據(jù)權(quán)利要求6所述的嵌入式安卓系統(tǒng)的固件處理的裝置,其特征在于,所述系統(tǒng)內(nèi)存獲取模塊包括參數(shù)值獲取子模塊和內(nèi)存確定子模塊,其中: 所述參數(shù)值獲取子模塊,用于獲取所述系統(tǒng)內(nèi)存的行參數(shù)值、列參數(shù)值和塊參數(shù)值;所述內(nèi)存確定子模塊,用于根據(jù)所述行參數(shù)值、列參數(shù)值和塊參數(shù)值確定系統(tǒng)內(nèi)存的大小。
9.根據(jù)權(quán)利要求8所述的嵌入式安卓系統(tǒng)的固件處理的裝置,其特征在于,所述參數(shù)值獲取子模塊包括行參數(shù)確定單元,列參數(shù)確定單元,以及塊參數(shù)確定單元,其中: 所述行參數(shù)確定單元包括第一數(shù)據(jù)讀取子單元和第一判斷子單元; 所述第一數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一列號下的第O行單元的第一數(shù)據(jù)和第一預(yù)設(shè)值行單元的第二數(shù)據(jù); 所述第一判斷子單元判斷所述第一數(shù)據(jù)與所述第二數(shù)據(jù)是否相同,若是,則確定所述行參數(shù)值為所述第一預(yù)設(shè)值;若否,則將所述第一預(yù)設(shè)值增大1,并返回執(zhí)行所述第一數(shù)據(jù)讀取子單元; 所述列參數(shù)確定單元包括第二數(shù)據(jù)讀取子單元和第二判斷子單元; 所述第二數(shù)據(jù)讀取子單元,用于讀取同一塊號,同一行號下的第O列單元的第三數(shù)據(jù)和第二預(yù)設(shè)值列單元的第四數(shù)據(jù); 所述第二判斷子單元,用于判斷所述第三數(shù)據(jù)與所述第四數(shù)據(jù)是否相同,若是,則確定所述列參數(shù)值為所述第二預(yù)設(shè)值;若否,則將所述第二預(yù)設(shè)值增大1,并返回執(zhí)行所述第二數(shù)據(jù)讀取子單元; 所述塊參數(shù)確定單元包括第三數(shù)據(jù)讀取子單元和第三判斷子單元; 所述第三數(shù)據(jù)讀取子單元,用于讀取同一行號,同一列號下的第O塊單元的第五數(shù)據(jù)和第三預(yù)設(shè)值塊單元的第六數(shù)據(jù); 所述第三判斷子單元,用于判斷所述第五數(shù)據(jù)與所述第六數(shù)據(jù)是否相同,若是,則確定所述塊參數(shù)值為所述第三預(yù) 設(shè)值;若否,則將所述第三預(yù)設(shè)值增大1,并返回執(zhí)行所述第三數(shù)據(jù)讀取子單元。
10.根據(jù)權(quán)利要求6至9任一項所述的嵌入式安卓系統(tǒng)的固件處理的裝置,其特征在于,所述系統(tǒng)內(nèi)存預(yù)留模塊包括內(nèi)存大小判斷子模塊,默認(rèn)配置子模塊,以及修改子模塊,其中: 所述內(nèi)存大小判斷子模塊,用于判斷所述系統(tǒng)內(nèi)存的大小是否為默認(rèn)大小,并得到判斷結(jié)果; 所述默認(rèn)配置子模塊,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小是默認(rèn)大小時,根據(jù)默認(rèn)配置保留默認(rèn)的預(yù)留內(nèi)存給系統(tǒng)硬件; 所述修改子模塊,用于根據(jù)所述判斷結(jié)果,當(dāng)所述系統(tǒng)內(nèi)存的大小不是默認(rèn)大小時,將所述系統(tǒng)硬件的預(yù)留 內(nèi)存修改為與所述系統(tǒng)內(nèi)存大大小相對應(yīng)的預(yù)設(shè)的預(yù)留內(nèi)存值。
【文檔編號】G06F9/445GK103984570SQ201410190898
【公開日】2014年8月13日 申請日期:2014年5月7日 優(yōu)先權(quán)日:2014年5月7日
【發(fā)明者】謝傳榮, 鄧細(xì)鋒, 葉紹鎮(zhèn) 申請人:珠海全志科技股份有限公司