文章链接:http://embdev.net/topic/129737
我是从这个链接中看到的。觉得有点意思。因为自己用交叉编译器编译的时候。会出现arm-elf,arm-none-eabi,arm-eabi这些选择,倒底它们有什么区别呢?

what is difference between arm-elf and arm-eabi?

Re: what is difference between arm-elf and arm-eabi?
Dan Miller wrote:
> I've been trying, for a couple of days, to build the project which was
> associated with the Embedded.com articles "Building Bare-Metal ARM
> Systems with GNU".  I've been hoping that this will clarify alot of the
> confusion that I've experienced in trying to convert an existing project
> from IAR to gnuarm.
As far as I know the code from the embedded.com tutorial has been tested
with a Codesourcery G++ package (the lite version is free, Codesourcery
gets paid by ARM to improve the GNU tools AFAIK). So maybe this is the
package that should be used to avoid further confusion. Once you have
some basic knowledge of the tools you will see that it is not that
difficult to adapt the code for other GNU-precompiled-packages or
to/from other compilers.
> As it turns out, after three weeks of research,
Three weeks? - Uff.
> I have at least four
> different versions of GNUARM on my system:
> 1. gnuarm (arm-elf)
> 2. winarm (arm-elf) (slightly earlier version than gnuarm)
> 3. Ride (arm-none-eabi)
> 4. Sarm (arm-eabi)
gnuarm (I expect this is a package from gnuarm.org) and "older" versions
of WinARM are very similar. Main differences: WinARM has been created
for "non-cygwin" hosts and uses a slightly different newlib
configuration.
EABI and "old" ABI are different "targets" for which the GNU toolchain
can be build. EABI has been created as a common binary interface so
object code and libraries created with one toolchain/compiler can linked
to a project created with another one. Search on www.arm.com for further
details.
> Ultimately, only ONE of these four packages could actually build the
> project - Ride's arm-none-eabi.
It is well possible that the "Ride binaries" are very similar or even a
copy of the Codesourcery package. So this might be the reason why the
Quantum example-code can be build with this tools without problems.
Until gcc 4.3.0 the Codesourcery package has been the only one which
offered Cortex-M3 support and AFAIK Ride supports STM32 too. Just
speculation, I have never used the Ride tools. I don't know "Sarm" so I
can not comment on it at all.
> All others would fail in different
> ways.
You did not write the error-messages created during the attempts with
the other packages so it's difficult to analyze the reason why they
failed.
If would be interesting to see the error-messages when you try to build
with DevkitARM R23 or WinARM test-version 20080831.
> What's interesting, though, is that the output of the project,
> using arm-none-eabi, is a .elf file!!!
The file-extension is not important. elf and axf are just the usual
extensions. Just look into the makefile. Why "!!!"? What did you expect?
> So... what is the difference between arm-elf, arm-none-eabi, and
> arm-eabi ???
arm-elf is usually the prefix for GNU toolchains created for the arm-elf
target, arm-none-eabi for the target arm-eabi. But this does not mean
much since one can set the prefix when building the toolchain. At least
eabi should be an indicator that the toolchain has been created for
target arm-eabi.
>Obviously, the "none" in arm-none-eabi does not mean
> no-elf ...
This might be wrong. As far as I know it means "no operating-system" on
the target (for "bare metal") compared to for example arm-linux-elf.
I do understand your confusion, so stay with the GNU package that works
for you to get started. Once you know a little bit about the usage of
the GNU tools you will see that the differences are small and porting
code between them is rather easy.
Porting code from IAR to GNU is a more difficult esp. if the EWARM
compiler-extension have been used.
Re: what is difference between arm-elf and arm-eabi?
>
>> Ultimately, only ONE of these four packages could actually build the
>> project - Ride's arm-none-eabi.
> It is well possible that the "Ride binaries" are very similar or even a
> copy of the Codesourcery package. So this might be the reason why the
> Quantum example-code can be build with this tools without problems.
> Until gcc 4.3.0 the Codesourcery package has been the only one which
> offered Cortex-M3 support and AFAIK Ride supports STM32 too. Just
> speculation, I have never used the Ride tools. I don't know "Sarm" so I
> can not comment on it at all.
>

I can tell you ride use the codesoucery toolchain as delivered.
sarm is the toolchain delivered with Anglia IDEaliST, it is based on
codesoucery but has a few tweaks with newlib.

Cheers
Spen

