草庐IT

arm-none-eabi

全部标签

linux - arm-none-eabi 和 arm-linux-gnueabi 之间的区别?

arm-none-eabi和arm-linux-gnueabi有什么区别?我知道如何使用它们的区别(一个用于裸机软件,另一个用于在linux上运行的软件)。但是技术背景是什么?我发现ABI有所不同,据我所知,它类似于API,但在二进制级别。它确保了不同应用程序的互操作性。但我真的不明白拥有或不拥有操作系统会以何种方式影响我的工具链。我唯一想到的是,在编译裸机软件时,库可能必须静态链接(是吗?),因为没有操作系统动态提供它们。我发现与该主题相关的大多数页面只是回答了如何使用工具链,而不是技术背景。我是机电一体化专业的学生,​​刚接触嵌入式系统,所以我在这个领域的经验有些有限。

linux - 从 linux 交叉编译到 ARM-ELF (ARM926EJ-S/MT7108)

到目前为止,我已经在我的ubuntu系统上安装了所有交叉编译包,但我有一个问题,需要一些帮助。Processor:ARM926EJ-Srev5(v5l)BogoMIPS:184.72Features:swphalfthumbfastmultedspjavaCPUimplementer:0x41CPUarchitecture:5TEJCPUvariant:0x0CPUpart:0x926CPUrevision:5Cachetype:write-backCacheclean:cp15c7opsCachelockdown:formatCCacheformat:HarvardIsize:327

linux - 从 linux 交叉编译到 ARM-ELF (ARM926EJ-S/MT7108)

到目前为止,我已经在我的ubuntu系统上安装了所有交叉编译包,但我有一个问题,需要一些帮助。Processor:ARM926EJ-Srev5(v5l)BogoMIPS:184.72Features:swphalfthumbfastmultedspjavaCPUimplementer:0x41CPUarchitecture:5TEJCPUvariant:0x0CPUpart:0x926CPUrevision:5Cachetype:write-backCacheclean:cp15c7opsCachelockdown:formatCCacheformat:HarvardIsize:327

linux - Linux ARM 上程序寄存器和堆栈的初始状态

我目前正在Linux上玩ARM汇编作为学习练习。我正在使用“裸”程序集,即没有libcrt或libgcc。谁能告诉我在调用第一条指令之前堆栈指针和其他寄存器在程序开始时的状态信息?显然pc/r15指向_start,其余似乎都初始化为0,但有两个异常(exception);sp/r13指向一个远离我的程序的地址,而r1指向一个稍微高一点的地址。所以对于一些可靠的问题:r1中的值是多少?sp中的值是否是内核分配的合法栈?如果不是,分配堆栈的首选方法是什么?使用brk还是分配静态.bss部分?如有任何指点,我们将不胜感激。 最佳答案 既然

linux - Linux ARM 上程序寄存器和堆栈的初始状态

我目前正在Linux上玩ARM汇编作为学习练习。我正在使用“裸”程序集,即没有libcrt或libgcc。谁能告诉我在调用第一条指令之前堆栈指针和其他寄存器在程序开始时的状态信息?显然pc/r15指向_start,其余似乎都初始化为0,但有两个异常(exception);sp/r13指向一个远离我的程序的地址,而r1指向一个稍微高一点的地址。所以对于一些可靠的问题:r1中的值是多少?sp中的值是否是内核分配的合法栈?如果不是,分配堆栈的首选方法是什么?使用brk还是分配静态.bss部分?如有任何指点,我们将不胜感激。 最佳答案 既然

Ubuntu20.4配置arm交叉编译环境

Ubuntu20.4配置arm交叉编译环境我是在虚拟机中配置的,如果你的嵌入式设备足够完成自己的编译,可以不考虑虚拟机的。新安装的Ubuntu20.04系统请先执行以下代码sudoaptupdatesudoaptupgrade到aarch64下载对应的aarch64的base镜像。之后执行如下命令,创建armsys文件夹,之后将刚下载的镜像拷贝到该文件夹下并且解压cd/mkdir/armsys安装一些必要的软件sudoaptinstallqemuqemu-user-staticbinfmt-supportdebootstrap注册aarch64的运行环境sudoupdate-binfmts--

linux - arm-linux-gnueabi 工具链与 arm-linux-androideabi 工具链。

我可以使用arm-linux-gnueabi-*工具链为我的android设备编译文件(例如C或C++源代码)吗?我的问题可能看起来有点傻,但我会得到与使用arm-linux-androideabi-*工具链编译相同的结果吗? 最佳答案 编译可能不仅仅意味着将源代码转换为二进制文件。像GCC这样的编译器也提供某些库,在本例中为libgcc用于处理硬件无法处理的问题。当编译器成为工具链时,它还提供与目标系统中提供的类似的编程语言标准化的运行时库。在arm-linux-gnueabi-的情况下可能是libc对于arm-linux-and

linux - arm-linux-gnueabi 工具链与 arm-linux-androideabi 工具链。

我可以使用arm-linux-gnueabi-*工具链为我的android设备编译文件(例如C或C++源代码)吗?我的问题可能看起来有点傻,但我会得到与使用arm-linux-androideabi-*工具链编译相同的结果吗? 最佳答案 编译可能不仅仅意味着将源代码转换为二进制文件。像GCC这样的编译器也提供某些库,在本例中为libgcc用于处理硬件无法处理的问题。当编译器成为工具链时,它还提供与目标系统中提供的类似的编程语言标准化的运行时库。在arm-linux-gnueabi-的情况下可能是libc对于arm-linux-and

android - arm-linux-androideabi编译器使用方法

我想知道如何使用arm-linux-androideabi编译器。该编译器在android-ndk工具上。android-ndk工具上有ndk-build工具。要编译ethercat堆栈,我只需要arm-linux-androideabi编译器。但是,我看到了这条消息。root@ubuntu:/opt/android/android-ndk-r9c/jni#arm-linux-androideabi-gcc-otesttest.c/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linu

android - arm-linux-androideabi编译器使用方法

我想知道如何使用arm-linux-androideabi编译器。该编译器在android-ndk工具上。android-ndk工具上有ndk-build工具。要编译ethercat堆栈,我只需要arm-linux-androideabi编译器。但是,我看到了这条消息。root@ubuntu:/opt/android/android-ndk-r9c/jni#arm-linux-androideabi-gcc-otesttest.c/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linu