亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C*Core的動態(tài)內(nèi)存分配方案與實現(xiàn)

        2011-05-21 00:41:58路而紅王建新金華建
        電子設(shè)計工程 2011年13期
        關(guān)鍵詞:字節(jié)列表內(nèi)存

        錢 丹, 李 飛, 路而紅 ,王建新, 金華建

        (1.成都信息工程學院 四川 成都 610225;2.北京電子科技學院 北京 100070;3.中國人民解放軍73022部隊 浙江 杭州 310024)

        近年來,嵌入式技術(shù)已廣泛應用于家電、無線通信、電子商務平臺中[1]?;谇度胧郊夹g(shù)開發(fā)的各類電子產(chǎn)品核心部件(CPU)的國產(chǎn)化,符合我國信息安全的戰(zhàn)略利益,是我國廣大科研人員努力的必然方向。值得一提的是,2001年蘇州國芯公司吸收和優(yōu)化了M*Core技術(shù),形成了具有我國自主知識產(chǎn)權(quán)的C*Core技術(shù),隨后,基于此技術(shù)的首款國產(chǎn)32位芯片CCM3118被推出[2]。然而,C*Core系統(tǒng)函數(shù)庫中自帶的動態(tài)內(nèi)存分配函數(shù)在脫離Winsdows操作系統(tǒng)等情況下會失效,這給基于C*Core的內(nèi)存動態(tài)開發(fā)帶來阻礙。筆者正是針對這一問題,提出一種基于C*Core的動態(tài)內(nèi)存分配方案。

        1 C*Core數(shù)據(jù)格式分析

        以CCM3118芯片為例,其片內(nèi)含2 kB ROM、64 kB SRAM,存儲器中整數(shù)型操作數(shù)格式是標準二進制補碼形式[3],地址空間映射如圖1所示。

        C*Core C指令系統(tǒng)中的操作數(shù)大小只可在兩處定義:1)在指令編碼中明確定義(裝載/存儲指令);2)在指令操作中間接定義。一般地,指令作用在32位源操作數(shù)和生成32位結(jié)果。在本方案實現(xiàn)部分,存儲器默認采用大端(big-endian)方式存儲數(shù)據(jù) (如圖2所示),即字的最重要字節(jié)在地址低位。在寄存器中,一個字對應的數(shù)值是以第31位作為最重要位(如圖3所示),而0字節(jié)是最重要字節(jié)[4]。

        圖1 內(nèi)存地址空間映射Fig.1 Memory address mapping

        圖2 內(nèi)存數(shù)據(jù)組織Fig.2 Memory data organization

        2 C*Core動態(tài)內(nèi)存分配方案及實現(xiàn)

        圖3 寄存器數(shù)據(jù)組織Fig.3 Register data organization

        由圖1可知,C*Core系列芯片內(nèi)存資源有限,在計算量較大的情況下,例如在利用CCM3118芯片做橢圓曲線密碼算法(ECC)實現(xiàn)計算中,倘若采用全局數(shù)組進行ECC底層算法計算實現(xiàn)[5],芯片內(nèi)存不能提供足夠資源,但采用本方案可有效解決此問題。此外嵌入式系統(tǒng)對整個系統(tǒng)的安全和穩(wěn)定起著重要作用,故此程序的可靠與否關(guān)系著整個系統(tǒng)的安全運行,此方案的實現(xiàn)利用標準C*Core C語言編寫,可確保程序?qū)崿F(xiàn)的可靠性與安全性。

        2.1 方案基本原理

        程序定義一個結(jié)構(gòu)體實體Mem,如圖4所示,內(nèi)含兩類無符號字符型數(shù)據(jù)成員list[m]、meb[n],m、n大小自定。在編譯階段,Mem存儲空間被分配,相應地其數(shù)據(jù)成員被分配內(nèi)存大小,共m+n個字節(jié)大小。

        圖4 結(jié)構(gòu)體Mem示意圖Fig.4 Mem schematic structure

        將list[0]~list[m-1]作為管理列表,用來管理數(shù)據(jù)塊meb[0]~meb[n-1]。list[]中的每一項都為8位數(shù)據(jù),其每一比特位1或0標識一個meb[]項的分配與否,如圖5所示。

        圖5 管理列表對應數(shù)據(jù)塊示意圖Fig.5 The corresponding block diagram of a list about Management

        例如,假定 list[]大小為 10,meb[]大小為 80,list[0]~list[9]管理meb[0]~meb[79]示意圖如圖6所示。動態(tài)內(nèi)存分配時,程序通過list[]找到適宜的數(shù)據(jù)塊meb[k],返回meb[k]首地址給用戶操作即可。已分配的meb[]對應list[]設(shè)置為1,表示忙,避免二次分配。分配了的內(nèi)存不使用時,及時回收,以免造成內(nèi)存浪費。

        圖6 管理內(nèi)存實例塊示意圖Fig.6 Example block diagram of memory management

        2.2 方案實現(xiàn)部分

        2.2.1 管理列表和內(nèi)存塊分配

        程序利用C*Core C語言實現(xiàn),編譯器不能識別除C*Core C自帶以外的其他關(guān)鍵字。程序封裝一結(jié)構(gòu)體,由方案原理可知,若管理列表list[]大小為10字節(jié),數(shù)據(jù)數(shù)組meb[]大小為80字節(jié)。當定義一結(jié)構(gòu)體實體Mem后,其內(nèi)含的兩數(shù)據(jù)成員內(nèi)存大小共90字節(jié)的存儲空間在編譯階段便得以分配。偽代碼如下所示:

        定義結(jié)構(gòu)體typedef struct

        {

        定義無符號字符型變量 list[10];//假定管理大小為10個字節(jié)

        定義無符號字符型變量 meb[80];//假定數(shù)據(jù)塊大小為80個字節(jié)

        }MEM;MEM Mem;//定義結(jié)構(gòu)體實體,至此90個字節(jié)的內(nèi)存被分配出來,其中80個位的管理機構(gòu)(list[0]~list[7])與80個字節(jié)的內(nèi)存塊(meb[0]~meb[79])

        2.2.2 實現(xiàn)動態(tài)內(nèi)存分配

        程序核心部分源碼

        INT8*Malloc(UINT8 Size)

        {

        UINT8 i,j,k;UINT8 Enter;

        if(Size>MEM_COUNT||Size<1)

        return'

        蜜臀aⅴ国产精品久久久国产老师| 精品视频在线观看日韩| 国产精品成熟老女人| 欧洲一卡2卡三卡4卡免费网站| 国内无遮码无码| 国产91精品清纯白嫩| 少妇精品亚洲一区二区成人| 精品av天堂毛片久久久| 久久青青草原亚洲AV无码麻豆| 亚洲图文一区二区三区四区| 国产极品少妇一区二区| 亚洲色欲久久久综合网| 亚洲高潮喷水中文字幕| 一区二区三区四区国产亚洲| 曰韩无码av一区二区免费| 秋霞午夜无码鲁丝片午夜精品| 国产精品久久久久孕妇| 在线不卡精品免费视频| 国内少妇毛片视频| 欧美性猛交xxxx黑人| 亚洲24小时在线免费视频网站| 在线中文字幕一区二区| 国产乱了真实在线观看| 亚洲精品国产字幕久久vr| 成人激情视频一区二区三区 | 精品久久久久久午夜| 一区二区三区观看视频在线| 国产特黄级aaaaa片免| 精品国产成人亚洲午夜福利| 久久激情人妻中文字幕| 中文字幕在线乱码一区| 看全色黄大色大片免费久久| 精品亚洲少妇一区二区三区| av在线播放免费观看| 奇米影视第四色首页| 亚洲视频1区| 精品人妻av区二区三区| 国产精品99精品久久免费| 亚洲av国产av综合av| 亚洲高清一区二区三区视频| 伊人情人色综合网站|