欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式系統(tǒng)內(nèi)存池配置方法及裝置的制作方法

文檔序號:6331959閱讀:212來源:國知局
專利名稱:嵌入式系統(tǒng)內(nèi)存池配置方法及裝置的制作方法
技術(shù)領域
本發(fā)明涉及內(nèi)存管理技術(shù),更具體地說,涉及一種嵌入式系統(tǒng)內(nèi)存池配置方法及裝置。
背景技術(shù)
在現(xiàn)有的嵌入式系統(tǒng)內(nèi)存管理技術(shù)中,為了滿足高效分配和回收,以及盡可能減 少內(nèi)存碎片的需要,往往采用內(nèi)存池集的內(nèi)存管理方法。此方法的基本思想是將內(nèi)存劃分 為若干個連續(xù)內(nèi)存區(qū)域,每個內(nèi)存區(qū)域又繼續(xù)劃分為若干個大小相同的內(nèi)存塊,每個內(nèi)存 區(qū)域就是一個內(nèi)存池,所有內(nèi)存區(qū)域就組成一個內(nèi)存池集。當有內(nèi)存分配申請時,遍歷整個 內(nèi)存池集,找到大小最匹配的內(nèi)存池,從中分配空閑內(nèi)存塊。基于上述內(nèi)存管理方法的嵌入式應用,開發(fā)人員需要先根據(jù)應用使用內(nèi)存情況, 預先估計各內(nèi)存池的內(nèi)存塊數(shù)量,然后在應用代碼中做好配置,并編譯到最終的嵌入式應 用程序中。在實際中,往往很難一次估計出應用程序使用的內(nèi)存數(shù)量,通常是在反復測試 后,才能確定出最終的配置。而且,一旦應用程序使用內(nèi)存情況有變化,也需要重新調(diào)整內(nèi) 存配置。由于嵌入式應用程序往往是燒錄到非易失存儲器中,頻繁調(diào)整配置就需要頻繁的 燒錄,這給開發(fā)帶來極大的不便。而且,常常出現(xiàn)發(fā)布版本的配置不合適,測試無法進行下 去,需要升級版本,從而影響了測試進度。因此,這種配置方式極不靈活。現(xiàn)有的嵌入式系統(tǒng)內(nèi)存管理相關專利技術(shù)中,往往專注于內(nèi)存池分配和回收算 法,而很少提及如何解決內(nèi)存池配置易用性問題。專利CN200610166525給出了一種動態(tài)內(nèi) 存池的實現(xiàn)方法,其內(nèi)存池可以動態(tài)的擴充和回收,不需開發(fā)人員配置,然而這種內(nèi)存管理 機制實現(xiàn)復雜,在嵌入式系統(tǒng)處理數(shù)據(jù)量大時,頻繁地擴充和回收必然導致內(nèi)存分配和釋 放的效率降低,對于實時性要求較高的嵌入式系統(tǒng)不是最優(yōu)選擇。

