專利名稱::嵌入式軟件程序的運行方法、裝置及其系統(tǒng)的制作方法
技術領域:
:本發(fā)明涉及計算機領域,尤其涉及一種嵌入式軟件程序的運行方法、裝置及其系統(tǒng)。
背景技術:
:在進行嵌入式軟件程序的開發(fā)時,除了涉及到程序本身的數據外,還會涉及到大量在程序運行時需要加載的數據,由于一般的嵌入式軟件程序不提供動態(tài)加載數據的運行模式,所以在程序的運行過程中,就不能按照動態(tài)加載數據的方式來運行加載的數據,而是只能按照把程序運行時需要加載的數據直接寫入到程序中的方式,以實現(xiàn)對數據的加載。由于運行嵌入式軟件程序的系統(tǒng)自身的存儲空間較小,從而采用上述將程序運行時需要使用的加載數據直接寫入到程序中的方式,編寫出的程序將會占用運行嵌入式軟件程序的系統(tǒng)較大比例的存儲空間,因此會導致運行嵌入式軟件程序的系統(tǒng)自身的存儲資源比較緊張。
發(fā)明內容本發(fā)明實施例提供一種嵌入式軟件程序的運行方法,用以解決現(xiàn)有技術中將程序運行時需要加載的數據直接寫入到程序中,從而導致程序占用運行程序的系統(tǒng)的存儲空間較大的問題。對應的,本發(fā)明實施例還提供一種嵌入式軟件程序的運行裝置及其系統(tǒng)。為此,本發(fā)明實施例采用以下技術方案一種嵌入式軟件程序的運行方法,包括在嵌入式軟件程序運行過程中,當需加載數據時,根據所述數據的數據標識,在存儲有需加栽的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;將獲取的所述數據加載到所述程序中。一種嵌入式軟件程序的運行裝置,包括獲取單元,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;加載單元,用于將獲取單元獲取的所述數據加載到所述程序中。一種嵌入式軟件程序的運行系統(tǒng),包括嵌入式軟件程序的運行裝置以及存儲有所述程序需加載的數據的存儲空間,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間,其中所述裝置包括獲取單元,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在所述存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據;加載單元,用于將獲取單元獲取的所述數據加載到所述程序中。本發(fā)明實施例提供的嵌入式軟件程序的運行方案,通過程序在運行過程中需加載數據時,根據需加載的數據對應的數據標識,在和存儲有程序的存儲空間物理上相互獨立的存儲空間中獲取與數據標識對應的需加載的數據,并將獲取的所述數據加載到所述程序中,從而避免了將程序中需加載的數據寫入到程序中,而是在程序需要運行該需加載的數據時,才從對應的存儲空間中獲取并加載所述數據,從而使得程序本身占用的存儲空間變得較小。圖1為本發(fā)明實施例提供的一種嵌入式軟件程序的運行方法的具體流程示意圖2為本發(fā)明實施例中根據數據標識在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據的具體流程示意圖3為本發(fā)明實施例中根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據的具體流程示意圖4為本發(fā)明實施例提供的一種嵌入式軟件程序的運行裝置具體結構示意圖5為本發(fā)明實施例提供的一種嵌入式軟件程序的運行系統(tǒng)的具體結構示意圖。具體實施例方式本發(fā)明實施例提供一種嵌入式軟件程序的運行方法,當需加載數據時,根據需加載的數據的數據標識,從與存儲所述程序的存儲空間物理上獨立的存儲空間中獲取與該數據標識對應的數據,并將獲取的數據加載到所述程序中,從而避免了現(xiàn)有技術中需加載的數據是直接寫入到嵌入式軟件程序中,從而導致程序占用運行程序的系統(tǒng)的存儲空間較大的問題。下面結合各個附圖對本發(fā)明實施例技術方案的主要實現(xiàn)原理、具體實施方式及其對應能夠達到的有益效果進行詳細的闡述。如圖l所示,為本發(fā)明實施例提供的一種嵌入式軟件程序的運行方法的具體流程示意圖,包括步驟ll,在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,其中存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;步驟12,將獲取的所述數據加載到所述程序中。在步驟11中,以用于開發(fā)便攜式多媒體播放器(PMP,PortableMultimediaPlayer)項目的嵌入式軟件程序為例,其中存儲該嵌入式軟件程序的存儲空間與存儲該程序所需加載的數據的存儲空間在物理上是相互獨立的。其中,嵌入式軟件程序是存儲在嵌入式系統(tǒng)內部的存儲空間中,而存儲所述需加載的數據的存儲空間則可以為嵌入式系統(tǒng)外部的非易失閃存存儲器(NANDFlash)。當需加載的數據要存儲到NANDFlash中時,首先判斷NANDFlash中各個存儲塊是否都能使用,如果判斷發(fā)現(xiàn)有的存儲塊為不能使用的壞存儲塊,則后續(xù)不再將需加載的數據存儲到被判斷為不能使用的存儲塊中。在判斷結果確定出所有能使用的好的存儲塊后,考慮到如果長期讀寫NANDFlash中的同一塊存儲塊會減少NANDFlash的使用壽命的問題,因此,可以進一步確定各個好的存儲塊的使用次數,并根據確定的次數,優(yōu)先選擇使用次數較少的存儲塊對需加載的數據進行存儲。在上述步驟11中根據該數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據的具體流程示意圖如圖2所示,包括步驟21,根據所述數據標識,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述凝:據標識對應的存儲地址;步驟22,根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據。在上述的步驟22中,數據標識與需加載的數據的存儲地址的對應關系可由下表表示,該表中除了存儲數據標識與需加載的數據的存儲地址外,還可以存儲需加載的數據所占用的存儲空間的大小等信息表1:<table>tableseeoriginaldocumentpage8</column></row><table>以用于開發(fā)便攜式多媒體播放器PMP項目的嵌入式軟件程序為例,該表在所述程序中占用的空間非常小,一般在lkB以內,因此,在程序中增加如表1這樣的用于指示所述對應關系的存儲結構,對整個程序占用存儲空間的大小基本上不會造成什么影響。需要說明的是,如果需加載的數據的數據標識被設置為與該數據的存儲空間直接對應,也可以直接根據該數據標識確定該數據的存儲空間,而不需要從上述的對應關系中查找存儲地址。在上述步驟22中根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據的具體流程示意圖如圖3所示,包括步驟31,根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第一部分數據和地址偏移值;步驟32,根據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。具體地,同樣以用于開發(fā)PMP項目的嵌入式軟件程序為例,當數據存儲到NANDFlash中時,如果需加載的數據的數據量較大,則NANDFlash中一塊存儲塊的存儲空間大小不能滿足需加載的數據的存儲空間需求,因此,存儲該需加載的數據至少需要兩個存儲塊,且這兩個存儲塊有可能不相鄰。在這種情況下,由于需加載的數據的數據標識只與存儲第一部分數據的存儲空間相對應,因此,就需要在存儲第一部分數據的存儲空間中,存儲第二部分數據的存儲塊的地址偏移值,比如,可以在NANDFlash的存儲塊中的最后64個字節(jié)中記錄該地址偏移值,這樣,后續(xù)就能夠根據獲取到的地址偏移值指示的下一存儲地址,在存儲有第二部分數據的存儲塊中的對應位置上,獲取與所述數據標識對應的第二部分數據,以此類推,直至獲取到與該數據標識對應的所有需加載的數據。相應地,本發(fā)明實施例提供一種嵌入式軟件程序的運行裝置,用以解決現(xiàn)有技術中將需加載的數據直接寫入到嵌入式軟件程序中,而導致的程序占用運行程序的系統(tǒng)的存儲空間較大的問題。本發(fā)明實施例提供的該裝置的具體結構示意圖如圖4所示,包括獲取單元41,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;加載單元42,用于將獲取單元41獲取的所述數據加載到所述程序中。其中,獲取單元41可以具體包括查找模塊411,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述數據標識對應的存儲地址;獲取模塊412,用于根據查找模塊411查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據。如果需加載的數據的數據標識被設置為與該數據的存儲空間直接對應,也可以直接根據該數據標識確定該數據的存儲空間,而不需要對存儲地址進行查找。較佳地,獲取模塊412可以根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第一部分數據和地址偏移值;以及根據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。此外,本發(fā)明實施例還提供一種嵌入式軟件程序的運行系統(tǒng),其具體結構如圖5所示,包括嵌入式軟件程序的運行裝置51,以及存儲有所述程序需加載的數據的存儲空間52,存儲空間52與存儲所述程序的存儲空間為物理上獨立的存儲空間。其中,嵌入式軟件程序的運行裝置51具體包括獲取單元511,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲空間52中獲取與該數據標識對應的數據;加載單元512,用于將獲取單元511獲取的數據加載到所述程序中。以用于PMP項目的嵌入式軟件程序為例,上述的存^f渚空間52可以為嵌入式系統(tǒng)外部的NANDFlash,當需加載的數據要存儲到NANDFlash中時,首先判斷NANDFlash中各個存儲塊是否都能使用,如果判斷發(fā)現(xiàn)有的存儲塊為不能使用的壞存儲塊,則后續(xù)不再將需加載的數據存儲到被判斷為不能使用的存儲塊中。在判斷結果確定出所有能使用的好的存儲塊后,考慮到如果長期讀寫NANDFlash中的同一塊存儲塊會減少NANDFlash的使用壽命的問題,因此,可以進一步確定各個好的存儲塊的使用次數,并根據確定的次數,優(yōu)先選擇使用次數較少的存儲塊,對需加載的數據進行存儲。較佳地,上述的獲取單元511具體包括查找模塊5111,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述數據標識對應的存儲地址;獲取模塊5112,用于根據查找模塊5111查找到的存儲地址,在存儲有需加載的數據的存儲空間52中,獲取與該數據標識對應的數據。其中,獲取模塊5112根據查找到的存儲地址,在存儲有需加載的數據的存儲空間52中,獲取與該數據標識對應的第一部分翁:據和地址偏移值;以及根據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間52中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。具體地,同樣以用于開發(fā)PMP項目的嵌入式軟件程序為例,當需加載的數據存儲到NANDFlash中時,如果該數據的數據量4支大,則NANDFlash中一塊存儲塊的存儲空間大小不能滿足需加載的數據的存儲空間需求,因此,存儲該需加載的數據至少需要兩個存儲塊,且這兩個存儲塊有可能不相鄰。在這種情況下,由于需加載的數據的數據標識只與存儲第一部分數據的存儲空間相對應,因此,就需要在存儲第一部分數據的存儲空間中,存儲第二部分數據的存儲塊的地址偏移值,比如,可以在NANDFlash的存^f諸塊中的最后64個字節(jié)中記錄該地址偏移值,這樣,后續(xù)就能夠據獲取到的地址偏移值指示的下一存儲地址,在存儲有第二部分數據的存儲塊中的對應位置上,獲取與所述數據標識對應的第二部分數據,以此類推,直至獲取到與該凄t據標識對應的所有需加載的數據。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。權利要求1、一種嵌入式軟件程序的運行方法,其特征在于,包括在嵌入式軟件程序運行過程中,當需加載數據時,根據所述數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;將獲取的所述數據加載到所述程序中。2、如權利要求1所述的方法,其特征在于,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,具體包括根據所述數據標識,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述數據標識對應的存儲地址;根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據。3、如權利要求2所述的方法,其特征在于,才艮據查找到的存儲地址,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,具體包括根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第一部分數據和地址偏移值;根據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。4、一種嵌入式軟件程序的運行裝置,其特征在于,包括獲取單元,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;加載單元,用于將獲取單元獲取的所述數據加載到所述程序中。5、如權利要求4所述的裝置,其特征在于,所述獲取單元具體包括查找模塊,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述數據標識對應的存儲地址;獲取模塊,用于根據查找模塊查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據。6、如權利要求5所述的裝置,其特征在于,所述獲取模塊根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該凄t據標識對應的第一部分數據和地址偏移值;以及才艮據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。7、一種嵌入式軟件程序的運行系統(tǒng),其特征在于,包括嵌入式軟件程序的運行裝置以及存儲有所述程序需加載的數據的存儲空間,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間,其中所述裝置包括獲取單元,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在所述存儲有需加載的數據的存儲空間中獲取與該數據標識對應的凄t據;加載單元,用于將獲取單元獲取的所述數據加載到所述程序中。8、如權利要求7所述的系統(tǒng),其特征在于,所述獲取單元具體包括查找模塊,用于在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識時,在數據標識與需加載的數據的存儲地址的對應關系中,查找與所述數據標識對應的存儲地址;獲取模塊,用于根據查找模塊查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的數據。9、如權利要求8所述的系統(tǒng),其特征在于,所述獲取模塊根據查找到的存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第一部分數據和地址偏移值;以及根據所述獲取的地址偏移值指示的下一存儲地址,在存儲有需加載的數據的存儲空間中,獲取與該數據標識對應的第二部分數據,以此類推直至獲取到與該數據標識對應的所有數據。全文摘要本發(fā)明公開了一種嵌入式軟件程序的運行方法,包括在嵌入式軟件程序運行過程中,當需加載數據時,根據需加載的數據的數據標識,在存儲有需加載的數據的存儲空間中獲取與該數據標識對應的數據,所述存儲空間與存儲所述程序的存儲空間為物理上獨立的存儲空間;將獲取的所述數據加載到所述程序中。本發(fā)明實施例還提供了一種嵌入式軟件程序的運行裝置及其系統(tǒng)。采用本發(fā)明提供的方案能夠解決現(xiàn)有技術中將程序運行時需要加載的數據直接寫入到程序中,從而導致程序占用運行程序的系統(tǒng)的存儲空間較大的問題。文檔編號G06F9/445GK101354660SQ200810222250公開日2009年1月28日申請日期2008年9月12日優(yōu)先權日2008年9月12日發(fā)明者華張申請人:北京中星微電子有限公司