[發(fā)明專(zhuān)利]一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 200910188727.6 | 申請(qǐng)日: | 2009-12-04 |
| 公開(kāi)(公告)號(hào): | CN102087608A | 公開(kāi)(公告)日: | 2011-06-08 |
| 發(fā)明(設(shè)計(jì))人: | 周波 | 申請(qǐng)(專(zhuān)利權(quán))人: | 康佳集團(tuán)股份有限公司 |
| 主分類(lèi)號(hào): | G06F9/45 | 分類(lèi)號(hào): | G06F9/45 |
| 代理公司: | 深圳市康弘知識(shí)產(chǎn)權(quán)代理有限公司 44247 | 代理人: | 胡朝陽(yáng);孫潔敏 |
| 地址: | 518055 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 嵌入式 程序 壓縮 方法 解壓縮 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式程序處理技術(shù),尤其涉及一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng)。
背景技術(shù)
51系列單片機(jī)是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM)FalshProgrammable?and?Erasable?Read?Only?Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。
存儲(chǔ)器是單片機(jī)中非常重要的和不可或缺的部件,單片機(jī)的工作離不開(kāi)程序,而程序正是存放在程序存儲(chǔ)器中的。同樣,程序的運(yùn)行少不了對(duì)數(shù)據(jù)的處理,各種常數(shù)、變量、中間數(shù)據(jù)、運(yùn)行狀態(tài)、運(yùn)算結(jié)果,都是存放在數(shù)據(jù)存儲(chǔ)器中的。
盡管程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器同是存儲(chǔ)器,由于用途不同,因而它們對(duì)于存儲(chǔ)器性能的要求也不相同。程序存儲(chǔ)器用于存放程序、表格和固定的常數(shù),單片機(jī)工作時(shí)只從中提取指令或常數(shù),通常不會(huì)對(duì)其內(nèi)容進(jìn)行修改,因此對(duì)其的基本要求是。必須確保存儲(chǔ)內(nèi)容長(zhǎng)期不變,斷電也不丟失,所以程序存儲(chǔ)器用的是非易失性只讀存儲(chǔ)器(Non-Volatile?Read?OnlyMesmory,NVROM);而數(shù)據(jù)存儲(chǔ)器是用來(lái)存儲(chǔ)常數(shù)、變量、中間數(shù)據(jù)、運(yùn)行狀態(tài)、運(yùn)算結(jié)果等的,也就是說(shuō),數(shù)據(jù)存儲(chǔ)器所存放的內(nèi)容在程序運(yùn)行中要經(jīng)常改變,即對(duì)數(shù)據(jù)存儲(chǔ)器的要求是要能夠隨時(shí)快速方便地讀寫(xiě),所以數(shù)據(jù)存儲(chǔ)器用的是隨機(jī)存儲(chǔ)器(Random--AccessMemory,RAM)。
單片機(jī)中常用的程序存儲(chǔ)器有掩膜型只讀存儲(chǔ)器MROM、一次性可編程存儲(chǔ)器OTPROM、紫外線(xiàn)可擦除可編程只讀存儲(chǔ)器EPROM和閃速存儲(chǔ)器Flash?Memory等四種。
由于51系列單片機(jī)16位地址寄存器的限制,外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的尋址范圍都是64KB。分組連接定位器BL51允許生成代碼長(zhǎng)度大于64KB的8051目標(biāo)程序,它可以管理一個(gè)公共區(qū)域(COMMONAREA)和最多32個(gè)代碼組區(qū)域(BANKAREA),每個(gè)代碼組最大為64KB,所以這就決定可執(zhí)行代碼最大不能超過(guò)2MB(32*64KB)。
隨著8051系列上的應(yīng)用開(kāi)發(fā)不斷增加,而且應(yīng)用規(guī)模比以往大,可執(zhí)行代碼往往上幾MB。對(duì)于8位的單片機(jī)來(lái)說(shuō),由于其容量的限制,在開(kāi)發(fā)較大型程序的時(shí)候,因?yàn)槌绦虼鎯?chǔ)器和數(shù)據(jù)存儲(chǔ)器容量都比較小,而不得裁減應(yīng)用功能。
因此,隨著越來(lái)越多的存儲(chǔ)程序的需求,如何充分利用現(xiàn)有的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器容量,使產(chǎn)品更具有市場(chǎng)競(jìng)爭(zhēng)力,成為急待解決的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng),充分利用現(xiàn)有的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器容量,以適應(yīng)越來(lái)越多的程序存儲(chǔ)。
為解決本發(fā)明的技術(shù)問(wèn)題,本發(fā)明公開(kāi)一種嵌入式程序代碼的壓縮方法,其中,包括:
微控制單元對(duì)程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi)核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANK0代碼組區(qū),將其它一些功能代碼裝入代碼組區(qū)域的BANK1~BANK31區(qū)域;
連接程序存儲(chǔ)器;
在編譯和連接過(guò)程中對(duì)BANK1~BANK31區(qū)域的代碼進(jìn)行壓縮;
輸出可執(zhí)行的程序到所述程序存儲(chǔ)器。
較優(yōu)地,所述編譯采用游程編碼(RLE,Run?Length?Encoding)的算法。
為解決本發(fā)明的技術(shù)問(wèn)題,本發(fā)明還公開(kāi)一種嵌入式程序代碼的解壓縮方法,其中,包括:
微控制單元從程序存儲(chǔ)器裝入BANKO執(zhí)行程序;
系統(tǒng)初始值;
所述微控制單元從所述程序存儲(chǔ)器裝入BANK(1-31)解壓縮;
在嵌入程序正常運(yùn)行過(guò)程中,所述微控制單元從所述程序存儲(chǔ)器讀入BANK1~BANK31的壓縮數(shù)據(jù)解壓到連接雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器的運(yùn)行區(qū);
所述微控制單元進(jìn)行主循環(huán)。
較優(yōu)地,所述微控制單元進(jìn)行主循環(huán)后,所述方法還包括:
所述微控制單元還在空閑段里依次從所述程序存儲(chǔ)器讀入BANK1~BANK31壓縮數(shù)據(jù)依次解壓縮。
為解決本發(fā)明的技術(shù)問(wèn)題,本發(fā)明還公開(kāi)一種嵌入式系統(tǒng),其中,包括:微控制單元和程序存儲(chǔ)器,其中,所述微控制單元連接所述程序存儲(chǔ)器;其中
所述微控制單元,用于對(duì)程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi)核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANK0代碼組區(qū),將其它一些功能代碼裝入代碼組區(qū)域的BANK1~BANK31區(qū)域;在編譯和連接過(guò)程中對(duì)BANK1~BANK31區(qū)域的代碼進(jìn)行壓縮,輸出可執(zhí)行的程序到所述程序存儲(chǔ)器;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于康佳集團(tuán)股份有限公司,未經(jīng)康佳集團(tuán)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910188727.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開(kāi)發(fā)支持裝置、程序開(kāi)發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線(xiàn)程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





