将Codewarrior的内联汇编程序转换为GCC内联汇编程序

问题描述 投票:-1回答:1

我正在执行一项任务,将一个大型项目从旧的Codewarrior IDE迁移到使用GCC 4.9编译器的NXP中的S32DS。不幸的是,由于从代码战士到GCC,内联汇编的语法完全不同,因此我很难在S32DS中编译内联汇编代码。有没有解决此问题的想法,而无需逐句重写?任何快速翻译工具都可以作为快捷方式吗?谢谢!

gcc inline-assembly gcc4 nxp-microcontroller codewarrior
1个回答
0
投票

您的选择包括移植到纯C(通常最适合内联汇编,这是对旧的错误编译器进行的性能优化,但是现代编译器可以自行完成。或者与另一个ISA无关。

否则,您必须移植到独立的asm函数或GNU C内联asm语法。独立的asm函数避免了必须正确获取所有约束的情况,对于较大的块可能是一个不错的选择。


Asm到asm的转换通常不存在,尤其是GNU C内联asm不存在。 (或者至少我从未见过有人在堆栈溢出中提到一个)。BTW,GCC4.9已经很老了。 GCC7和8具有一些不错的新优化功能,例如加载/存储合并(使用一个全寄存器宽度的加载或存储来加载/存储多个窄结构或数组成员)。如果您没有可用的代码库,建议您从当前的GCC版本开始,这样就不会有编译器更改引入回归的风险。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.