应该使用哪个编译器将 C 代码移植到 ARM?

     2023-02-16     142

关键词:

【中文标题】应该使用哪个编译器将 C 代码移植到 ARM?【英文标题】:Which compiler should be used for porting C code to ARM? 【发布时间】:2013-03-07 07:07:28 【问题描述】:

我是 ARM 的新手。我已经编写了 C 代码,但我希望将代码移植到在所有 ARM 处理器上运行的 ARM。我将开发高端应用程序,例如在智能手机/平板电脑上运行的应用程序。你们能说出哪个是最好的编译器吗?我听说过 RVDS,但这似乎很昂贵。

我的另一个问题是:我可以使用 Microsoft Visual Studio 2008 像 Neon 一样对 ARM Intrinsic 进行编程吗? RVDS 还有其他替代方案吗?

非常感谢您的建议。

【问题讨论】:

您应该更多地了解 ARM 的产品组合以及您的目标操作系统是什么? 【参考方案1】:

多个版本的 gcc 工具链可用于 ARM 处理器。您需要确定代码的确切目标,例如:

哪个处理器或一组处理器?支持哪些指令集和扩展? (有很多类似ARMv6ARMV7ARMv7a)。其中一些可能支持NEON,而另一些可能没有。 哪种 FPU 支持 - hard FPsoft FP ? 什么样的操作系统环境? Linux ? Android ? Bare metal ? 哪个 C 库 - glibcuclibcbionic libc 或其他?

最后两个是内置在工具链中的,不能修改。但是可以使用 gcc 中 ARM 特定的-m 标志来控制选择准确的指令集和优化。

像 Ubuntu 这样的发行版已经将 ARM 工具链作为其存储库的一部分。你也可以试试看:

sudo apt-get install gcc-arm-linux-gnueabi

【讨论】:

将复杂的原生应用程序编译到 Android ARM 的完整方法

...了解更多关于将C应用程序移植到原生ARM以在Android设备上使用的信息。我可以使用源代码附带的预构建工具链来制作简单的程序,但是如何将这个工具链用于 查看详情

紧急求助,关于arm版本下qwt库移植出现的错误

...确保在宿主机上已经正确安装好了你目标板上对应的交叉编译器,例如arm-linux-gcc。然后用这个交叉编译器编译qt源码包(三步:configure,make,makeinstall)这样就会生成目标板上所对应的qt运行库,将编译好的目标板qt运行库拷贝到目... 查看详情

移植madplay到arm板(代码片段)

一、环境和软件介绍1、主机环境:Ubuntu16.042、交叉编译器: gccversion4.4.1(SourceryG++Lite2009q3-67)3、ARM板:kernel:2.6.35,SoC:S5PV2104、软件包: zlib-1.2.3 、 libid3tag-0.15.1b.tar.gz 、 libmad-0.15.1b.tar.gz 、 madplay-... 查看详情

交叉编译vim并移植到arm嵌入式linux系统

...基于busybox的文件系统中只带了vi工具,本文主要介绍怎么移植vim工具到基于busybox的制作的rootfs中。 一、编译环境:    Host机:ubuntu-16.10 查看详情

安装交叉编译工具(代码片段)

...目录,解压后发现在当前目录下多了一个usr目录,如果不使用-C.的话就会解压到根目录。进入usr/local/arm/arm-none-linux-gnueabi/bin目录下ls可以看到解压出来的交叉编译工具:  之所以将交叉编译工具解压到当前目录下是因为我不想... 查看详情

对于可移植代码,我应该使用 long long 还是 int64_t?

...英特尔,64位)和具有开源C的Linux机器上可靠地编译和C++编译器,最终用户无需做太多额外的工作。Wind 查看详情

将 POSIX C 代码移植到 Windows

...数据流并解析传入的数据。该软件是为POSIX系统编写的(使用termios),并遵循使用串行i/o的标准步骤使用open()打开串口设备配置通信参数(termios)在文件句柄(fcntl)上设置阻塞模式在串行接口上​​执行 查看详情

将 C 编译从 MinGW 移植到 VisualStudio(nmake)

