两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng)的制作方法

文檔序號:6581258閱讀:273來源:國知局
專利名稱:一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式程序處理技術(shù),尤其涉及一種嵌入式程序壓縮方法,解壓縮方 法和嵌入式系統(tǒng)。
背景技術(shù)
51系列單片機(jī)是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM) FalshProgrammable and Erasable Read Only Memory)的低電壓,高性能 CM0S8 位微處理 器,俗稱單片機(jī)。存儲器是單片機(jī)中非常重要的和不可或缺的部件,單片機(jī)的工作離不開程序,而 程序正是存放在程序存儲器中的。同樣,程序的運(yùn)行少不了對數(shù)據(jù)的處理,各種常數(shù)、變量、 中間數(shù)據(jù)、運(yùn)行狀態(tài)、運(yùn)算結(jié)果,都是存放在數(shù)據(jù)存儲器中的。盡管程序存儲器和數(shù)據(jù)存儲器同是存儲器,由于用途不同,因而它們對于存儲器 性能的要求也不相同。程序存儲器用于存放程序、表格和固定的常數(shù),單片機(jī)工作時(shí)只從 中提取指令或常數(shù),通常不會對其內(nèi)容進(jìn)行修改,因此對其的基本要求是。必須確保存儲 內(nèi)容長期不變,斷電也不丟失,所以程序存儲器用的是非易失性只讀存儲器(Non-Volatile Read OnlyMesmory, NVR0M);而數(shù)據(jù)存儲器是用來存儲常數(shù)、變量、中間數(shù)據(jù)、運(yùn)行狀 態(tài)、運(yùn)算結(jié)果等的,也就是說,數(shù)據(jù)存儲器所存放的內(nèi)容在程序運(yùn)行中要經(jīng)常改變,即對 數(shù)據(jù)存儲器的要求是要能夠隨時(shí)快速方便地讀寫,所以數(shù)據(jù)存儲器用的是隨機(jī)存儲器 (Random—AccessMemory, RAM)。單片機(jī)中常用的程序存儲器有掩膜型只讀存儲器MR0M、一次性可編程存儲器 0TPR0M、紫外線可擦除可編程只讀存儲器EPROM和閃速存儲器Flash Memory等四種。由于51系列單片機(jī)16位地址寄存器的限制,外部程序存儲器和外部數(shù)據(jù)存儲器 的尋址范圍都是64KB。分組連接定位器BL51允許生成代碼長度大于64KB的8051目標(biāo)程 序,它可以管理一個公共區(qū)域(C0MM0NAREA)和最多32個代碼組區(qū)域(BANKAREA),每個代碼 組最大為64KB,所以這就決定可執(zhí)行代碼最大不能超過2MB(32*64KB)。隨著8051系列上的應(yīng)用開發(fā)不斷增加,而且應(yīng)用規(guī)模比以往大,可執(zhí)行代碼往往 上幾MB。對于8位的單片機(jī)來說,由于其容量的限制,在開發(fā)較大型程序的時(shí)候,因?yàn)槌绦?存儲器和數(shù)據(jù)存儲器容量都比較小,而不得裁減應(yīng)用功能。因此,隨著越來越多的存儲程序的需求,如何充分利用現(xiàn)有的程序存儲器和數(shù)據(jù) 存儲器容量,使產(chǎn)品更具有市場競爭力,成為急待解決的問題。

