[发明专利]openEular开源系统的内核及BSP移植方法在审
申请号: | 202110178098.X | 申请日: | 2021-02-08 |
公开(公告)号: | CN112860316A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 罗云翔;硕南;王志强;张天保 | 申请(专利权)人: | 中科院软件研究所南京软件技术研究院 |
主分类号: | G06F8/76 | 分类号: | G06F8/76 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 陈月菊 |
地址: | 211135 江苏省南京市麒麟科*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | openeular 系统 内核 bsp 移植 方法 | ||
1.一种openEular开源系统的内核及BSP移植方法,其特征在于,所述移植方法包括以下步骤:
S1,从芯片对应的sdk中获取相关patch1集合,该patch1集合包括所有支持芯片各模块功能的程序源代码系列patch;
S2,对patch1集合进行分析,剔除其中已经合并至openEular开源系统中的部分代码,生成patch2集合;
S3,采用git工具将patch2集合中每条patch进行合并处理;
S4,将步骤S3的处理结果合并到openEular开源系统中,在此基础上对系统进行编译和调试。
2.根据权利要求1所述的openEular开源系统的内核及BSP移植方法,其特征在于,步骤S2中,所述剔除其中已经合并至openEular开源系统中的部分代码,生成patch2集合的过程包括以下步骤:
S21,提取patch1集合中每个commit中的subject字符串,生成一定量的检索依据,将第i个检索依据定义为title(i),i=1,2,…,n,n为从patch1集合中提取的检索依据的总数;
S22,依次选取每个检索依据,在目标系统即openEular开源系统中进行检索查询比对,如果目标系统中有相同的检索依据,则将该检索依据对应的patch从patch1集合中删除;
S23,整合剩余的patch集合生成patch2集合,作为后续系统移植的代码资源。
3.根据权利要求1所述的openEular开源系统的内核及BSP移植方法,其特征在于,步骤S22中,所述依次选取每个检索依据,在目标系统即openEular开源系统中进行检索查询比对,如果目标系统中有相同的检索依据,则将该检索依据对应的patch从patch1集合中删除是指:
采用自动化脚本,对openEular开源系统汇总的log进行逐个对比,如果存在与提取得到的subject字符串相同的commit的subject字符串,将该subject字符串对应的patch从patch1集合中删除。
4.根据权利要求1所述的openEular开源系统的内核及BSP移植方法,其特征在于,步骤S3中,所述采用git工具将patch2集合中每条patch进行合并处理的过程包括以下步骤:
S31,在执行过程中,实时判断是否出现冲突,如果出现冲突,转入步骤S32,否则,执行合并流程至合并完成,结束流程;
S32,判断当前冲突的冲突类型,如果冲突类型为上下文冲突,转入步骤S33,如果冲突类型为代码语义冲突,转入步骤S34;
S33,强制合并,继续执行合并流程直至合并完成,结束流程;
S34,判断代码语义冲突类型:
如果冲突类型为API接口的内核版本系统不一致带来的兼容问题,根据具体的API接口参数进行比较处理;如果API接口是唯一或少量被其他模块所调用,将目标系统的API按本次patch2集合中的变更进行修订;
如果冲突类型为修改的API在目标系统中大量被其他各种模块所调用带来的问题,修改patch2集合中的API,保留目标系统中接口,将patch2中API的传递参数以及函数体内部的实现进行修订改变;修订过程包括:消化目标系统中的函数语义理解函数功能,在满足目标系统中的函数参数和功能不变的情况下,修改patch2中的参数和函数内部逻辑,确保两者函数形式不一但功能一致性;
如果冲突类型为函数内部实现问题发生改变,在不改变函数本意和执行流程的情况下,修改patch2中的函数内容;
如果冲突类型为其他情况,遵循函数本身语义及实现内容,在不改变内核机制及驱动实现模式的情况下对函数进行上下文调整,通过删减和增加部分代码,满足函数功能相同但形式表现允许不同的修订原则;
在消除冲突后,继续执行合并流程直至合并完成,结束流程。
5.根据权利要求1所述的openEular开源系统的内核及BSP移植方法,其特征在于,步骤S4中,对系统进行编译过程包括以下步骤:
验证系统移植的效果和完整性,如果引入了未定义的变量,对该变量的依赖patch进行检索一并引入,直至编译完全通过。
6.根据权利要求1所述的openEular开源系统的内核及BSP移植方法,其特征在于,步骤S4中,对系统进行调试的过程包括以下步骤:
对芯片的各种外设功能和设备性能进行检查验证,如果出现功能问题,重新从sdk中查找相关功能patch来弥补存在的功能问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科院软件研究所南京软件技术研究院,未经中科院软件研究所南京软件技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110178098.X/1.html,转载请声明来源钻瓜专利网。