】将C编译从MinGW移植到VisualStudio(nmake)【英文标题】:portingCcompilationfromMinGWtoVisualStudio(nmake)【发布时间】:2011-12-1519:22:43【问题描述】:我目前在大学的工作是将C程序从MinGW(windows)移植到VisualStudio(nmake)。我有一个非常相似的C程... 查看详情

求嵌入式linux开发详细流程(步骤)?

...出详细的步骤列表啊特别是开发环境之类请告知具体哪个编译器什么版本只要步骤不要贴一大堆介绍性的文章linux应该选择什么版本(对实时性有一定的要求)请最好留下联系方式吧如果我都清楚了还会追加分数前三个人都是白... 查看详情

linux移植usbch340驱动到arm板,并作测试(代码片段)

...生成ko驱动3.加载ch340驱动三、编写程序验证驱动能否正常使用linux-arm开发板在引出USB接口的时候,可外接U盘、键鼠等USB设备。同时,单片机开发中常用CH340芯片进行 查看详情

如何使用 Alchemy 将 C++ 移植到 swf?

】如何使用Alchemy将C++移植到swf?【英文标题】:HowtoportC++toswfwithAlchemy?【发布时间】:2010-02-1218:56:11【问题描述】:Alchemy允许用户编译旨在在开源ActionScript虚拟机(AVM2)上运行的C和C++代码。虽然这个想法看起来很有希望,但有没... 查看详情

wcstof 添加了哪个版本的VC++

...时间】:2019-01-0705:46:58【问题描述】:我们在使用VS++2017编译器构建的产品中使用以下代码。wchar_tcurrentVersion[30];wchar_t*pEnd;d1=wcstof(currentVersion,&pEnd`);代码正在编译并成功运行。现在我必须将此代码移植到我们 查看详情

将 C++ OpenGL 帧缓冲区代码移植到 LWJGL - 我使用啥类?

】将C++OpenGL帧缓冲区代码移植到LWJGL-我使用啥类?【英文标题】:PortingC++OpenGLFramebufferCodeToLWJGL-WhatClassDoIUse?将C++OpenGL帧缓冲区代码移植到LWJGL-我使用什么类?【发布时间】:2013-10-2817:30:40【问题描述】:我正在尝试使用thistutoria... 查看详情

自动将 C 代码的转换元素移植到 C++

...斯【问题讨论】:在将C风格的代码转换为C++时,也可以使用C++风格的强制转换:Aa*=static_cast(b);几乎是***.com/que 查看详情

如何把51程序移植到arm?

如何把51的C语言程序移植到LM3SXXXX的arm7中,arm中提供了很多外设驱动程序(API函数),可是不太会用。本人新手希望能有人解惑,谢谢!  一、准备  busybox1.14.1  qt-embedded-linux-opensource-src-4.5.1  tslib1.4  gccversion4.3.2(Sou... 查看详情

腾讯微服务框架tars成功移植至arm架构

...建稳定可靠的分布式应用。TARS在腾讯经过10多年的大规模使用和迭代,广泛应用于腾讯的在线社交、金融服务、边缘计算、汽车、视频、游戏、地图、应用市场和安全等数百项核心业务中。2018年6月,腾讯将TARS捐赠给Linux基金会... 查看详情

基于安凯3760e的sdk-01(代码片段)

...Lists.txt,并且编辑cmake_minimum_required(VERSION2.8)#cmake最低使用版本#编译工具链的路径set(CMAKE_C_COMPILER"/opt/arm-anykav500-linux-uclibcgnueabi/usr/bin/arm-anykav500-linux-uclibcgnueabi-gcc")set(CMAKE_CXX_COMPILER"/opt/arm-anykav500-linux-uclibcgnueabi/usr/bin... 查看详情

为 64 位 arm 设计选择 gcc 编译器

】为64位arm设计选择gcc编译器【英文标题】:ChoosinggccCompilerfor64-bitarmdesign【发布时间】:2017-08-2808:27:42【问题描述】:我一直在32位iMX6qSABRE-SD板(ARMCortex-A9)上进行一些裸机编程。我使用“arm-none-eabi”作为工具链。现在,我想... 查看详情