预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN105808298A(43)申请公布日2016.07.27(21)申请号201610131674.4(22)申请日2016.03.08(71)申请人大连楼兰科技股份有限公司地址116000辽宁省大连市高新技术产业园区汇贤园7号11层#11-01/02室(72)发明人田雨农白斌苍柏丁飞(51)Int.Cl.G06F9/445(2006.01)权利要求书1页说明书4页附图1页(54)发明名称一种单片机下模块的动态加载方法(57)摘要本发明公开了一种单片机下模块的动态加载方法,包括:S1:将单片机的系统程序代码烧写于单片机的内部norflash中;S2:将待加载的模块程序编译成系统可执行文件,并将所述可执行文件中模块程序对应的二进制代码烧写于单片机的外部spiflash中;S3:根据预先为所述待加载模块程序预留的入口,从所述单片机的外部spiflash中读取所述模块程序对应的二进制代码,并写入所述norflash中运行;该动态加载方法,可应用于单片机的加解密算法以及碎片化升级,具有安全系数高等优点。CN105808298ACN105808298A权利要求书1/1页1.一种单片机下模块的动态加载方法,其特征在于,包括:S1:将单片机的系统程序代码烧写于单片机的内部norflash中;S2:将待加载的模块程序编译成系统可执行文件并存储于单片机的外部spiflash中;S3:根据预先为所述待加载模块程序预留的入口,从所述单片机的外部spiflash中读取所述可执行文件,并写入所述norflash中运行。2.按照权利要求1所述单片机下模块的动态加载方法,其特征在于,还包括:S4:当所述单片机的系统程序代码运行结束后,清除所述单片机norflash中从所述spiflash读入的可执行文件以及由所述可执行文件处理后的数据。3.按照权利要求1所述单片机下模块的动态加载方法,其特征在于,所述步骤S2中的可执行文件中包括:函数、全局变量以及所述函数对应的二进制代码;所述函数对应的二进制代码存储于所述可执行文件的代码区;所述函数的地址存储为所述函数在代码区相对于代码区首地址的偏移量。4.按照权利要求3所述单片机下模块的动态加载方法,其特征在于,所述步骤S2中将待加载的模块程序编译成系统可执行文件并存储于单片机的外部spiflash中时,将所述可执行文件中各函数地址的LSB位强制置0。5.按照权利要求3所述单片机下模块的动态加载方法,其特征在于,步骤S3中将可执行文件写入所述norflash中运行时,将所述可执行文件中各函数地址的LSB位强制置1。2CN105808298A说明书1/4页一种单片机下模块的动态加载方法技术领域[0001]本发明涉及单片机领域,特别提供了一种单片机下模块的动态加载方法。背景技术[0002]目前,在单片机领域,处于成本或者其他原因的考虑,很多单片机没有MMU单元(内存管理单元),选用的操作系统也不是虚拟地址空间。对于这类单地址空间操作系统而言,无法动态加载模块。[0003]在某些对安全性要求较高的场合,如加密,解密部分,若将加/解密算法与系统应用一起编译,通过工具在运行时很容易从内存中破解出加/解密算法。这对于系统的安全危害不言而喻。[0004]此外,如果要对系统中的部分函数进行升级,也需要进行整体升级,给网络资源,存储资源,代码变更等带来风险。[0005]因此,如何解决上述问题,成为人们亟待解决的问题。发明内容[0006]鉴于此,本发明的目的在于提供一种单片机下模块的动态加载方法,以至少解决以往单片机存在安全系数低、升级工作量大、存在风险等问题。[0007]1、本发明提供的技术方案,具体为,一种单片机下模块的动态加载方法,其特征在于,包括:S1:将单片机的系统程序代码烧写于单片机的内部norflash中;S2:将待加载的模块程序编译成系统可执行文件并存储于单片机的外部spiflash中;S3:根据预先为所述待加载模块程序预留的入口,从所述单片机的外部spiflash中读取所述可执行文件,并写入所述norflash中运行。[0008]优选,所述单片机下模块的动态加载方法,还包括:S4:当所述单片机的系统程序代码运行结束后,清除所述单片机norflash中从所述spiflash读入的可执行文件以及由所述可执行文件处理后的数据。[0009]进一步优选,所述步骤S2中的可执行文件中包括:函数、全局变量以及所述函数对应的二进制代码;所述函数对应的二进制代码存储于所述可执行文件的代码区;所述函数的地址存储为所述函数在代码区相对于代码区首地址的偏移量。[0010]进一步优选,所述步骤S2中将待加载的模块程序编译成系统可执行文件并存储于单片机的外部spiflash