發(fā)明內(nèi)容
本發(fā)明目的在于提供一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng),充分 利用現(xiàn)有的程序存儲器和數(shù)據(jù)存儲器容量,以適應(yīng)越來越多的程序存儲。為解決本發(fā)明的技術(shù)問題,本發(fā)明公開一種嵌入式程序代碼的壓縮方法,其中,包 括
微控制單元對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi)核程序 代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANKO代碼組區(qū),將其它一些功能代碼裝入代碼組區(qū)域的 BANKl BANK31 區(qū)域;連接程序存儲器;在編譯和連接過程中對BANKl BANK31區(qū)域的代碼進(jìn)行壓縮;輸出可執(zhí)行的程序到所述程序存儲器。較優(yōu)地,所述編譯采用游程編碼(RLE,Run Length Encoding)的算法。為解決本發(fā)明的技術(shù)問題,本發(fā)明還公開一種嵌入式程序代碼的解壓縮方法,其 中,包括微控制單元從程序存儲器裝入BANKO執(zhí)行程序;系統(tǒng)初始值;所述微控制單元從所述程序存儲器裝入BANK(1-31)解壓縮;在嵌入程序正常運(yùn)行過程中,所述微控制單元從所述程序存儲器讀入BANKl BANK31的壓縮數(shù)據(jù)解壓到連接雙倍速率同步動態(tài)隨機(jī)存儲器的運(yùn)行區(qū); 所述微控制單元進(jìn)行主循環(huán)。較優(yōu)地,所述微控制單元進(jìn)行主循環(huán)后,所述方法還包括所述微控制單元還在空閑段里依次從所述程序存儲器讀入BANKl BANK31壓縮 數(shù)據(jù)依次解壓縮。為解決本發(fā)明的技術(shù)問題,本發(fā)明還公開一種嵌入式系統(tǒng),其中,包括微控制單 元和程序存儲器,其中,所述微控制單元連接所述程序存儲器;其中所述微控制單元,用于對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分 的內(nèi)核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANKO代碼組區(qū),將其它一些功能代碼裝入代 碼組區(qū)域的BANKl BANK31區(qū)域;在編譯和連接過程中對BANKl BANK31區(qū)域的代碼進(jìn) 行壓縮,輸出可執(zhí)行的程序到所述程序存儲器;所述程序存儲器,用于接收和存儲所述微控制單元編譯和壓縮后的代碼數(shù)據(jù)。較優(yōu)地,還包括與所述微控制單元連接的雙倍速率同步動態(tài)隨機(jī)存儲器,其中,所述雙倍速率同步動態(tài)隨機(jī)存儲器,用于接收所述微控制單元解壓縮后的代碼數(shù) 據(jù),并進(jìn)行運(yùn)行。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明公開的嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng),運(yùn)用壓縮和解壓 縮技術(shù),使相同的程序存儲器裝入更多的執(zhí)行代碼,實(shí)現(xiàn)更多的功能。


