一种补丁管理方法和系统技术方案

技术编号:24120241 阅读:36 留言:0更新日期:2020-05-13 02:52
本发明专利技术公开了一种补丁管理方法及系统,所述方法包括获取功能需求;基于获取到的功能需求形成补丁需求设计文档,并将所述补丁需求设计文档上传至补丁管理模块;基于所述补丁需求设计文档完成测试补丁代码和补丁代码的编写;当成功基于所述测试补丁代码完成对补丁代码测试后,将所述补丁代码上传至补丁管理模块,供所述补丁管理模块基于所述补丁代码生成补丁列表,基于所述补丁列表进行补丁选择,并对与补丁列表中被选中的补丁对应的补丁代码进行编译和链接输出补丁文件合集,最后对所述补丁文件合集进行补丁验证,完成补丁管理。本发明专利技术使用少量的时间成本,成倍提高了产品端对应产品迭代更新效率。

【技术实现步骤摘要】
一种补丁管理方法和系统
本专利技术属于软件管理
,具体涉及一种补丁管理方法及系统。
技术介绍
小规模的嵌入式解决方案,通常以ARMCortexM系列处理器为主。这一类产品,为了做到成本的极致,更加偏向以ROM作为代码的存储代码介质,从而避免使用成本高30%左右的片上闪存。ROM版本的芯片产品在生产过程中必须烧录代码,后续使用过程中则无法继续更新代码;而以片上闪存版本为主的芯片产品则可以多次擦写代码的内容。在以ROM作为代码存储器的系统方案中,由于ROM不可改写的天然特性,一旦代码中有BUG,哪怕是个很小的错误,都会给整个系统带来不可挽回的后果,甚至无法使用。为了避免因要重新定制ROM而流片所导致的巨额物料成本,以及流片所带来的时间成本。补丁(PATCH)模块利用ARMCortex-M系列处理器的FPB(FlashPATCHandBreakpoint)单元所提供的代码重映射功能和Thumb-2指令集中灵活多样的分支指令,实现了所谓的为ROM打补丁的功能。对基于C语言开发的软件产品,在ROM上是采用BINARY方式进行存储的,BINARY文件是ARMCC或GCC编译生成的,其是ARM官方定义的一种文档格式;一个补丁由一个或多个BIN文件构成,而一个生成BIN文件源码是由一个或多个C文件组成;通常C源码可能由多人进行维护。嵌入式软件开发过程中,软件代码通常要进行统一管理,现代码管理工具有ConcurrentVersionSystem、ApacheSubversion、GitLab等等,那么在补丁文件的开发过程中,也同样需要使用代码管理工具进行统一管理。而一般情况下由现场技术支持工程师(FAE)或者质量管理(QA)负责人会提供系统根据系统缺陷或需求、给研发工程师派发研发任务,而研发工程师会根据任务,从代码服务管理器下载当前版ROM芯片tape-out时Freeze的代码到本地,修改对应代码并生成补丁文件,补丁文件待验证通过后,则会将修改完的代码提交到FreezeErrata代码服务管理器。然而研发任务下发的时间不同以及验证的时间不同,则会新旧逻辑生成的BIN文件则会存在逻辑上的覆盖,则会导致缺陷的二次产生。因此,需要一种补丁管理系统来解决补丁间相互逻辑覆盖引起二次或者多次缺陷,从而减少造成补丁执行异常,导致增加二次缺陷的可能性的问题产生。如图1所示,函数A1,在第M个时间点、第N个时间点、第X个时间点都对函数A1进行了函数Code的修改,其所修改的区域是一样的,第M个时间点和第N个时间点的修改是小改动,第X个时间点是大改动。值得注意的是,M、N两个时间点的修改是不耦合的,而第X个时间的修改是耦合或者不耦合M、N修改Code,加入仅是耦合M、N修改,则进行补丁合并即可,这个比较简单;如不耦合M、N处修改,其合并的可能性就不存在,必须允许这个冲突存在。如图1所示,一般ROM版芯片存储区域有三个ROM、RAM、FLASH,ROM前面有介绍,RAM是易丢失性(下电丢失),FLASH中能存储一些必要的配置信息;其三者存储空间大小顺序为ROM>FLASH>RAM(小规模的ROM版芯片ROM物理存储空间不会超过1MB、FLASH不会超过512KB、RAM不会超过200KB,都是非常小的尺寸,这里不是说,本方案不适合大尺寸ROM的芯片,反之亦然)。在上电后,程序BootLoader把patch从FLASH中搬运到RAM指定区域。当ROM中程序执行到某个缺陷区域时(根据执行的入口地址或者一定的规则),则直接跳转到RAM的Patch区域进行执行,当执行完成后,则直接跳转到ROM区域(Patch的返回地址)。如图2所示,为传统的ROM补丁生成、验证、提交过程;经由任务下发,到研发工程师到指定服务器取ROM芯片对应的tapeout时的freeze源码,C源码通过编译器进行编译,编译器可选用ARM公司的Keil工具链中的ARMCC或者开源的GCC,最后得到补丁BIN文件。提交到测试平台耦合到芯片平台中进行验证。验证通过后补丁BIN文件以及补丁源码文件由研发提交对应的代码管理器。所有步骤流程都是分离的,可管理性差、无追溯性。
技术实现思路
针对上述问题,本专利技术提出一种补丁管理方法及系统,能够使用少量的时间成本,成倍提高产品端对应产品迭代更新效率。为了实现上述技术目的,达到上述技术效果,本专利技术通过以下技术方案实现:第一方面,本专利技术提供了一种补丁管理方法,包括:获取功能需求;基于获取到的功能需求形成补丁需求设计文档,并将所述补丁需求设计文档上传至补丁管理模块;基于所述补丁需求设计文档完成测试补丁代码和补丁代码的编写;当成功基于所述测试补丁代码完成对补丁代码测试后,将所述补丁代码上传至补丁管理模块,供所述补丁管理模块基于补丁代码生成补丁列表,基于所述补丁列表进行补丁选择,并对与补丁列表中被选中的补丁对应的补丁代码进行编译和链接输出补丁文件合集,最后对所述补丁文件合集进行补丁验证,完成补丁管理。可选地,所述补丁需求设计文档中包括设计逻辑、预期目标和验证案例。可选地,所述方法还包括:当基于所述测试补丁代码无法完成对补丁代码测试,则修改所述补丁代码。可选地,所述基于所述补丁需求设计文档完成测试补丁代码的编写为:基于所述需求设计文档中的验证案例,以及与所述补丁相关的所有函数定义或全部类型定义,编写出测试补丁代码。可选地,所述基于所述补丁需求设计文档完成补丁代码的编写为:基于所述需求设计文档中的设计逻辑,以及与所述补丁相关的所有函数定义或全部类型定义,编写出测试补丁代码。第二方面,本专利技术提供了一种补丁管理方法,包括:获取补丁代码,并形成补丁列表;所述补丁代码按照补丁功能进行区分并存储,每个补丁功能含有N个补丁代码文件或者M个公共资源文件,N>0,M≥0;基于所述补丁列表,进行管理权限设计;基于所述补丁列表进行功能补丁选择;对与补丁列表中被选中的功能补丁对应的补丁代码进行编译和链接输出补丁文件合集;对所述补丁文件合集进行补丁验证,完成补丁管理。可选地,所述公共资源文件用于供N个补丁代码文件共同调用。可选地,所述对补丁列表中被选中的补丁代码,进行编译和链接输出补丁文件合集,具体为:对补丁列表中被选中的补丁代码,调用ARMCC或GCC编译进行编译、链接输出补丁文件合集。可选地,所述补丁列表的形成方法包括:获取补丁代码文件;顺次加载各补丁对应的补丁代码文件,同时加载与各补丁相对应的补丁手册,所述补丁手册中包含了各补丁的相关信息;读取补丁手册中的设定信息,若发现某些信息未填写或填写不符合要求,则突出显示当前补丁,且不将当前补丁的手册信息更新至补丁列表中,否则,将当前补丁的手册信息更新至补丁列表中,最终形成补丁列表。可选地,所述基于所述补丁列表进行补丁选择包括以下步骤:...