發(fā)明內(nèi)容
本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)存池配置方法及裝置,用以解決根據(jù)嵌入式應用程 序使用內(nèi)存的情況自動調(diào)整內(nèi)存池配置的問題。本發(fā)明技術(shù)方案如下一種嵌入式系統(tǒng)內(nèi)存池配置方法,包括步驟步驟A、在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文件,根據(jù)讀取到的 內(nèi)存池配置數(shù)據(jù)申請相應大小的配置緩存,將所述內(nèi)存池配置數(shù)據(jù)寫入所述配置緩存中, 并建立相應的內(nèi)存池;步驟B、在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況實時更新配置緩存 中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的使用峰值時,將配 置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;步驟C、在嵌入式應用程序關電或復位階段,比較每個內(nèi)存池在配置緩存中記錄的 使用峰值是否大于在內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù),如果是,則將內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù)更新為所述使用峰值。進一步地,所述內(nèi)存池配置文件中記錄了配置文件更新標志、每個內(nèi)存池的內(nèi)存 塊大小和內(nèi)存塊數(shù)。進一步地,所述配置緩存按內(nèi)存池個數(shù)等分為若干個配置項,每個配置項對應一 個內(nèi)存池的配置,其中包括內(nèi)存池的內(nèi)存塊大小,當前使用值及使用峰值。進一步地,所述配置緩存中內(nèi)存池的當前使用值的初始值為零,內(nèi)存池的使用峰 值的初始值為內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù)。進一步地,所述根據(jù)內(nèi)存分配情況實時更新配置緩存中相應內(nèi)存池的當前使用值 的具體過程為Bi、判斷嵌入式應用程序申請的內(nèi)存大小是否小于最大內(nèi)存池的內(nèi)存塊大小,若 是,執(zhí)行步驟B2,否則,使用其它預設策略進行內(nèi)存分配;B2、從所有內(nèi)存池中查找最匹配的內(nèi)存池,將其作為當前內(nèi)存池,判斷當前內(nèi)存池 中是否有空閑內(nèi)存塊,若有,直接執(zhí)行步驟B3,否則,使用其它預設策略分配新的內(nèi)存區(qū)域, 將其劃分為本內(nèi)存池的內(nèi)存塊,執(zhí)行步驟B3 ;B3、從當前內(nèi)存池分配內(nèi)存塊,將當前內(nèi)存池的當前使用值加1,若加1后的當前 使用值大于當前內(nèi)存池的使用峰值,則將配置緩存中該內(nèi)存池的使用峰值變換為加1后的 當前使用值。進一步地,所述步驟C具體包括Cl、判斷是否存在內(nèi)存池配置文件,若是,執(zhí)行步驟C2,否則,流程結(jié)束;C2、讀取內(nèi)存池配置文件中配置文件更新標志,判斷是否需更新配置文件,若是, 執(zhí)行步驟C3,否則,關閉內(nèi)存池配置文件;C3、依次讀取內(nèi)存池配置文件中各內(nèi)存池的內(nèi)存塊數(shù),將內(nèi)存池配置文件中小于 配置緩存中相應項使用峰值的內(nèi)存池的內(nèi)存塊數(shù)更新為所述使用峰值后,關閉內(nèi)存池配置 文件。一種嵌入式系統(tǒng)內(nèi)存池配置裝置,包括配置緩存建立模塊,用于在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文 件,根據(jù)讀取到的內(nèi)存池配置數(shù)據(jù)申請適當大小的配置緩存,將所述內(nèi)存池配置數(shù)據(jù)寫入 所述配置緩存中,并建立相應的內(nèi)存池;配置緩存更新模塊,用于在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況 實時更新配置緩存中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的 使用峰值時,將配置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;配置文件更新模塊,用于在嵌入式應用程序關電或復位階段,比較每個內(nèi)存池在 配置緩存中記錄的使用峰值是否大于在內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù),如果是,則將 內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù)更新為所述使用峰值。進一步地,所述內(nèi)存池配置文件中記錄了配置文件更新標志、每個內(nèi)存池的內(nèi)存 塊大小和內(nèi)存塊數(shù)。進一步地,所述配置緩存按內(nèi)存池個數(shù)等分為若干個配置項,每個配置項對應一 個內(nèi)存池的配置,其中包括內(nèi)存池的內(nèi)存塊大小,當前使用值及使用峰值。進一步地,所述配置緩存中內(nèi)存池的當前使用值的初始值為零,內(nèi)存池的使用峰值的初始值為內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù)。本發(fā)明有益效果如下本發(fā)明可以在不升級嵌入式應用程序的情況下,根據(jù)程序使用內(nèi)存的情況自動調(diào) 整內(nèi)存配置文件,提高了嵌入式系統(tǒng)內(nèi)存管理模塊的易用性,降低了維護難度,而且實現(xiàn)簡 單,不影響內(nèi)存的高效分配和回收,適合于實時性要求較高的嵌入式系統(tǒng)。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是 本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還 可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例中嵌入式系統(tǒng)內(nèi)存池配置方法的實現(xiàn)原理流程圖;圖3為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中建立配置緩存的流程圖;圖4為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中分配內(nèi)存塊時,更新配置 緩存的流程圖;圖5為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中釋放內(nèi)存塊時,更新配置 緩存的流程圖;圖6為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中更新內(nèi)存池配置文件的 流程圖;圖7為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置裝置的結(jié)構(gòu)框圖。
具體實施例方式為克服了現(xiàn)有技術(shù)中存在的嵌入式系統(tǒng)內(nèi)存池配置不靈活的問題,本發(fā)明提供一 種嵌入式系統(tǒng)內(nèi)存池配置方法及裝置,本發(fā)明可以在不升級嵌入式應用程序的情況下,根 據(jù)嵌入式應用程序使用內(nèi)存的情況自動調(diào)整內(nèi)存池配置,從而提高了嵌入式系統(tǒng)內(nèi)存管理 的易用性,降低了嵌入式應用程序的維護難度。下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。請參閱圖1,該圖為本發(fā)明實施例中嵌入式系統(tǒng)的結(jié)構(gòu)示意圖,主要包含以下部 分內(nèi)存池配置文件用于記錄內(nèi)存池配置的數(shù)據(jù),其中記錄了配置文件更新標志、各 內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù);非易失存儲器用于儲存內(nèi)存池配置文件的物理介質(zhì);嵌入式應用程序運行在嵌入式CPU上的軟件程序,包含嵌入式操作系統(tǒng)內(nèi)核、內(nèi) 存管理模塊、文件系統(tǒng)和非易失存儲器驅(qū)動等功能模塊;其中,所述內(nèi)存管理模塊可以實現(xiàn)內(nèi)存分配和釋放,同時,記錄內(nèi)存池的當前使用值和峰值。所述文件系統(tǒng)和非易失存儲器驅(qū)動則用于對存儲在非易失存儲器上的內(nèi)存池配 置文件進行讀寫操作。本發(fā)明實施例提供了一種嵌入式系統(tǒng)內(nèi)存池配置方法,請參閱圖2,該圖為本發(fā)明 實施例中嵌入式系統(tǒng)內(nèi)存池配置方法的實現(xiàn)原理流程圖,其主要包括如下步驟S20,在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文件,獲取內(nèi)存池的個 數(shù)、每個內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù);S21,根據(jù)獲取到的內(nèi)存池配置數(shù)據(jù)從嵌入式操作系統(tǒng)申請相應大小的配置緩存, 并將獲取到的內(nèi)存池配置數(shù)據(jù)寫入配置緩存中;S22,根據(jù)配置緩存中各內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù),建立相應的內(nèi)存池;S23,在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況實時更新配置緩存中 相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的使用峰值時,將配置 緩存中該內(nèi)存池的使用峰值更新為其當前使用值;S24,在嵌入式應用程序關電或復位階段,若判定需更新內(nèi)存池配置文件,則比較 每個內(nèi)存池在配置緩存中記錄的使用峰值是否大于在內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù), 如果是,則將內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù)更新為所述使用峰值。請參閱圖3,該圖為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中建立配置緩 存的流程圖,其主要包括如下步驟S101,打開內(nèi)存池配置文件,如果成功,則進入S102,否則,進入S103 ;S102,讀取內(nèi)存池配置文件,獲取內(nèi)存池的個數(shù)、每個內(nèi)存池的內(nèi)存塊大小和內(nèi)存 塊數(shù),根據(jù)獲取到的內(nèi)存池配置數(shù)據(jù)計算出配置緩存的大小;S103,使用嵌入式應用程序中的默認配置作為實際的內(nèi)存池配置,進入S107 ;S104,從嵌入式操作系統(tǒng)中申請配置緩存,配置緩存按內(nèi)存池個數(shù)等分為若干個 配置項,每個配置項對應一個內(nèi)存池的配置,其中包括內(nèi)存池的內(nèi)存塊大小、當前使用值及 使用峰值,配置緩存中內(nèi)存池的當前使用值的初始值為零,內(nèi)存池的使用峰值的初始值為 內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù);S105,讀取內(nèi)存池配置文件中各個內(nèi)存池的內(nèi)存塊大小及內(nèi)存塊數(shù),將其寫入配 置緩存中對應的配置項;S106,關閉配置文件,將配置緩存作為實際的內(nèi)存池配置;S107,根據(jù)實際的內(nèi)存池配置中,各個內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù),在連續(xù)的 內(nèi)存區(qū)域,建立相應數(shù)量的內(nèi)存池。請參閱圖4,該圖為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中分配內(nèi)存塊 時,更新配置緩存的流程圖,其主要包括如下步驟S201,判斷嵌入式應用程序申請的內(nèi)存大小是否小于最大內(nèi)存池的內(nèi)存塊大小, 如果是,則進入S202,否則,進入S203 ;S202,遍歷所有內(nèi)存池,從中查找最匹配的內(nèi)存池,將其作為當前內(nèi)存池;S203,使用其它預設策略進行內(nèi)存分配,例如,使用malloc直接從嵌入式操作系 統(tǒng)申請內(nèi)存;S204,判斷當前內(nèi)存池中是否有空閑的內(nèi)存塊,如果有,則進入S206,否則,進入 S205 ;
S205,向當前內(nèi)存池中注水,即從嵌入式操作系統(tǒng)直接申請新內(nèi)存區(qū)域,將其劃分 為本內(nèi)存池的內(nèi)存塊;S206,從當前內(nèi)存池分配內(nèi)存塊,且將配置緩存中該內(nèi)存池的當前使用值加1 ;S207,判斷當前內(nèi)存池的當前使用值是否大于使用峰值,如果是,則進入S208,否 則,結(jié)束分配;S208,將配置緩存中該內(nèi)存池的使用峰值設置為其當前使用值,結(jié)束分配。請參閱圖5,該圖為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中釋放內(nèi)存塊 時,更新配置緩存的流程圖,其主要包括如下步驟S301,判斷被釋放的內(nèi)存塊是否屬于配置緩存中的內(nèi)存池,如果是,則進入S302, 否則,進入S303 ;S302,釋放內(nèi)存塊,將配置緩存中相應的內(nèi)存池的當前使用值減1,流程結(jié)束。S303,使用其它策略釋放,此釋放流程對應于S203分配的流程,例如,使用free釋 放,流程結(jié)束。請參閱圖6,該圖為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置方法中更新內(nèi)存池 配置文件的流程圖,其主要包括如下步驟S401,判斷是否存在內(nèi)存池配置文件,如果是,則進入S402,否則,此流程結(jié)束;S402,讀取內(nèi)存池配置文件中的配置文件更新標志,判斷是否需要更新內(nèi)存池配 置文件,如果是,則進入S403,否則,進入S407 ;S403,判斷內(nèi)存池遍歷是否結(jié)束,如果是,則進入S407,否則,進入S404 ;S404,將下一個內(nèi)存池作為當前內(nèi)存池,讀取內(nèi)存池配置文件中該內(nèi)存池的內(nèi)存 塊數(shù);S405,判斷內(nèi)存池配置文件中當前內(nèi)存池的內(nèi)存塊數(shù)是否小于配置緩存相應內(nèi)存 池項的使用峰值,如果是,則進入S406,否則,進入S403 ;S406,將內(nèi)存池配置文件中當前內(nèi)存池的內(nèi)存塊數(shù)更新為配置緩存中該內(nèi)存池的 使用峰值,進入S403 ;S407,關閉內(nèi)存池配置文件。相應地,本發(fā)明實施例還提供了一種嵌入式系統(tǒng)內(nèi)存池配置裝置,請參閱圖7,該 圖為本發(fā)明實施例所述嵌入式系統(tǒng)內(nèi)存池配置裝置的結(jié)構(gòu)框圖,其主要包括配置緩存申請模塊,用于在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文 件,根據(jù)讀取到的內(nèi)存池配置數(shù)據(jù)申請適當大小的配置緩存,將所述內(nèi)存池配置數(shù)據(jù)寫入 所述配置緩存中,并建立相應的內(nèi)存池;配置緩存更新模塊,用于在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況 實時更新配置緩存中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的 使用峰值時,將配置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;配置文件更新模塊,用于在嵌入式應用程序關電或復位階段,判斷是否需更新內(nèi) 存池配置文件,若是,則比較每個內(nèi)存池在配置緩存中記錄的使用峰值是否大于在內(nèi)存池 配置文件中記錄的內(nèi)存塊數(shù),如果是,則將內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù)更新為所述 使用峰值。其中,內(nèi)存池配置文件中記錄了配置文件更新標志、每個內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù)。配置緩存按內(nèi)存池個數(shù)等分為若干個配置項,每個配置項對應一個內(nèi)存池的配 置,其中包括內(nèi)存池的內(nèi)存塊大小,當前使用值及使用峰值;配置緩存中內(nèi)存池的當前使 用值的初始值為零,內(nèi)存池的使用峰值的初始值為內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù)。采用本發(fā)明實施例所述技術(shù)方案后,在嵌入式應用程序的測試階段,開發(fā)人員即 可根據(jù)嵌入式應用程序可能需要的內(nèi)存池和內(nèi)存塊數(shù),創(chuàng)建內(nèi)存池配置文件,同時,打開配 置文件更新標志,然后運行完所有軟件測試用例,便可以獲取到嵌入式應用程序?qū)嶋H所需 的最佳內(nèi)存配置。此時,就可以關閉配置文件更新標志,在實際產(chǎn)品版本中使用最佳內(nèi)存配置。顯然,本領域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種嵌入式系統(tǒng)內(nèi)存池配置方法,其特征在于,包括步驟步驟A、在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文件,根據(jù)讀取到的內(nèi)存池配置數(shù)據(jù)申請相應大小的配置緩存,將所述內(nèi)存池配置數(shù)據(jù)寫入所述配置緩存中,并建立相應的內(nèi)存池;步驟B、在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況實時更新配置緩存中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的使用峰值時,將配置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;步驟C、在嵌入式應用程序關電或復位階段,比較每個內(nèi)存池在配置緩存中記錄的使用峰值是否大于在內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù),如果是,則將內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù)更新為所述使用峰值。
2.如權(quán)利要求1所述的方法,其特征在于,所述內(nèi)存池配置文件中記錄了配置文件更 新標志、每個內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述配置緩存按內(nèi)存池個數(shù)等分為若干個 配置項,每個配置項對應一個內(nèi)存池的配置,其中包括內(nèi)存池的內(nèi)存塊大小,當前使用值及 使用峰值。
4.如權(quán)利要求3所述的方法,其特征在于,所述配置緩存中內(nèi)存池的當前使用值的初 始值為零,內(nèi)存池的使用峰值的初始值為內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù)。
5.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)內(nèi)存分配情況實時更新配置緩存 中相應內(nèi)存池的當前使用值的具體過程為Bi、判斷嵌入式應用程序申請的內(nèi)存大小是否小于最大內(nèi)存池的內(nèi)存塊大小,若是,執(zhí) 行步驟B2,否則,使用其它預設策略進行內(nèi)存分配;B2、從所有內(nèi)存池中查找最匹配的內(nèi)存池,將其作為當前內(nèi)存池,判斷當前內(nèi)存池中是 否有空閑內(nèi)存塊,若有,直接執(zhí)行步驟B3,否則,使用其它預設策略分配新的內(nèi)存區(qū)域,將其 劃分為本內(nèi)存池的內(nèi)存塊,執(zhí)行步驟B3 ;B3、從當前內(nèi)存池分配內(nèi)存塊,將當前內(nèi)存池的當前使用值加1,若加1后的當前使用 值大于當前內(nèi)存池的使用峰值,則將配置緩存中該內(nèi)存池的使用峰值變換為加1后的當前 使用值。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟C具體包括Cl、判斷是否存在內(nèi)存池配置文件,若是,執(zhí)行步驟C2,否則,流程結(jié)束;C2、讀取內(nèi)存池配置文件中配置文件更新標志,判斷是否需更新配置文件,若是,執(zhí)行 步驟C3,否則,關閉內(nèi)存池配置文件;C3、依次讀取內(nèi)存池配置文件中各內(nèi)存池的內(nèi)存塊數(shù),將內(nèi)存池配置文件中小于配置 緩存中相應項使用峰值的內(nèi)存池的內(nèi)存塊數(shù)更新為所述使用峰值后,關閉內(nèi)存池配置文 件。
7.一種嵌入式系統(tǒng)內(nèi)存池配置裝置,其特征在于,包括配置緩存建立模塊,用于在嵌入式應用程序上電初始化階段,讀取內(nèi)存池配置文件,根 據(jù)讀取到的內(nèi)存池配置數(shù)據(jù)申請適當大小的配置緩存,將所述內(nèi)存池配置數(shù)據(jù)寫入所述配 置緩存中,并建立相應的內(nèi)存池;配置緩存更新模塊,用于在嵌入式應用程序運行階段,根據(jù)內(nèi)存分配/釋放情況實時更新配置緩存中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的使用 峰值時,將配置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;配置文件更新模塊,用于在嵌入式應用程序關電或復位階段,比較每個內(nèi)存池在配置 緩存中記錄的使用峰值是否大于在內(nèi)存池配置文件中記錄的內(nèi)存塊數(shù),如果是,則將內(nèi)存 池配置文件中記錄的內(nèi)存塊數(shù)更新為所述使用峰值。
8.如權(quán)利要求7所述的裝置,其特征在于,所述內(nèi)存池配置文件中記錄了配置文件更 新標志、每個內(nèi)存池的內(nèi)存塊大小和內(nèi)存塊數(shù)。
9.如權(quán)利要求7所述的裝置,其特征在于,所述配置緩存按內(nèi)存池個數(shù)等分為若干個 配置項,每個配置項對應一個內(nèi)存池的配置,其中包括內(nèi)存池的內(nèi)存塊大小,當前使用值及 使用峰值。
10.如權(quán)利要求9所述的裝置,其特征在于,所述配置緩存中內(nèi)存池的當前使用值的初 始值為零,內(nèi)存池的使用峰值的初始值為內(nèi)存池配置文件中相應內(nèi)存池的內(nèi)存塊數(shù)。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)內(nèi)存池配置方法及裝置,所述方法包括在上電初始化階段,讀取內(nèi)存池配置文件,將內(nèi)存池配置數(shù)據(jù)寫入申請的配置緩存中,并建立相應的內(nèi)存池;在運行階段,根據(jù)內(nèi)存分配/釋放情況實時更新配置緩存中相應內(nèi)存池的當前使用值,并在內(nèi)存池的當前使用值大于該內(nèi)存池的使用峰值時,將配置緩存中該內(nèi)存池的使用峰值更新為其當前使用值;在關電或復位階段,將內(nèi)存池配置文件中小于配置緩存中相應項使用峰值的內(nèi)存池的內(nèi)存塊數(shù)更新為所述使用峰值。所述裝置包括配置緩存建立模塊、配置緩存更新模塊和配置文件更新模塊。本發(fā)明可以在不升級嵌入式應用程序的情況下,根據(jù)程序使用內(nèi)存的情況自動調(diào)整內(nèi)存配置文件。
文檔編號G06F12/02GK101937398SQ20101028059
公開日2011年1月5日 申請日期2010年9月14日 優(yōu)先權(quán)日2010年9月14日
發(fā)明者賴穎軍, 黃海倫 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台东县| 潮州市| 扎鲁特旗| 修文县| 车险| 滁州市| 潍坊市| 长岭县| 溆浦县| 重庆市| 宾川县| 金阳县| 衡南县| 岢岚县| 平顶山市| 朝阳县| 六盘水市| 兰西县| 东莞市| 澳门| 梧州市| 靖州| 会泽县| 宽甸| 顺平县| 长岭县| 广汉市| 长宁县| 毕节市| 宿迁市| 焉耆| 锦州市| 兴宁市| 枞阳县| 巫山县| 琼海市| 法库县| 沙田区| 芒康县| 蕉岭县| 疏附县|