圖1為本發(fā)明實(shí)施例的執(zhí)行程序代碼結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例的一種嵌入式系統(tǒng)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例的一種嵌入式程序代碼的壓縮方法流程示意圖;圖4為本發(fā)明實(shí)施例的一種嵌入式程序代碼的解壓縮方法的流程示意圖;圖5為本發(fā)明另一實(shí)施例的一種嵌入式程序代碼的解壓縮方法的流程示意圖。
具體實(shí)施例方式本發(fā)明公開一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng),運(yùn)用壓縮和解 壓縮技術(shù),使相同的程序存儲器裝入更多的執(zhí)行代碼,實(shí)現(xiàn)更多的功能。本發(fā)明的一個實(shí)施例中,采用游程編碼(RLE,Run Length Encoding)的算法,又稱 行程長度編碼,RLE是一個針對無損壓縮的非常簡單的算法,它用重復(fù)字節(jié)和重復(fù)的次數(shù)來 簡單描述來代替重復(fù)的字節(jié)。代碼組區(qū)域(BANK AREA)的壓縮方法可以如下所示。根據(jù)51系列公共區(qū)域(COMMON AREA)和最多32個代碼組區(qū)域(BANK AREA),每個 代碼組最大為64KB此根本原理,其執(zhí)行程序代碼結(jié)構(gòu)可以如圖1所示。如圖2所示,為本發(fā)明實(shí)施例的一種嵌入式系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)可以包 括微控制單元(MCU,Micro Control Unit) 21,雙倍速率同步動態(tài)隨機(jī)存儲器(DDR, Double DataRate SDRAM) 22和程序存儲器23。其中,MCU又稱單片微型計(jì)算機(jī)(Single ChipMicrocomputer)或者單片機(jī)。其中,微控制單元21分別連接所述DDR22和程序存儲器 23。 嵌入MCU21可以將執(zhí)行代碼從程序存儲器23寫入MCU存儲器DDR22的運(yùn)行區(qū)。所述微控制單元21,用于對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部 分的內(nèi)核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANKO代碼組區(qū),將其它一些功能代碼裝入 代碼組區(qū)域的BANKl BANK31區(qū)域;在編譯和連接過程中對BANKl BANK31區(qū)域的代碼 進(jìn)行壓縮,輸出可執(zhí)行的程序到所述程序存儲器23 ;所述程序存儲器23,用于接收和存儲所述微控制單元21編譯和壓縮后的代碼數(shù) 據(jù)。所述雙倍速率同步動態(tài)隨機(jī)存儲器22,用于接收所述微控制單元21解壓縮后的 代碼數(shù)據(jù),并進(jìn)行運(yùn)行。嵌入MCU21對于嵌入式可執(zhí)行程序是無法進(jìn)行主體程序進(jìn)行壓縮。但嵌入式程序 里的關(guān)于芯片初始化和電源管理部分等內(nèi)核程序代碼量比較小,大概幾十KB,加上解壓縮 幾KB代碼量,對于一個代碼組區(qū)域64KB空間足夠。因此,可以將此部分關(guān)于芯片初始化和 電源管理部分等內(nèi)核程序代碼數(shù)據(jù)集中放入BANKO代碼組區(qū),確保嵌入式系統(tǒng)正常運(yùn)行, 將其它一些功能代碼裝入BANKl BANK31區(qū)域。如圖3所示,為本發(fā)明一實(shí)施例的一種嵌入式程序代碼的壓縮方法流程示意圖, 在編譯連接過程中對BANKl BANK31進(jìn)行壓縮,主要可以如下所述。步驟31,MCU21進(jìn)行程序代碼的編譯;步驟32,MCU21進(jìn)行BANK(1_31)數(shù)據(jù)的壓縮,采用RLE壓縮方法,將關(guān)于芯片初 始化和電源管理部分等內(nèi)核程序代碼數(shù)據(jù)集中放入BANKO代碼組區(qū),確保嵌入式系統(tǒng)正 常運(yùn)行,將其它一些功能代碼裝入BANKl BANK31區(qū)域,在編譯過程中對代碼組區(qū)域的 BANKl BANK31區(qū)域的代碼進(jìn)行壓縮。步驟33,MCU21連接程序存儲器23,且在連接過程中對代碼組區(qū)域的BANKl BANK31區(qū)域的代碼進(jìn)行壓縮;步驟34,輸出可執(zhí)行的程序。例如,輸出可執(zhí)行的程序到連接的所述程序存儲器23。
如圖4所示,為本發(fā)明實(shí)施例的一種嵌入式程序代碼的解壓縮方法的流程示意 圖,可以如下所述。步驟41,嵌入MCU21從程序存儲器23裝入BANKO執(zhí)行程序;步驟42,系統(tǒng)初始值;步驟43,嵌入MCU21從程序存儲器裝入BANK (1_31)解壓縮;在嵌入程序正常運(yùn)行過程中,嵌入MCU21從程序存儲器23里讀入BANKl BANK31 的壓縮數(shù)據(jù)解壓到存儲器DDR22的運(yùn)行區(qū),其中,系統(tǒng)需要花費(fèi)幾秒種解壓時(shí)間。步驟44,嵌入MCU21進(jìn)行主循環(huán)。如圖5所示,為本發(fā)明另一實(shí)施例的一種嵌入式程序代碼的解壓縮方法的流程示 意圖,可以如下所述。步驟51,嵌入MCU21從程序存儲器23裝入BANKO執(zhí)行程序;步驟52,系統(tǒng)初始值;步驟53,嵌入MCU21從程序存儲器裝入BANK(1_31)解壓縮;在嵌入程序正常運(yùn)行過程中,嵌入MCU21從程序存儲器23里讀入BANKl BANK31 的壓縮數(shù)據(jù)解壓到存儲器DDR22的運(yùn)行區(qū),其中,系統(tǒng)需要花費(fèi)幾秒種解壓時(shí)間。步驟54,嵌入MCU21進(jìn)行主循環(huán)。步驟54執(zhí)行完后,嵌入式系統(tǒng)的所述微控制單元21還可以在空閑段里依次從程 序存儲器里23讀入BANKl BANK31壓縮數(shù)據(jù)依次解壓縮。綜上所述,本發(fā)明屬于開發(fā)大型嵌入式程序系統(tǒng),將執(zhí)行代碼進(jìn)行合理壓縮和解 壓縮,裝入程序存儲器,使相同的程序存儲器裝入更多的執(zhí)行代碼,實(shí)現(xiàn)更多的功能,也可 以大大降低程序存儲器設(shè)備空間,減低系統(tǒng)成本。
權(quán)利要求
1.一種嵌入式程序代碼的壓縮方法,其特征在于,包括微控制單元對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi)核程序代 碼數(shù)據(jù)集中放入代碼組區(qū)域的BANKO代碼組區(qū),將其它一些功能代碼裝入代碼組區(qū)域的 BANKl BANK31 區(qū)域;連接程序存儲器;在編譯和連接過程中對BANKl BANK31區(qū)域的代碼進(jìn)行壓縮;輸出可執(zhí)行的程序到所述程序存儲器。
2.如權(quán)利要求1所述的方法,其特征在于,所述編譯采用游程編碼(RLE,Run LengthEncoding)的算法。
3.一種嵌入式程序代碼的解壓縮方法,其特征在于,包括微控制單元從程序存儲器裝入BANKO執(zhí)行程序;系統(tǒng)初始值;所述微控制單元從所述程序存儲器裝入BANK (1-31)解壓縮;在嵌入程序正常運(yùn)行過程中,所述微控制單元從所述程序存儲器讀入BANKl BANK31 的壓縮數(shù)據(jù)解壓到連接雙倍速率同步動態(tài)隨機(jī)存儲器的運(yùn)行區(qū);所述微控制單元進(jìn)行主循環(huán)。
4.如權(quán)利要求3所述的方法,其特征在于,所述微控制單元進(jìn)行主循環(huán)后,所述方法還 包括所述微控制單元還在空閑段里依次從所述程序存儲器讀入BANKl BANK31壓縮數(shù)據(jù) 依次解壓縮。
5.一種嵌入式系統(tǒng),其特征在于,包括微控制單元和程序存儲器,其中,所述微控制 單元連接所述程序存儲器;其中所述微控制單元,用于對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi) 核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANKO代碼組區(qū),將其它一些功能代碼裝入代碼組 區(qū)域的BANKl BANK31區(qū)域;在編譯和連接過程中對BANKl BANK31區(qū)域的代碼進(jìn)行壓 縮,輸出可執(zhí)行的程序到所述程序存儲器;所述程序存儲器,用于接收和存儲所述微控制單元編譯和壓縮后的代碼數(shù)據(jù)。
6.如權(quán)利要求5所述的系統(tǒng),還包括與所述微控制單元連接的雙倍速率同步動態(tài)隨 機(jī)存儲器,其中,所述雙倍速率同步動態(tài)隨機(jī)存儲器,用于接收所述微控制單元解壓縮后的代碼數(shù)據(jù), 并進(jìn)行運(yùn)行。
全文摘要
本發(fā)明公開一種嵌入式程序壓縮方法,解壓縮方法和嵌入式系統(tǒng),包括微控制單元對程序代碼進(jìn)行編譯,將關(guān)于芯片初始化和電源管理部分的內(nèi)核程序代碼數(shù)據(jù)集中放入代碼組區(qū)域的BANK0代碼組區(qū),將其它一些功能代碼裝入代碼組區(qū)域的BANK1~BANK31區(qū)域;連接程序存儲器;在編譯和連接過程中對BANK1~BANK31區(qū)域的代碼進(jìn)行壓縮;輸出可執(zhí)行的程序到所述程序存儲器。通過本發(fā)明,充分利用現(xiàn)有的程序存儲器和數(shù)據(jù)存儲器容量,以適應(yīng)越來越多的程序存儲。
文檔編號G06F9/45GK102087608SQ20091018872
公開日2011年6月8日 申請日期2009年12月4日 優(yōu)先權(quán)日2009年12月4日
發(fā)明者周波 申請人:康佳集團(tuán)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
墨江| 西乡县| 南宫市| 宁陕县| 马山县| 广南县| 宜宾市| 齐河县| 新丰县| 浦江县| 恩施市| 天全县| 栖霞市| 三明市| 凌源市| 三江| 鄂尔多斯市| 邛崃市| 清河县| 双鸭山市| 四子王旗| 莫力| 康乐县| 北京市| 伊吾县| 平舆县| 墨玉县| 湖北省| 泰兴市| 宁陕县| 张家港市| 通江县| 兴义市| 邵东县| 枣阳市| 饶河县| 长武县| 丽江市| 连江县| 舟曲县| 准格尔旗|