计算机程序注入方法及系统的制作方法_2

文档序号:9375187阅读:来源:国知局
>[0053]相应的,作为本实施例的一部分,除上述被划分为用于存储各不同功能程序的第一访问空间和第二访问空间外,在保证该载体或设备的正常运行,在存储器中还划分有若干系统程序区和BOOT程序区,用以保证载体或设备在运行的不同阶段实用。
[0054]通过将存储器按照不同的功能程序进行分区存储,使得对程序的读取和注入更为便利,通过注入的差异部分可作为增量程序存储在相应功能程序的第二访问空间,从而避免了该差异部分的注入与其他功能程序的原程序或差异部分造成冲突的可能性。且本领域技术人员可以知道,与功能程序相类似,系统程序去的若干系统程序或BOOT程序区中的BOOT程序,在必要时,同样可本看做与功能程序类似的部分被实施与注入差异部分相同的操作。
[0055]进一步的,作为本发明实施例的一种扩展,在存储器中,与传统的地址访问不同的功能程序相不同,本实施例采用向量表的形式,对各功能程序的原程序和差异部分进行访问,在一个向量表中,存储有各功能程序的原程序的第一访问空间的访问地址,从而可更具该第一访问空间的访问地址读取该第一访问空间中的原程序,为使得对相应第二访问空间中的差异部分的读取更加便利,向量表中同样以互为映射或对应的形式,存储有同一个功能程序的第二访问空间的访问地址,因此,当同一功能程序同时存在原程序和差异部分时,可通过向量表,对第一访问空间和第二访问空间进行访问,进而读取全部的原程序和差异部分。
[0056]图3为本发明实施例中合并原程序和差异部分的示意图。
[0057]S103中,当差异部分存储于存储器中后,在运行对应的功能程时,对原程序和差异部分进行合并。
[0058]在本发明实施例中,某个功能程序的原程序和差异部分被同时存储于存储器的不同区域中,在运行该功能程前,需要将差异部分所携带的程序内容合并到原程序中,形成修改后的功能程序,并将合并后的被视为更新后的功能程序从类似于ROM的存储器中合并到了用于执行的类似于RAM的存储区域中,以便于进行后续的执行。
[0059]作为该实施例的一种扩展,由于差异部分的注入不同于原程序的执行和合并操作,因此,在执行差异部分和原程序的合并时,不不确定相应功能程序的第二访问空间中存在实际注入的差异部分,因此,需要对第二访问空间中的差异部分进行判断。具体的,在合并之,首先对第二访问空间进行判断,以确定是否存在差异部分,因此,对应于某个功能程序,在上述实施例中,第二访问空间为预留的存储空间,因此,首先对该预留存储空间中的内容进行判断,以确定是否存在差异部分,若未对该功能程序进行注入,则对应的第二访问空间中便不存在差异部分。
[0060]当确定该第二访问空间中存在作为差异部分的增量程序时,可以将该功能程序的第一程序区中的原程序和第二程序区中的差异部分进行合并以共同被加载。
[0061]当确定该第二访问空间中不存在作为差异部分的增量程序时,则无需对该功能程序的第一程序区中的原程序进行合并操作。
[0062]通过对第二访问空间中内容的判断,以确定是否对原程序进行合并操作,保证了作为差异部分的增量程序的正确加载,避免了因为合并相应功能程序第二访问空间中非差异部分的增量程序,造成的原程序加载错误。
[0063]S104中,当完成原程序和差异程序的合并操作后,可以将合并后的被视为更新后的功能程序进行执行。
[0064]图4为本发明实施例用于程序注入的系统的模块示意图。
[0065]参考图4,在本发明实施例的用于程序注入的系统中,包括差异比较模块、程序注入模块和程序合并模块。
[0066]差异比较模块通过对待注入的程序与功能程序的原程序间的比较,确定差异部分,该差异部分可被识别为相对于原程序的增量程序。与上述实施例相同,差异比较模块可实现于设备或载体的外部,用于在通信和处理能力不受限制的设备上实现,以缓解设备或载体的处理负担。可替换掉,该差异比较模块也可以实现于设备或载体的内部,并相独立于用于执行程序的模块,以将相应的运行以外的功能独立实现,保证程序的执行效率。
[0067]程序注入模块具有存储工程程序的存储器,在确定了差异部分后,程序注入模块将差异部分注入到设备或载体的存储器中,同样的,存储功能程序的存储器可以为R0M,且可按照功能程序的不同来划分存储器中的相应存储空间。并且,作为一种更便于存储和查找功能程序原程序和对应差异部分的实现方式,本实施例中,进一步包括程序管理模块,该程序管理模块用于将存储空间按每一个功能程序分配用于存储原程序的第一访问空间和存储差异部分的第二访问空间,并利用向量表的形式,将第一访问空间的地址和第二访问空间的地址相关联,以便利与对应于同一功能程序的原程序和差异部分的同时读取。
[0068]程序合并模块完成对原程序和差异程序的合并,该合并可通过利用上述的向量表同时读取存储去存储器中的原程序和差异部分,并将差异部分合并到原程序中,从而形成更新或升级后的功能程序。作为该程序合并模块实施例的一种扩展,在进行差异部分和原程序的扩展前,首先对第二访问空间中的差异部分进行确定,当存在差异部分且该差异部分的内容正确时,则执行合并操作,否则,不将第二访问空间中的差异部分合并到原程序中。
[0069]在本发明实施例中,作为上述系统的扩展,还可以包括程序执行模块,该程序执行模块用于将经过合并后的新的功能程序或者将不需要合并差异部分的原程序进行执行。
[0070]通过本发明上述实施例可以明显的减少注入程序时的程序量,从而降低通信传输带宽和速率的要求,并减少了注入程序的时间。而在存储注入的差异部分和原程序以及进行访问时,通过划分存储空间和利用向量表来寻址,可以准确快捷的实现程序的查找,向量表中的每一项可以是一个功能程序的入口信息,当需要进入某个功能时,通过调用向量表相应的表项实现功能程序调用,并通过寻址访问到对应的原程序和作为差异部分的增量程序。而在存储功能程序的整个存储区发生变化时,也只需要修改相应的向量表中的表项就能够实现灵活变更功能程序的入口。并且,可将向量表的存储位置相对固定的设置,从而可使得访问向量表的基址是固定的,通过访问向量表就能够访问功能程序。
[0071]以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
[0072]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种程序注入方法,其特征在于包括以下步骤: 确定待注入程序与功能程序的原程序间的差异部分; 将所述差异部分注入存储器中; 合并所述原程序和所述差异部分。2.如权利要求1所述程序注入方法,其特征在于,还包括以下步骤: 将所述原程序与所述差异部分合并执行。3.如权利要求1所述程序注入方法,其特征在于,还包括以下步骤: 在存储器中为所述功能程序分配第一访问空间用于存储所述原程序; 对应于所述第一访问空间,在存储器中分配第二访问空间用于存储与所述原程序对应的所述差异部分。4.如权利要求3所述程序注入方法,其特征在于, 采用向量表存储对应于不同所述功能程序的第一访问空间的地址和第二访问空间的地址。5.如权利要求1所述程序注入方法,其特征在于,所述合并所述原程序和所述差异部分的步骤包括: 判断所述差异部分是否为空; 若所述差异部分不为空,则将所述原程序与所述差异部分合并加载; 若所述差异部分为空,则仅加载所述原程序。6.一种用于程序注入的系统,其特征在于包括: 差异比较模块,用于确定待注入程序与功能程序的原程序间的差异部分; 程序注入模块,用于将所述差异部分注入存储器中; 程序合并模块,用于合并所述原程序和所述差异部分。7.如权利要求6用于程序注入的系统,其特征在于还包括: 程序执行模块,用于将所述原程序与所述差异部分合并执行。8.如权利要求6用于程序注入的系统,其特征在于还包括: 程序管理模块,用于在存储器中为所述功能程序分配第一访问空间用于存储所述原程序;并对应于所述第一访问空间,在存储器中分配第二访问空间用于存储与所述原程序对应的所述差异部分。9.如权利要求8用于程序注入的系统,其特征在于: 所述程序管理模块,利用向量表存储对应于不同所述功能程序的第一访问空间的地址和第二访问空间的地址。10.如权利要求6用于程序注入的系统,其特征在于: 所述程序合并模块,判断所述差异部分是否为空;若所述差异部分不为空,则将所述原程序与所述差异部分合并加载;若所述差异部分为空,则仅加载所述原程序。
【专利摘要】计算机程序注入方法及系统。本发明公开了一种程序注入方法,包括以下步骤:确定待注入程序与功能程序的原程序间的差异部分;将所述差异部分注入存储器中;合并所述原程序和所述差异部分。同时本发明还公开了一种用于程序注入的系统。采用本发明可以明显降低程序的注入量。
【IPC分类】G06F9/44
【公开号】CN105094792
【申请号】CN201410498600
【发明人】刘宇, 郝晓强, 王兆俊, 史尧, 张安安, 王梦源
【申请人】航天恒星科技有限公司
【公开日】2015年11月25日
【申请日】2014年9月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1