[发明专利]一种嵌入式程序压缩方法,解压缩方法和嵌入式系统有效
申请号: | 200910188727.6 | 申请日: | 2009-12-04 |
公开(公告)号: | CN102087608A | 公开(公告)日: | 2011-06-08 |
发明(设计)人: | 周波 | 申请(专利权)人: | 康佳集团股份有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 深圳市康弘知识产权代理有限公司 44247 | 代理人: | 胡朝阳;孙洁敏 |
地址: | 518055 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 程序 压缩 方法 解压缩 系统 | ||
技术领域
本发明涉及嵌入式程序处理技术,尤其涉及一种嵌入式程序压缩方法,解压缩方法和嵌入式系统。
背景技术
51系列单片机是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM)FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
存储器是单片机中非常重要的和不可或缺的部件,单片机的工作离不开程序,而程序正是存放在程序存储器中的。同样,程序的运行少不了对数据的处理,各种常数、变量、中间数据、运行状态、运算结果,都是存放在数据存储器中的。
尽管程序存储器和数据存储器同是存储器,由于用途不同,因而它们对于存储器性能的要求也不相同。程序存储器用于存放程序、表格和固定的常数,单片机工作时只从中提取指令或常数,通常不会对其内容进行修改,因此对其的基本要求是。必须确保存储内容长期不变,断电也不丢失,所以程序存储器用的是非易失性只读存储器(Non-Volatile Read OnlyMesmory,NVROM);而数据存储器是用来存储常数、变量、中间数据、运行状态、运算结果等的,也就是说,数据存储器所存放的内容在程序运行中要经常改变,即对数据存储器的要求是要能够随时快速方便地读写,所以数据存储器用的是随机存储器(Random--AccessMemory,RAM)。
单片机中常用的程序存储器有掩膜型只读存储器MROM、一次性可编程存储器OTPROM、紫外线可擦除可编程只读存储器EPROM和闪速存储器Flash Memory等四种。
由于51系列单片机16位地址寄存器的限制,外部程序存储器和外部数据存储器的寻址范围都是64KB。分组连接定位器BL51允许生成代码长度大于64KB的8051目标程序,它可以管理一个公共区域(COMMONAREA)和最多32个代码组区域(BANKAREA),每个代码组最大为64KB,所以这就决定可执行代码最大不能超过2MB(32*64KB)。
随着8051系列上的应用开发不断增加,而且应用规模比以往大,可执行代码往往上几MB。对于8位的单片机来说,由于其容量的限制,在开发较大型程序的时候,因为程序存储器和数据存储器容量都比较小,而不得裁减应用功能。
因此,随着越来越多的存储程序的需求,如何充分利用现有的程序存储器和数据存储器容量,使产品更具有市场竞争力,成为急待解决的问题。
发明内容
本发明目的在于提供一种嵌入式程序压缩方法,解压缩方法和嵌入式系统,充分利用现有的程序存储器和数据存储器容量,以适应越来越多的程序存储。
为解决本发明的技术问题,本发明公开一种嵌入式程序代码的压缩方法,其中,包括:
微控制单元对程序代码进行编译,将关于芯片初始化和电源管理部分的内核程序代码数据集中放入代码组区域的BANK0代码组区,将其它一些功能代码装入代码组区域的BANK1~BANK31区域;
连接程序存储器;
在编译和连接过程中对BANK1~BANK31区域的代码进行压缩;
输出可执行的程序到所述程序存储器。
较优地,所述编译采用游程编码(RLE,Run Length Encoding)的算法。
为解决本发明的技术问题,本发明还公开一种嵌入式程序代码的解压缩方法,其中,包括:
微控制单元从程序存储器装入BANKO执行程序;
系统初始值;
所述微控制单元从所述程序存储器装入BANK(1-31)解压缩;
在嵌入程序正常运行过程中,所述微控制单元从所述程序存储器读入BANK1~BANK31的压缩数据解压到连接双倍速率同步动态随机存储器的运行区;
所述微控制单元进行主循环。
较优地,所述微控制单元进行主循环后,所述方法还包括:
所述微控制单元还在空闲段里依次从所述程序存储器读入BANK1~BANK31压缩数据依次解压缩。
为解决本发明的技术问题,本发明还公开一种嵌入式系统,其中,包括:微控制单元和程序存储器,其中,所述微控制单元连接所述程序存储器;其中
所述微控制单元,用于对程序代码进行编译,将关于芯片初始化和电源管理部分的内核程序代码数据集中放入代码组区域的BANK0代码组区,将其它一些功能代码装入代码组区域的BANK1~BANK31区域;在编译和连接过程中对BANK1~BANK31区域的代码进行压缩,输出可执行的程序到所述程序存储器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于康佳集团股份有限公司,未经康佳集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910188727.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:降低内燃机噪音的消声装置
- 下一篇:打印设备及其控制方法