上面得出了一个结论,arm-elf是GNU的编译工具链。如果你要用arm-eabi的话,最好用newlib这个库。
但是我用newlib库太郁闷了,甚至没有ioctl的操作,所以还是用glibc吧。 文章链接:http://embdev.net/topic/129737我是从这个链接中看到的。觉得有点意思。因为自己用交叉编译器编译的时候。会出现arm-elf,arm-none-eabi,arm-eabi这些选择,倒底它们有什么区别呢?what is difference between arm-elf and arm-eabi? Re: what is difference between arm-elf and arm-eabi? Author: brew install coreutils qemu e2fsprogs nasm m4 autoconf libtool automake bash gcc @10 brew install --cask osxfuse brew install i686- elf - gcc brew tap Arm Mbed/homebrew-formulae brew install arm -none-e abi -gc
stm32_mpr121 基于libopencm3库的STM32F4设备的MPR121驱动程序。 在 arm -none-e abi - gcc 工具链下开发。 该演示应用程序是在具有MPR121分支板的STM32F4 Discovery板上开发的,如果成功初始化了MPR121设备,则将绿色LED点亮,否则将红色LED点亮。 然后,连续检查电极1和11的状态,如果按下,则分别打开蓝色和橙色LED。 为了编译项目,必须下载libopencm3库 。 该项目文件夹必须位于libopencm3所在的文件夹中。 对于编译项目运行: $ make 并为刷新STM32F4Discovery开发板而运行: $ make flash 默认的工具链与libopencm3相同,后者是 arm -none-e abi / arm - elf 工具链。 实现将电极用作GPIO并在init上配置电极参数的功能。
原文:http://blog.chinaunix.net/uid-25871104-id-2950902.html arm 的交叉 编译器 有三种类型(命名方式): arm - linux -, arm - elf -, arm -e abi arm - linux 一般用于编译 linux 程序,使用glibc库, arm - linux - elf 用于编译uc linux 或其他程序,使用嵌入式库,如uclib或newlib等。
转载:http:// abi tno.me/ com pile-ffmpeg-android-ndk 编译出来只有15k,后来借鉴这篇文章:http://www.cnblogs. com /shaobin0604/archive/2011/08/05/2128619.html成功,期间有一个错误在Android.mk中遗忘了一个依赖文件rtpdec_gxx忘了,根据错误提示解决。 首先创建一个标准...
尽管每天都在调用 linux elf 文件做各种事,但却很少去了解他,最近尝试在orangepi上编译个 elf 到android手机上运行,因为两个CPU都是 ARM v8的.结果运行失败了.遂查找原因.结果挖出这玩意... 以下内容大部分为摘抄整理: 关于 ABI ,E ABI ,O ABI : ABI (application binary interface ) 应用程序二进制接口 一般应用程序是要分各种CPU架构的, ABI 用于对接. 而 ABI 的不同则是 linux 内核和glibc的升级导致的规范变化导致的。不同的 ABI 程序和库
Raspberry Pi / Pi b+ / Pi 2 的裸机示例 此存储库包含一系列用于 Raspberry Pi ( ) 的裸机示例。 示例从简单到复杂编号,后面的许多示例都重用了前面的示例,尤其是 UART。 每个示例都可以使用前缀为“ arm -none-e abi -”的交叉 编译器 在其目录中运行 make 来构建,例如 arm -none-e abi - gcc ,它必须在 PAT H 中。 您可以导出 CROSS 或 CC 和 CXX 以使用不同的 编译器 。 您也可以在顶级目录中运行 make 来构建它们。 每个示例构建一些目标文件,将它们链接到 *. elf 文件并从中创建可引导的 *.img 文件。 您可以将 *.img 文件复制到 SD 卡进行试用。 前几个示例为不同的 Raspberry Pi 模型构建了多种风格,您必须为您的 Raspberry Pi 选择一种。 如果你选错了,不会有什
KW41Z上的OpenThread示例 此存储库包含基于硬件平台的的示例平台驱动程序。 示例平台驱动程序旨在提供支持OpenThread所需的最少代码。 因此,示例平台驱动程序不一定会突出显示平台的全部功能。 下载并安装的。 在Bash终端中,按照以下说明安装GNU工具链和其他依赖项。 $ cd < pat h> $ ./script/bootstrap 在Bash终端中,请按照以下说明来构建kw41z示例。 $ cd < pat h> $ ./script/ build Flash二进制文件 如果构建成功完成,则可以在< pat h>/ build /bin/找到 elf 文件。 您可以使用 arm -none-e abi -objcopy将它们转换为bin文件: $ arm -none-e abi -objcopy -
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
基于python实现的对红葡萄酒质量数据进行探索性分析 对红葡萄酒质量数据进行探索性分析 本数据集包含1599种红酒,11个关于酒的化学成分的变量。至少3名葡萄酒专家对每种酒 进行了评分,分数在0(非常差)到10(非常好)之间 我们使用 R 并应用探索性数据分析技术,从而研究一个变量与多个变量的关系并探索选定数据集的分布、异常值和反常现象。 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------------
要安装 arm -none-e abi -gdb,您可以按照以下步骤进行操作: 1. 首先,您需要访问 ARM 官网并下载最新版本的 ARM GNU工具链。因为apt软件包管理程序自动安装的 gcc - arm -none-e abi 工具链可能不包含gdb调试程序,所以我们需要从 ARM 官网下载。 2. 安装完成后,您可以在终端中启动OpenOCD并连接开发板。 3. 打开新的终端,并执行以下命令来启动 arm -none-e abi -gdb调试器: arm -none-e abi -gdb ./test. elf 4. 在gdb调试器中,使用以下命令连接到OpenOCD的gdbserver: (gdb) target remote localhost:3333 这将建立与gdbserver的连接,允许您进行嵌入式程序的调试操作。 希望以上步骤能帮助您成功安装 arm -none-e abi -gdb并进行嵌入式程序的调试。