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

一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法及裝置的制作方法

文檔序號:6464422閱讀:259來源:國知局
專利名稱:一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲設(shè)備,特別涉及一種嵌入式系統(tǒng)中內(nèi)存資源的使用方 法及裝置。
背景技術(shù)
現(xiàn)有技術(shù)在嵌入式系統(tǒng)的資源使用中,內(nèi)存資源通常都比較緊張,目前都 是采用動態(tài)分配內(nèi)存的方式,當(dāng)應(yīng)用程序需要使用內(nèi)存資源時(shí)進(jìn)行申請,當(dāng)使 用完畢后釋放內(nèi)存資源。動態(tài)分配內(nèi)存是指程序要求的基本內(nèi)存空間是在目標(biāo) 模塊連接裝入內(nèi)存時(shí)確定并分配的,但是在程序運(yùn)行過程中允許申請附加的內(nèi) 存空間或在內(nèi)存中移動,即分配工作可以在程序運(yùn)行前及程序運(yùn)行過程中逐步 完成。動態(tài)內(nèi)存分配比較靈活,給程序的實(shí)現(xiàn)帶來很大的方便,可以較好的避 免內(nèi)存的浪費(fèi)。如果嵌入式系統(tǒng)中的內(nèi)存只有一種并且使用過程中的內(nèi)存地址連續(xù)的話,使用標(biāo)準(zhǔn)C語言提供的Malloc和Free函數(shù)就可以實(shí)現(xiàn)。標(biāo)準(zhǔn)C語言提供的 Malloc是動態(tài)分配內(nèi)存的函數(shù),F(xiàn)ree是和Malloc配對使用的釋放Malloc分配 的內(nèi)存函數(shù), 一般的實(shí)時(shí)操作系統(tǒng)中的內(nèi)存管理函數(shù)都可以在某種程度上實(shí)現(xiàn) 這種內(nèi)存分配及釋放的功能。 一般來說,malloc函數(shù)是分配給定的字節(jié)數(shù),并 返回一個(gè)指向它們的指針。如果沒有足夠的可用內(nèi)存,那么它返回一個(gè)空指針; free函數(shù)是指獲得指向由malloc分配的內(nèi)存片段的指針,并將其釋放,以便 以后的程序或操作系統(tǒng)使用。實(shí)時(shí)操作系統(tǒng)是指能及時(shí)響應(yīng)外部事件的請求, 在規(guī)定的嚴(yán)格時(shí)間內(nèi)完成對該事件的處理的系統(tǒng)。對于實(shí)時(shí)系統(tǒng)來說最重要的 要求就是實(shí)時(shí)操作系統(tǒng)必須有滿足在一個(gè)事先定義好的時(shí)間限制中對外部或 內(nèi)部的事件進(jìn)行響應(yīng)和處理的能力。但現(xiàn)有技術(shù)的不足在于,嵌入式系統(tǒng)中的內(nèi)存常常并不僅僅只有一種,并且內(nèi)存地址也通常不連續(xù),例如在有的嵌入式系統(tǒng)中既有SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存儲器),又有SDRAM (Synchronous Dynamic Random Access Memory,同步動態(tài)隨機(jī)存儲器),此時(shí)會出現(xiàn)有的內(nèi) 存區(qū)域需要把Cache (高速緩存)打開,有的內(nèi)存區(qū)域需要把Cache關(guān)閉,并 且使用過程中的內(nèi)存地址也不連續(xù)。因此,當(dāng)存在多種不同特性的內(nèi)存時(shí),利 用類似標(biāo)準(zhǔn)C語言提供的Malloc和Free的函數(shù)就無法滿足對內(nèi)存資源的使用 需求。發(fā)明內(nèi)容本發(fā)明解決的技術(shù)問題是提供了 一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法 及裝置,用以當(dāng)存在多種多種特性的內(nèi)存時(shí),實(shí)現(xiàn)動態(tài)內(nèi)存管理。本發(fā)明提供了 一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法,包括如下步驟 對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池; 針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù);在使用內(nèi)存時(shí),根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù) 對內(nèi)存進(jìn)行使用。較佳地,所述對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池,具體為在操作系統(tǒng)初始化時(shí),對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。較佳地,所述分配/釋放內(nèi)存的函數(shù)是Malloc/Free函數(shù)。較佳地,所述特性包括物理介質(zhì)屬性和/或相同物理介質(zhì)下的軟件配置屬性。較佳地,所述物理介質(zhì)屬性是靜態(tài)隨機(jī)存儲器屬性和同步動態(tài)隨機(jī)存儲器 屬性。較佳地,所述軟件配置屬性是軟件配置對高速緩存的打開/關(guān)閉與軟件配置 寫緩沖區(qū)的打開/關(guān)閉。本發(fā)明還提供了 一種嵌入式系統(tǒng)中內(nèi)存資源的使用裝置,包括 池創(chuàng)建模塊,用于對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池; 函數(shù)封裝模塊,用于針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù); 接口模塊,用于在程序使用內(nèi)存時(shí),根據(jù)程序所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)給程序提供可使用的內(nèi)存。較佳地,所述池創(chuàng)建模塊進(jìn)一步用于在操作系統(tǒng)初始化時(shí),對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。較佳地,所述池創(chuàng)建模塊包括特性識別單元,用于根據(jù)包括物理介質(zhì)屬性和/或相同物理介質(zhì)下的軟件配 置屬性對內(nèi)存特性進(jìn)行識別;創(chuàng)建單元,用于根據(jù)識別出的內(nèi)存特性對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。較佳地,所述特性識別單元進(jìn)一步用于根據(jù)物理介質(zhì)屬性中的靜態(tài)隨機(jī)存 儲器屬性和同步動態(tài)隨機(jī)存儲器屬性,和/或軟件配置屬性中的軟件配置對高速 緩存的打開/關(guān)閉與軟件配置寫緩沖區(qū)的打開/關(guān)閉進(jìn)行識別。本發(fā)明有益效果如下本發(fā)明實(shí)施中對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池,根據(jù)不同內(nèi)存的特 性,抽象成不同的內(nèi)存池;并針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù);在 使用內(nèi)存時(shí),根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)對內(nèi)存 進(jìn)行使用;從而能夠利用實(shí)時(shí)操作系統(tǒng)提供的內(nèi)存管理函數(shù)實(shí)現(xiàn)了內(nèi)存的動態(tài) 分配管理。


