将现有C代码移植到ARMv7

将现有C代码移植到ARMv7,c,embedded,arm,C,Embedded,Arm,我最近收到了一个音频解码器的源代码,当用MSVC编译时,它在Windows上可以很好地执行 我的任务是将这个解码器(用c编写)移植到ARMv7平台 因为我对这个领域完全陌生,我不知道该怎么做。我已经在谷歌上搜索了很多,但找不到适用于我的具体案例的内容 任何关于如何实现这样一个端口的建议都将不胜感激。编译它,看看什么中断是一个好的开始 ARM是一个32位的目标,现有的基于ARM的微控制器总是像x86一样使用小端,因此在移植代码时通常很少出现问题 如果代码对Win32进行操作系统调用,或者使用未移植

我最近收到了一个音频解码器的源代码,当用MSVC编译时,它在Windows上可以很好地执行

我的任务是将这个解码器(用c编写)移植到ARMv7平台

因为我对这个领域完全陌生,我不知道该怎么做。我已经在谷歌上搜索了很多,但找不到适用于我的具体案例的内容


任何关于如何实现这样一个端口的建议都将不胜感激。

编译它,看看什么中断是一个好的开始

ARM是一个32位的目标,现有的基于ARM的微控制器总是像x86一样使用小端,因此在移植代码时通常很少出现问题

如果代码对Win32进行操作系统调用,或者使用未移植到ARM的第三方库,那么您当然需要删除这些依赖项或目标环境的端口。同样,如果代码使用基于PC的硬件,如声卡,则肯定需要进行调整


如果代码质量在第一个实例中具有足够的可移植性,那么简单处理数据的代码和算法应该直接移植。但是,需要避免未定义或实现定义的编译器行为,因为编译器和目标之间可能存在差异。

对其进行编译,并查看哪些中断是一个好的开始

ARM是一个32位的目标,现有的基于ARM的微控制器总是像x86一样使用小端,因此在移植代码时通常很少出现问题

如果代码对Win32进行操作系统调用,或者使用未移植到ARM的第三方库,那么您当然需要删除这些依赖项或目标环境的端口。同样,如果代码使用基于PC的硬件,如声卡,则肯定需要进行调整


如果代码质量在第一个实例中具有足够的可移植性,那么简单处理数据的代码和算法应该直接移植。但是,需要避免未定义或实现定义的编译器行为,因为编译器和目标之间可能存在差异。

如果只是C代码,没有特定于操作系统的代码,那么可能只是重新编译。如果它使用Windows API,那么你将有更多的工作要做。你能详细说明一下你有什么问题吗?汇编API调用?寻找合适的交叉编译器?完全其他的东西?为什么不把代码放到ARMIDE中编译,看看会发生什么?由于问题要求“建议”,以上所有内容都被视为回答,而不是评论。感谢您的所有建议。。。它给了我一些开始的东西。如果它只是C代码,没有操作系统特定的东西,那么它可能只是一个重新编译。如果它使用Windows API,那么你将有更多的工作要做。你能详细说明一下你有什么问题吗?汇编API调用?寻找合适的交叉编译器?完全其他的东西?为什么不把代码放到ARMIDE中编译,看看会发生什么?由于问题要求“建议”,以上所有内容都被视为回答,而不是评论。感谢您的所有建议。。。它给了我一些开始的东西。ARM本身并不是32位的目标。有一个ARM64。@rubenvb:armv7是32位的。我被纠正了。ARMv8似乎也可以是64位的,只会在2014年左右出现。@Clifford:非常感谢您的回答,这给了我一个关于如何继续的好主意。谢谢。很快我会照我说的做,把我遇到的问题贴出来,我希望你也能给我一些建议。谢谢,lotARM本身不是32位目标。有一个ARM64。@rubenvb:armv7是32位的。我被纠正了。ARMv8似乎也可以是64位的,只会在2014年左右出现。@Clifford:非常感谢您的回答,这给了我一个关于如何继续的好主意。谢谢。很快我会照我说的做,把我遇到的问题贴出来,我希望你也能给我一些建议。谢谢