arm-none-eabi和arm-linux-gnueabi之间的区别? [英] Difference between arm-none-eabi and arm-linux-gnueabi?

查看:260
本文介绍了arm-none-eabi和arm-linux-gnueabi之间的区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

arm-none-eabi和arm-linux-gnueabi有什么区别?我知道如何使用它们(一个用于裸机软件,另一个用于打算在Linux上运行的软件)的区别.但是技术背景是什么?

据我所知,我看到了ABI的区别,它类似于API,但在二进制级别.它确保了不同应用程序的互操作性.

但是我真的不了解拥有或没有操作系统会以哪种方式影响我的工具链.我唯一想到的是,在编译裸机软件时,可能必须将库静态链接(对吗?),因为没有操作系统可以动态地提供它们.

我发现与该主题相关的大多数页面只是回答了如何使用工具链,但没有回答技术背景.我是机电一体化和嵌入式系统的新学生,所以我在该领域的经验有限.

解决方案

也许是

What is the difference between arm-none-eabi and arm-linux-gnueabi? I know the difference in how to use them (one for bare metal software, the other one for software meant to be run on linux). But what is the technical background?

I see there is a difference in the ABI which is, as far as I understood, something like an API but on binary level. It ensures interoperability of different applications.

But I don't really understand in which way having or not having an operating system affects my toolchain. The only thing that came to my mind is, that libraries maybe have to be statically linked (do they?) while compiling bare metal software, because there is no os dynamically providing them.

The most pages I found related to this toppic just answered how to use the toolchains but not the technical background. I'm a student of mechatronics and new to embedded systems, so my experience in this field is somewhat limited.

解决方案

Maybe this link to a description will help.

Probably the biggest difference:

"The bare-metal ABI will assume a different C library (newlib for example, or even no C library) to the Linux ABI (which assumes glibc). Therefore, the compiler may make different function calls depending on what it believes is available above and beyond the Standard C library."

这篇关于arm-none-eabi和arm-linux-gnueabi之间的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