圖1為本發(fā)明實(shí)施例中所述嵌入式系統(tǒng)中內(nèi)存資源使用方法的實(shí)施流程示 意圖;圖2為本發(fā)明實(shí)施例中所述嵌入式系統(tǒng)中內(nèi)存資源的使用裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式
進(jìn)行說明。圖1為嵌入式系統(tǒng)中內(nèi)存資源使用方法的實(shí)施流程示意圖,如圖所示,在內(nèi)存使用時(shí)可以包括如下步驟步驟IOI、對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池;步驟102、針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù);步驟103、在使用內(nèi)存時(shí),根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)對內(nèi)存進(jìn)行使用。下面對各步驟的具體實(shí)施進(jìn)行說明。步驟101中可以視為創(chuàng)建內(nèi)存分區(qū),在使用內(nèi)存之前,開發(fā)者可以首先調(diào) 用類似OSMemCreate ()函數(shù)等功能的函數(shù)來創(chuàng)建相應(yīng)的內(nèi)存分區(qū),在創(chuàng)建內(nèi) 存分區(qū)成功后,就可以在系統(tǒng)中存在一個(gè)以開發(fā)者指定內(nèi)存大小,指定內(nèi)存塊 數(shù)目的內(nèi)存池。在此過程中,開發(fā)者也就明確的知道系統(tǒng)的內(nèi)存分布,并可以 指明內(nèi)存池的基址。在創(chuàng)建內(nèi)存池時(shí),可以通過系統(tǒng)的內(nèi)存分配調(diào)用預(yù)先一次性申請適當(dāng)大小 的內(nèi)存作為一個(gè)內(nèi)存池,之后,對內(nèi)存的分配和釋放則可以通過這個(gè)內(nèi)存池來 完成。當(dāng)內(nèi)存池大小需要?jiǎng)討B(tài)擴(kuò)展時(shí),可以根據(jù)需要再調(diào)用系統(tǒng)的內(nèi)存分配函 數(shù),其他時(shí)間對內(nèi)存的一切操作都可以根據(jù)需要使用。對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池時(shí),可以是在操作系統(tǒng)初始化時(shí)對內(nèi) 存進(jìn)行創(chuàng)建,實(shí)施中,初始化可以是系統(tǒng)上電時(shí)軟件的初始化階段。內(nèi)存池的 管理在不同操作系統(tǒng)里面略有不同,不過都可以實(shí)現(xiàn)動態(tài)申請和釋放功能,本 發(fā)明實(shí)施例中主要是在初始化內(nèi)存池的時(shí)候,根據(jù)系統(tǒng)得內(nèi)存差異情況,初始 化多個(gè)內(nèi)存池。實(shí)施中,特性可以包括物理介質(zhì)屬性、和/或相同物理介質(zhì)下的軟件配置屬性。如物理介質(zhì)屬性可以是SRAM和SDRAM屬性的,物理介質(zhì)不同,如 SRAM與SDRAM的物理性質(zhì)不同,其也將會導(dǎo)致各種性質(zhì)上的不同,如訪 問的速度不同;而軟件配置屬性可以是軟件配置對Cache的打開/關(guān)閉與軟件配 置寫B(tài)uffer (緩沖區(qū))的打開/關(guān)閉。步驟102中,針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù),分配/釋放內(nèi) 存的函數(shù)一般可以是Malloc/Free函數(shù)。即,動態(tài)分配的是針對創(chuàng)建的不同的 內(nèi)存池,提供不同的Malloc和Free函數(shù),比如SRAM—Malloc和 SDRAM—Malloc。當(dāng)系統(tǒng)內(nèi)存分區(qū)創(chuàng)建好了后,系統(tǒng)就可以從相應(yīng)的內(nèi)存分區(qū) 中獲取內(nèi)存,應(yīng)用程序可以根據(jù)所需要內(nèi)存的大小,從開發(fā)者指定的內(nèi)存池中 申請內(nèi)存。因?yàn)閮?nèi)存是系統(tǒng)的緊缺資源,當(dāng)應(yīng)用不再需要使用所申請的內(nèi)存時(shí), 應(yīng)該及時(shí)釋》文該內(nèi)存。當(dāng)進(jìn)行動態(tài)內(nèi)存分配時(shí),可以利用Malloc/Free函數(shù)接口來實(shí)現(xiàn)。在嵌入 式系統(tǒng)中,可以在運(yùn)行的期間用malloc申請內(nèi)存,這部分內(nèi)存可以由程序員管 理,其生存期由開發(fā)者決定,并可以使用free來釋放該內(nèi)存。也就是說,實(shí)施 中通過本步驟封裝了 malloc/free函數(shù),從而可以進(jìn)行動態(tài)內(nèi)存管理,且為開發(fā) 者提供了一個(gè)統(tǒng)一的開發(fā)環(huán)境。當(dāng)在步驟102封裝了分配釋放函數(shù)后,當(dāng)應(yīng)用程序需要使用內(nèi)存時(shí),便可 以執(zhí)行步驟103,根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)對 內(nèi)存進(jìn)行使用。即,當(dāng)設(shè)置內(nèi)存池以后,當(dāng)程序調(diào)用時(shí),便可以根據(jù)需要調(diào)用 不同的內(nèi)存池的Malloc函數(shù)確定所需的內(nèi)存在那個(gè)內(nèi)存池;同樣,在程序調(diào) 用時(shí),可以根據(jù)需要調(diào)用不同的內(nèi)存池的Malloc函數(shù)來識別其需要的是那個(gè) 內(nèi)存。本發(fā)明還提供了 一種嵌入式系統(tǒng)中內(nèi)存資源的使用裝置,下面結(jié)合附圖進(jìn) 行說明。圖2為嵌入式系統(tǒng)中內(nèi)存資源的使用裝置結(jié)構(gòu)示意圖,如圖所示,裝置中可以包括池創(chuàng)建模塊201,用于對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池; 函數(shù)封裝模塊202,用于針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù); 接口模塊203,用于在程序使用內(nèi)存時(shí),根據(jù)程序所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)給程序提供可使用的內(nèi)存。其中,池創(chuàng)建模塊可以進(jìn)一步用于在操作系統(tǒng)初始化時(shí),對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。池創(chuàng)建沖莫塊201具體還可以包括特性識別單元2011,用于根據(jù)包括物理介質(zhì)屬性和/或相同物理介質(zhì)下的 軟件配置屬性對內(nèi)存特性進(jìn)行識別;創(chuàng)建單元2012,用于根據(jù)識別出的內(nèi)存特性對每一塊不同特性的內(nèi)存創(chuàng)建 內(nèi)存池。實(shí)施中,特性識別單元2011可以根據(jù)物理介質(zhì)屬性中的靜態(tài)隨機(jī)存儲器 屬性和同步動態(tài)隨沖幾存儲器屬性,和/或軟件配置屬性中的軟件配置對高速緩存 的打開/關(guān)閉與軟件配置寫緩沖區(qū)的打開/關(guān)閉進(jìn)行識別。功能。本發(fā)明實(shí)施中可以根據(jù)不同內(nèi)存的特性,抽象成不同的內(nèi)存池,利用實(shí) 時(shí)操作系統(tǒng)提供的內(nèi)存管理函數(shù)實(shí)現(xiàn)了內(nèi)存的動態(tài)分配管理。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì) 算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié) 合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包 含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、 CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn) 品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和 /或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入 式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算 機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一 個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè) 備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中 的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖 一個(gè)流程或多個(gè) 流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使 得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一 系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處 理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè) 流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員 一旦得知了基 本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要 求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
權(quán)利要求
1、一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法,其特征在于,包括如下步驟對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池;針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù);在使用內(nèi)存時(shí),根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)對內(nèi)存進(jìn)行使用。
2、 如權(quán)利要求1所述的方法,其特征在于,所述對每一塊不同特性的內(nèi) 存創(chuàng)建內(nèi)存池,具體為在操作系統(tǒng)初始化時(shí),對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。
3、 如權(quán)利要求l所述的方法,其特征在于,所述分配/釋放內(nèi)存的函數(shù)是 Malloc/Free函數(shù)。
4、 如權(quán)利要求1或2所述的方法,其特征在于,所述特性包括物理介質(zhì) 屬性,和/或,相同物理介質(zhì)下的軟件配置屬性。
5、 如權(quán)利要求4所述的方法,其特征在于,所述物理介質(zhì)屬性是靜態(tài)隨 機(jī)存儲器屬性和同步動態(tài)隨^L存儲器屬性。
6、 如權(quán)利要求4所述的方法,其特征在于,所述軟件配置屬性是軟件配 置對高速緩存的打開/關(guān)閉與軟件配置寫緩沖區(qū)的打開/關(guān)閉。
7、 一種嵌入式系統(tǒng)中內(nèi)存資源的使用裝置,其特征在于,包括 池創(chuàng)建模塊,用于對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池; 函數(shù)封裝模塊,用于針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù); 接口模塊,用于在程序使用內(nèi)存時(shí),根據(jù)程序所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)給程序提供可使用的內(nèi)存。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述池創(chuàng)建模塊進(jìn)一步用于 在操作系統(tǒng)初始化時(shí),對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。
9、 如權(quán)利要求7或8所述的裝置,其特征在于,所述池創(chuàng)建模塊包括 特性識別單元,用于根據(jù)包括物理介質(zhì)屬性和/或相同物理介質(zhì)下的軟件配置屬性對內(nèi)存特性進(jìn)行識別;創(chuàng)建單元,用于根據(jù)識別出的內(nèi)存特性對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池。
10、如權(quán)利要求9所述的裝置,其特征在于,所述特性識別單元進(jìn)一步用 于根據(jù)物理介質(zhì)屬性中的靜態(tài)隨機(jī)存儲器屬性和同步動態(tài)隨機(jī)存儲器屬性,和 /或,軟件配置屬性中的軟件配置對高速緩存的打開/關(guān)閉與軟件配置寫緩沖區(qū) 的打開/關(guān)閉進(jìn)行識別。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)中內(nèi)存資源的使用方法及裝置,包括對每一塊不同特性的內(nèi)存創(chuàng)建內(nèi)存池;針對每一塊內(nèi)存池封裝分配/釋放內(nèi)存的函數(shù);在使用內(nèi)存時(shí),根據(jù)所需使用的內(nèi)存特性通過相應(yīng)的分配/釋放內(nèi)存的函數(shù)對內(nèi)存進(jìn)行使用。使用本發(fā)明可以根據(jù)不同內(nèi)存的特性,抽象成不同的內(nèi)存池,利用實(shí)時(shí)操作系統(tǒng)提供的內(nèi)存管理函數(shù)實(shí)現(xiàn)了內(nèi)存的動態(tài)分配管理,實(shí)現(xiàn)了多種不同特性內(nèi)存同時(shí)動態(tài)分配的功能。
文檔編號G06F12/02GK101303666SQ200810115590
公開日2008年11月12日 申請日期2008年6月25日 優(yōu)先權(quán)日2008年6月25日
發(fā)明者李志剛 申請人:北京中星微電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
辽宁省| 理塘县| 南木林县| 吉安市| 威宁| 正蓝旗| 壶关县| 车险| 曲水县| 怀仁县| 香格里拉县| 乡城县| 大化| 吉林市| 台山市| 托克逊县| 江门市| 义马市| 西安市| 蓝田县| 阳江市| 乐安县| 五家渠市| 洛隆县| 宁强县| 习水县| 当阳市| 阜平县| 钟祥市| 镇原县| 林甸县| 股票| 洮南市| 嵊泗县| 罗江县| 武威市| 盐边县| 右玉县| 即墨市| 玛多县| 河西区|