问题标签 [eabi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 未找到 Android 源代码构建 arm-eabi-gcc
在构建 android 源代码时,出现错误 arm-eabi-gcc not found in path。我从 android 网站下载了预构建的二进制文件,并在我的路径中添加了 bin 目录。我已经确保 arm-eabi-gcc 在路径中。有解决方案吗?
c - 放入 main() 时内联汇编不起作用
当我将以下内联程序集放入其中时,main()
它会直接在printf("before\n")
. 显然内联汇编块有问题,因为printf("after\n")
没有打印。当放入自己的函数run()
并在其中调用时,相同的内main()
联汇编可以完美运行mainssv();
。这块有什么问题?
arm - 源和目标具有不同的 EABI 版本
我正在尝试使用 ARM 工具链编译 .so 文件。但是我不断收到此错误-
错误:源对象的 EABI 版本为 0,但目标对象的 EABI 版本为 5
我无法更改工具链中的任何内容,因为我必须使用给定的。我以前从未见过这个错误。
我使用了这个编译器标志 -
-Wl,--no-warn-mismatch
但不得不把它拿出来,因为它破坏了很多其他的东西。
我正在使用的编译器标志是:
-fPIC -O2 -marm -march=armv7-a
windows - 使用 GNU Tools for windows 编译
我正在尝试使用 gcc(来自 GNU Tools ARM Embedded)编译拇指代码。
通过键入命令行gcc.exe C:\foo.c -o foo.o -mthumb
,我收到以下错误:
c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm- none-eabi/lib/thumb\libc.a(lib_a-exit.o): 在函数
exit': exit.c:(.text.exit+0x1a): undefined reference to
_exit' c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm -none-eabi/5.2.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-sbrkr.o):在函数_sbrk_r': sbrkr.c:(.text._sbrk_r+0xc): undefined reference to
_sbrk'c:/program文件 (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/ lib/thumb\libc.a(lib_a-writer.o): 在函数_write_r': writer.c:(.text._write_r+0x10): undefined reference to
_write' c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi /5.2.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-closer.o):在函数中_close_r': closer.c:(.text._close_r+0xc): undefined reference to
_close' c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../ arm-none-eabi/lib/thumb\libc.a(lib_a-lseekr.o): 在函数_lseek_r': lseekr.c:(.text._lseek_r+0x10): undefined reference to
_lseek' c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc /arm-none-eabi/5.2.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-readr.o):在函数_read_r': readr.c:(.text._read_r+0x10): undefined reference to
_read'中: /program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none- eabi/lib/thumb\libc.a(lib_a-fstatr.o): 在函数_fstat_r': fstatr.c:(.text._fstat_r+0xe): undefined reference to
_fstat'c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none -eabi/5.2.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-isattyr.o):在函数_isatty_r': isattyr.c:(.text._isatty_r+0xc): undefined reference to
_isatty'collect2.exe中:错误: ld 返回 1 个退出状态
我该如何解决这些错误?
c - 使用 FreeScale Code Warrior 将 GCC 目标文件与 main 中的 __eabi 调用链接起来
我正在链接用于 MPC5554 的 FreeScale Code Warrior 5.9,它是具有 e500mc 内核的 PPC 芯片。我正在使用为 powerpc-none-eabi 编译的 GCC 4.6.4 进行编译。
我正在main
使用 GCC 交叉编译器为我的项目编译一些 C 代码,包括带有 的文件。不过,我需要使用 Code Warrior 进行链接。__eabi
GCC在 main 的开头添加了一个对函数的调用,该函数应该初始化几个寄存器。它不能被删除,并且对于我正在做的事情是不必要的。GCC 期望它由 crt 提供。
这些是我的 GCC 编译标志:
-O2 -std=c99 -w -mno-eabi -mregnames -mcpu=e500mc -misel=yes -mfloat-gprs=single -mno-string -msdata=none
GCC PowerPC 的文档说有一个-no-eabi
参数,应该删除它,但是如果你深入研究它,就会有许多错误报告指出文档是错误的,并且标志实际上并没有删除对__eabi
.
我尝试简单地__eabi
从 CodeWarrior 向 crt 添加一个函数。在 __ppc_eabi_init.c 我添加了函数:
但是,当我尝试链接时,我仍然收到__eabi
main.o 中的 main 未定义的错误。Code Warrior 链接器似乎找不到我的函数。我验证了 __ppc_eabi_init.c 在链接顺序中排在第一位。
我怎样才能得到这个链接?有没有办法删除对 的调用__eabi
?为什么Code Warrior在我提供的时候找不到这个功能?
makefile - Makefile 链接器无法链接目标文件之一
我正在做一个包括编写makefile的项目。在这里,我有 2 个不同的 makefile。第一个执行初始构建步骤。在第二个 makefile 中,我尝试使用最初生成的目标文件(提供的路径)并在其他位置添加另一个生成的目标文件。我在这里面临的问题是链接器无法将这个新的目标文件链接到旧的目标文件。
我正在使用此命令来执行此步骤。
这里 new_file.o 是 arm_eabi 版本 0,all_older_files.o 是 arm_eabi 版本 5。但是,这并没有给我任何错误或警告。而且,有趣的是,new_file.o 中的一些符号被包含在 target.elf 文件中。我已经检查并检查了链接器脚本,但找不到解决方案,并且检查 eabi 版本是否有所不同,但如果我使用 elf 编辑器手动编辑 elf 文件,它是相同的。
我想要的只是我需要在这个 target.elf 中包含 new_file.o 中的部分,以便我可以使用这些部分。
gcc - 如何在 STM 发现板上使用 Nuttx OS 在测试应用程序上运行 gcov?
设置:工具链:gcc-arm-none-eabi-5_2-2015q4-20151219 目标:STM429i-disco board
我想按照以下链接运行 gcov 并在目标中生成实时报告: https ://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-冠状病毒/
首先,使用 -fprofile-arcs 和 -ftest-coverage 标志成功编译了我的代码(符合 POSIX 的 NUTTX OS),并为我的 src 文件生成了 .gcno 文件。
其次,已成功链接启用 -fprofile-arcs 标志并使用 libgcov.a 文件(工具链的一部分)并生成最终二进制文件。
现在,我不知道我的测试应用程序需要进行哪些更改才能调用 gcov、生成报告和转储报告。
另一个问题是,gcov 函数在 libgcov.a 中具有 HIDDEN 属性,如下所示。
9:00000000 4 功能全局隐藏 1 __gcov_flush
9:00000000 4 功能全局隐藏 1 __gcov_init
所以,我无法根据需要调用。
生成 .gcda 文件的任何输入都会有很大帮助。
android - 我可以重新定位预构建的 ARM 二进制文件(静态库)吗?
我有一个静态库 (.a),可直接在 ARM Cortex-M0+ (arm-none-eabi) 上运行。是否可以以某种方式修改它或我的工具链,以便我可以在运行 android (arm-linux-androideabi) 的 Cortex-A7 上使用该库?我无权访问它的构建源。
该库不与硬件外围设备交互。它最初是使用飞思卡尔 ARM 编译器构建的;我正在使用 gcc。
当我尝试链接它时,我得到了
对库中的每个目标文件重复几次。
c - 如果没有在 newlib 中链接,则无法链接 `__aeabi_X` 函数
代码:
当我尝试编译时,我得到未定义的引用__aeabi_dadd
。
我不想使用 newlib,但看起来我是被迫的。
请帮帮我。
gcc - 如何将 arm-none-eabi 与多个文件一起使用?
我正在尝试制作 FlySky FS-i6 固件的修改版本。经过一番搜索,我发现有人在这里反编译了源代码。
我正在尝试使用我已经从 Arduino IDE 安装的 arm-none-eabi 进行编译。
这是我为编译文件而制作的批处理文件,它们只是几个目录下的一堆 .c 和 .h 文件,但我不知道我应该为 arm-none-eabi-gcc 命令提供哪些参数...
我到处搜索,但找不到任何教程或有关如何使用该工具的任何内容。我想做的就是将文件编译成一个firmware.hex文件,你会认为它只是一个简单的单行...