【技术保护点】
1.一种补丁管理方法,其特征在于,包括:/n获取功能需求;/n基于获取到的功能需求形成补丁需求设计文档,并将所述补丁需求设计文档上传至补丁管理模块;/n基于所述补丁需求设计文档完成测试补丁代码和补丁代码的编写;/n当成功基于所述测试补丁代码完成对补丁代码测试后,将所述补丁代码上传至补丁管理模块,供所述补丁管理模块基于补丁代码生成补丁列表,基于所述补丁列表进行补丁选择,并对与补丁列表中被选中的补丁对应的补丁代码进行编译和链接输出补丁文件合集,最后对所述补丁文件合集进行补丁验证,完成补丁管理。/n

【技术特征摘要】
1.一种补丁管理方法,其特征在于,包括:
获取功能需求;
基于获取到的功能需求形成补丁需求设计文档,并将所述补丁需求设计文档上传至补丁管理模块;
基于所述补丁需求设计文档完成测试补丁代码和补丁代码的编写;
当成功基于所述测试补丁代码完成对补丁代码测试后,将所述补丁代码上传至补丁管理模块,供所述补丁管理模块基于补丁代码生成补丁列表,基于所述补丁列表进行补丁选择,并对与补丁列表中被选中的补丁对应的补丁代码进行编译和链接输出补丁文件合集,最后对所述补丁文件合集进行补丁验证,完成补丁管理。


2.根据权利要求1所述的一种补丁管理方法,其特征在于:所述补丁需求设计文档中包括设计逻辑、预期目标和验证案例。


3.根据权利要求2所述的一种补丁管理方法,其特征在于:所述方法还包括:当基于所述测试补丁代码无法完成对补丁代码测试,则修改所述补丁代码。


4.根据权利要求2所述的一种补丁管理方法,其特征在于:所述基于所述补丁需求设计文档完成测试补丁代码的编写为:
基于所述需求设计文档中的验证案例,以及与所述补丁相关的所有函数定义或全部类型定义,编写出测试补丁代码。


5.根据权利要求1所述的一种补丁管理方法,其特征在于:所述基于所述补丁需求设计文档完成补丁代码的编写为:
基于所述需求设计文档中的设计逻辑,以及与所述补丁相关的所有函数定义或全部类型定义,编写出测试补丁代码。


6.一种补丁管理方法,其特征在于,包括:
获取补丁代码,并形成补丁列表;所述补丁代码按照补丁功能进行区分并存储,每个补丁功能含有N个补丁代码文件或者M个公共资源文件,N>0,M≥0;
基于所述补丁列表,进行管理权限设计;
基于所述补丁列表进行补丁选择;
对与补丁列表中被选中的补丁对应的补丁代码进行编译和链接输出补丁文件合集;
对所述补丁文件合集进行补丁验证,完成补丁管理。


7.根据权利要求6所述的一种补丁管理方法,其特征在于:所述公共资源文件用于供N个补丁代码文件共同调用。


8.根据权利要...

【专利技术属性】
技术研发人员:邹世彬熊焱吴殿侠
申请(专利权)人:无锡中感微电子股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1