一种从sparc平台至k-ux平台的c/c++应用迁移工具的制作方法_2

文档序号:8208955阅读:来源:国知局
]附图1为本发明的结构示意图。
【具体实施方式】
[0013]下面结合附图和具体实施例对本发明作进一步说明。
[0014]本发明提出一种从SPARC平台至K-UX平台的C/C++应用迀移工具,可跨平台安装,通过扫描源代码与makefile文件,根据建立的CPU指令集差异规则、操作系统差异规则和编译器差异规则,识别因平台差异造成的源代码、makefile文件与CPU指令集、操作系统、编译器的失配,提出修改建议,最终输出扫描结果,扫描结果中体现所有识别到的源代码失配及失配修改建议,同时可在扫描结果中作出手动修改,手动修改结果可在源代码与makefile文件中生效。如附图1所示,该工具的结构包括:
迀移工具软件架构,该架构基于JAVA语言实现,所述架构包括交互模块、均与交互模块相连接的CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别模块和修改建议模块,CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别模块均连接上述修改建议模块;其中:
所述交互模块用于人机交互,把手动设定的信息发送至CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别模块,接收CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别模块发送来的实时扫描信息并显示界面上,交互模块接收修改建议模块发送的失配源代码、失配源代码位置以及修改建议信息,并将其显示在界面上,同时允许用户在界面上针对每项失配的修改建议进行确认和对每项失配进行手动修改,经用户确认后将确认信息与修改信息发送至修改建议模块;
(PU指令集差异识别模块接收交互模块发送的手动设定信息,根据手动设定信息及CPU指令集差异规则,扫描程序源代码与makefile文件,识别程序源代码与makefile文件中因源平台与目标平台的CPU指令集差异造成的失配,生成自动修改建议,并将所有的失配信息及修改建议发送至修改建议模块,同时,CPU指令集差异识别模块会将扫描状态实时发送至交互模块供交互模块实时显示;
操作系统差异识别模块接收交互模块发送的手动设定信息,根据手动设定信息及SPARC与K-UX操作系统差异规则,扫描程序源代码与makefile文件,识别程序源代码与makefile文件中因源平台与目标平台的操作系统差异造成的失配,生成自动修改建议,并将所有的失配信息及修改建议发送至修改建议模块,同时,操作系统差异识别模块会将扫描状态实时发送至交互模块供交互模块实时显示;
编译器差异识别模块接收交互模块发送的手动设定信息,根据手动设定信息及SPARCC编译器与K-UX C编译器差异规则,扫描程序源代码与makefile文件,识别程序源代码与makefile文件中因源平台与目标平台的编译器差异造成的失配,生成自动修改建议,并将所有的失配信息及修改建议发送至修改建议模块,同时,编译器差异识别模块会将扫描状态实时发送至交互模块供交互模块实时显示;
修改建议模块接收CPU指令集差异识别模块、操作系统差异识别模块以及编译器差异识别模块发送的失配信息及自动修改建议后,将失配源代码、失配源代码位置以及修改建议整理成表格输出至交互模块,并在收到交互发送的确认信息与手动修改信息后,使这些修改结果在程序源代码和makefile文件中生效,并保存新的源代码和makefile文件。
[0015]所述交互模块第一输入/输出端口与CPU指令集差异识别模块第一输入/输出端口连接,交互模块第二输入/输出端口与操作系统差异识别模块第一输入/输出端口连接,交互模块第三输入/输出端口与编译器差异识别模块第一输入/输出端口连接,交互模块第四输入/输出端口与修改建议模块第四输入/输出端口连接,CPU指令集差异识别模块第二输入/输出端口与修改建议模块第一输入/输出端口连接,操作系统差异识别模块第二输入/输出端口与修改建议模块第二输入/输出端口连接,编译器差异识别模块第二输入/输出端口与修改建议模块第三输入/输出端口连接。
[0016]所述CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别模块均生成相应规则,其具体规则为:
CPU指令集差异规则,该CPU指令集差异规则包括端模式规则、数据长度规则、数据类型规则,它是CPU指令集差异识别模块扫描程序源代码与makefile文件时,识别由SPARC平台与K-UX平台的CPU指令集差异造成的代码失配的判定标准,以及提供失配代码修改建议的依据;
SPARC与K-UX操作系统差异规则,包括进程处理规则、文件操作规则、指针操作规则,其是操作系统差异识别模块扫描程序源代码与makefile文件时,识别由SPARC平台与K-UX平台的操作系统差异造成的代码失配的判定标准,以及提供失配代码修改建议的依据;SPARC C编译器与K-UX C编译器差异规则,该规则是编译器差异识别模块扫描程序源代码与makefile文件时,识别由SPARC平台与K-UX平台的编译器差异造成的代码失配的判定标准,以及提供失配代码修改建议的依据。
[0017]所述CPU指令集差异规则中,端模式规则用于识别因SPARC平台与K-UX平台端模式差异导致运行结果错误的失配源代码,CPU指令集差异识别模块根据端模式规则生成端模式失配源代码修改建议;数据长度规则用于识别因SPARC平台与K-UX平台端数据长度差异导致运行结果错误的失配源代码,CPU指令集差异识别模块根据数据长度规则生成数据长度失配源代码修改建议;数据对齐规则用于识别可能因SPARC平台与K-UX平台端数据对齐差异导致运行结果错误的失配源代码,CPU指令集差异识别模块根据数据对齐规则生成数据对齐失配源代码修改建议。
[0018]所述SPARC与K-UX操作系统差异规则中,进程处理规则用于识别因SPARC平台与K-UX平台进程处理差异导致运行结果错误的失配源代码,同时操作系统差异识别模块根据进程处理规则生成进程处理失配源代码修改建议;文件操作规则用于识别因SPARC平台与K-UX平台文件操作差异导致运行结果错误的失配源代码,同时操作系统差异识别模块可根据文件操作规则生成文件操作失配源代码修改建议;指针操作规则用于识别因SPARC平台与K-UX平台指针操作差异导致运行结果错误的失配源代码,同时操作系统差异识别模块根据指针操作规则生成指针操作失配源代码修改建议。
[0019]基于附图1所示的从SPARC平台至K-UX平台的C/C++应用迀移工具,其具体工作过程为:
1)所述从SPARC平台至K-UX平台的C/C++应用迀移工具启动后,通过交互模块进行人机交互;
2)通过交互模块界面手动设定cpu信息,包括SPARC平台使用的CPU型号和K-UX平台使用的CPU型号;
3)通过交互模块界面手动设定操作系统信息,包括SPARC平台使用的操系统版本号、内核版本号和K-UX平台使用的操作系统版本号、内核版本号;
4)通过交互模块界面手动设定编译器信息,包括SPARC平台使用的编译器及其版本和K-UX平台使用的编译器及其版本;
5)通过交互模块界面确认CPU、操作系统、编译器的设定信息;
6)通过交互模块界面手动选择拟迀移的应用源代码及其makefile文件;
7)交互模块将手动设定的CPU、操作系统、编译器信息,以及手动选择的应用源代码与makefile文件发送至CPU指令集差异识别模块、操作系统差异识别模块、编译器差异识别丰吴块;
8)CPU指令集差异识别模块根据交互模块发送的CPU手动设定信息,扫描应用源代码与makefile文件,识别应用源代码与makefile文件中因源平台与目标平台的CPU指令差异造成的失配,生成自动修改建议,并将所有的失配信息及修改建议发送至修改建议模块,同时,操作系统差异识别模块会将扫描状态实时发送至交互模块供交互模块实时显示,发送的扫描状态包括扫描代码的行数和识别到的失配的数量;
9)操作系统差异识别模块接收交互模块发送的手动设定信息,根据手动设定信息及操作系统差异规则,扫描程序源代码与makefile文件,识别程序源代码与makefile文件中因源平台与目标平台的操作系统差异造成的失配,生成自动修改建议,并将所有的失配信息及修改建议发送至修改建议模块,同时,操作系统差异识别模块会将扫描状态实时发送至交互模块供交互模块实时显示,发送的扫描状态包括扫描代码的行数和识别到的失配的数量;
10)编译器差异识别模块接收交互模块发送的手动设定信息,根据手动设定信息及编译器差异规则,扫描程序源
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1