多指令转换
本示例主要是演示如何使用鲲鹏DevKit应用迁移工具的源码迁移功能进行嵌入式汇编多指令转换,帮助用户基于该工具快速实现源码迁移嵌入式汇编多指令转换。
扫描源代码
- 从GitHub或Gitee下载源码包,获取待使用的代码样例。
下载的源码包为devkitdemo-main.zip,解压后的“./devkitdemo-main/Porting_advisor/testdemo/asm_trans/mult_inline_asm”为源码迁移的待扫描代码。
- 在进行源码迁移前,请在x86平台编译修改前的代码。进入实际源码存放目录,以demo_mult_inline_asm为例。执行gcc编译生成二进制文件a.out,执行./a.out生成结果,如图1所示。
- 进入鲲鹏DevKit,在左侧列表中选择“迁移 > 源码迁移”进入源码迁移任务创建页面。
源码迁移服务选择“架构源码迁移”,然后单击“上传”,上传已下载的mult_inline_asm文件夹。其他选项根据实际的情况进行选择,如图2所示。
- 单击“开始迁移”,进行分析并得到扫描分析报告,如图3所示。
修改源代码
- 单击源码迁移报告页面中的“查看建议源码”,如图4所示。
- 单击左侧“文件列表”框中的内容进行查看对象的切换,如图5所示。
- 根据迁移报告修改文件。在“源码迁移建议”页面,检查文件的修改建议,并根据建议进行源代码修改。
在“源码迁移建议”页面,查看gcd.c文件的修改建议,如图6所示。
根据以上建议,单击“Quick Fix > 替换成建议代码”修改后的代码(修改时进行了x86_64分支和aarch64分支的区分处理),如图7所示。
- 根据迁移报告修改文件。在“源码迁移建议”页面,检查文件的修改建议,并根据建议进行源代码修改。
在“源码迁移建议”页面,查看Makefile文件的修改建议,如图8所示。
根据以上建议,Makefile文件中编译命令需增加选项内容“FLAGS = -fsigned-char”。
图9 修改后代码
编译
- 使用SSH远程登录工具登录服务器,执行以下命令进入源码存放路径。
cd /opt/DevKit/workspace/devadmin/porting/sourcecode/mult_inline_asm
/opt:工具安装目录,请根据实际情况替换。
- 执行make,编译执行生成二进制文件gcd,与x86平台运行结果一致,源码迁移成功,如图10所示。
<gcd.c>为迁移工具执行Quick Fix之后的文件,在鲲鹏平台上对该文件执行编译生成二进制文件。在鲲鹏平台和x86平台执行二进制文件产生的结果一致时,则表示迁移成功。
父主题: 示例2:嵌入式汇编翻译








