錢 丹, 李 飛, 路而紅 ,王建新, 金華建
(1.成都信息工程學院 四川 成都 610225;2.北京電子科技學院 北京 100070;3.中國人民解放軍73022部隊 浙江 杭州 310024)
近年來,嵌入式技術已廣泛應用于家電、無線通信、電子商務平臺中[1]。基于嵌入式技術開發的各類電子產品核心部件(CPU)的國產化,符合我國信息安全的戰略利益,是我國廣大科研人員努力的必然方向。值得一提的是,2001年蘇州國芯公司吸收和優化了M*Core技術,形成了具有我國自主知識產權的C*Core技術,隨后,基于此技術的首款國產32位芯片CCM3118被推出[2]。然而,C*Core系統函數庫中自帶的動態內存分配函數在脫離Winsdows操作系統等情況下會失效,這給基于C*Core的內存動態開發帶來阻礙。筆者正是針對這一問題,提出一種基于C*Core的動態內存分配方案。
以CCM3118芯片為例,其片內含2 kB ROM、64 kB SRAM,存儲器中整數型操作數格式是標準二進制補碼形式[3],地址空間映射如圖1所示。
C*Core C指令系統中的操作數大小只可在兩處定義:1)在指令編碼中明確定義(裝載/存儲指令);2)在指令操作中間接定義。一般地,指令作用在32位源操作數和生成32位結果。在本方案實現部分,存儲器默認采用大端(big-endian)方式存儲數據 (如圖2所示),即字的最重要字節在地址低位。在寄存器中,一個字對應的數值是以第31位作為最重要位(如圖3所示),而0字節是最重要字節[4]。

圖1 內存地址空間映射Fig.1 Memory address mapping

圖2 內存數據組織Fig.2 Memory data organization

圖3 寄存器數據組織Fig.3 Register data organization
由圖1可知,C*Core系列芯片內存資源有限,在計算量較大的情況下,例如在利用CCM3118芯片做橢圓曲線密碼算法(ECC)實現計算中,倘若采用全局數組進行ECC底層算法計算實現[5],芯片內存不能提供足夠資源,但采用本方案可有效解決此問題。此外嵌入式系統對整個系統的安全和穩定起著重要作用,故此程序的可靠與否關系著整個系統的安全運行,此方案的實現利用標準C*Core C語言編寫,可確保程序實現的可靠性與安全性。
程序定義一個結構體實體Mem,如圖4所示,內含兩類無符號字符型數據成員list[m]、meb[n],m、n大小自定。在編譯階段,Mem存儲空間被分配,相應地其數據成員被分配內存大小,共m+n個字節大小。

圖4 結構體Mem示意圖Fig.4 Mem schematic structure
將list[0]~list[m-1]作為管理列表,用來管理數據塊meb[0]~meb[n-1]。list[]中的每一項都為8位數據,其每一比特位1或0標識一個meb[]項的分配與否,如圖5所示。

圖5 管理列表對應數據塊示意圖Fig.5 The corresponding block diagram of a list about Management
例如,假定 list[]大小為 10,meb[]大小為 80,list[0]~list[9]管理meb[0]~meb[79]示意圖如圖6所示。動態內存分配時,程序通過list[]找到適宜的數據塊meb[k],返回meb[k]首地址給用戶操作即可。已分配的meb[]對應list[]設置為1,表示忙,避免二次分配。分配了的內存不使用時,及時回收,以免造成內存浪費。

圖6 管理內存實例塊示意圖Fig.6 Example block diagram of memory management
2.2.1 管理列表和內存塊分配
程序利用C*Core C語言實現,編譯器不能識別除C*Core C自帶以外的其他關鍵字。程序封裝一結構體,由方案原理可知,若管理列表list[]大小為10字節,數據數組meb[]大小為80字節。當定義一結構體實體Mem后,其內含的兩數據成員內存大小共90字節的存儲空間在編譯階段便得以分配。偽代碼如下所示:
定義結構體typedef struct
{
定義無符號字符型變量 list[10];//假定管理大小為10個字節
定義無符號字符型變量 meb[80];//假定數據塊大小為80個字節
}MEM;MEM Mem;//定義結構體實體,至此90個字節的內存被分配出來,其中80個位的管理機構(list[0]~list[7])與80個字節的內存塊(meb[0]~meb[79])
2.2.2 實現動態內存分配
程序核心部分源碼
INT8*Malloc(UINT8 Size)
{
UINT8 i,j,k;UINT8 Enter;
if(Size>MEM_COUNT||Size<1)
return' 主站蜘蛛池模板: 欧美亚洲一区二区三区导航| 国产免费高清无需播放器| 欧美成人精品高清在线下载 | 欧美精品不卡| 福利在线不卡| 久久精品无码一区二区国产区| 国产又粗又爽视频| 国产一区二区三区视频| 一级毛片无毒不卡直接观看| 成年人国产网站| 亚洲天堂网2014| 久久久久国产一级毛片高清板| 欧美日韩91| 国产婬乱a一级毛片多女| 欧美在线三级| 九九热在线视频| 免费毛片a| 成人福利免费在线观看| 亚洲另类色| 国产福利在线免费| 国产欧美另类| 女人18毛片久久| 无码在线激情片| 伊人色天堂| 丁香五月婷婷激情基地| 麻豆国产在线观看一区二区| 国产成人高清精品免费| 日本午夜三级| 亚洲一级毛片在线观| 美女一级毛片无遮挡内谢| 亚洲精品麻豆| 国产成人区在线观看视频| 久久亚洲国产视频| 欧美中文一区| 亚洲欧美一级一级a| 亚洲开心婷婷中文字幕| 久久网欧美| 东京热av无码电影一区二区| 波多野结衣一区二区三视频| 又爽又大又光又色的午夜视频| 亚洲国产成人在线| 五月激激激综合网色播免费| 久久黄色毛片| 无遮挡国产高潮视频免费观看 | 伊人蕉久影院| 麻豆精品久久久久久久99蜜桃| 制服丝袜一区二区三区在线| 福利在线一区| 国产日本一区二区三区| jizz在线免费播放| 看你懂的巨臀中文字幕一区二区| 就去吻亚洲精品国产欧美| 午夜国产大片免费观看| 91网在线| 欧美视频二区| 美女无遮挡免费视频网站| 无码电影在线观看| 97se综合| 国产美女精品一区二区| 亚洲高清中文字幕| www.av男人.com| 久久久久人妻一区精品色奶水| 香蕉伊思人视频| 亚洲一级毛片在线播放| AV无码无在线观看免费| 国产成人高清精品免费软件| 伊在人亞洲香蕉精品區| 天天综合色网| 少妇精品在线| 精品无码国产自产野外拍在线| аⅴ资源中文在线天堂| 国产精品欧美在线观看| 日韩精品成人在线| 欧美区在线播放| 久久人妻系列无码一区| 在线观看国产黄色| 亚洲婷婷丁香| 国产无遮挡猛进猛出免费软件| 久久这里只有精品国产99| 精品一区二区三区波多野结衣| 波多野结衣二区| 免费在线看黄网址|