首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

交叉编译学习笔记(二)——交叉编译器的命名规则

上面对应的交叉编译器的前缀有arm-linux-, arm-none-linux-gnueabi-, arm-linux-gnu- 笔者很困惑,这些编译器同为ARM下的gcc编译器,不同的命名到底会导致这些编译器有哪些区别...如: arm-none-eabi:该编译器没有操作系统,不能支持那些与操作系统关系密切的函数(如fork(2)) arm-none-linux-eabi:该编译器用于Linux系统 1. arch arch...EABI与ABI的主要区别,是应用程序代码中允许使用特权指令,不需要动态链接,并且使用更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM。...例: arm-cortex_a8-linux-gnueabi中的nueabi,即glibc+eabi mips-ar2315-linux-gnu中的gnu,即glibc+oabi powerpc-e500v2...& arm-linux-gnueabihf-gcc 两个交叉编译器名称上的区别在于 gnueabi 与 gnueabihf,分别适用于 armel 和 armhf 两个不同的架构,armel 和 armhf

4.2K50

STM32高级开发——gcc-arm-none-eabi

我们直接点击下面Linux版进行下载。在下载的过程中建议大家去网站的首页看看,随便逛逛了解一下gcc-arm-none-eabi。.../etc/profile 1 为了查看我们是否已经成功设置路径,在终端中输入: $ arm-non 1 点击Tab看看系统是否自动补全为:arm-none-eabi- $ arm-none-eabi...gcc-arm-none-eabi工具链工具使用方法及介绍 在我们安装好gcc-arm-none-eabi后,我们可以在终端中输入指令来调用gcc-arm-none-eabi的功能了,那么这个工具链下茫茫多的执行软件都是做什么的呢...它的使用方法是,在终端中cd到工作目录,如编译当前目录下的hello.c文件,生成hello.o文件: arm-none-eabi-gcc -c hello.c 1 arm-none-eabi-g++...arm-none-eabi-gcc 指令来代替arm-none-eabi-ld,如下: arm-none-eabi-gcc -o hello hello.o 1 arm-none-eabi-objcopy

72530
您找到你想要的搜索结果了吗?
是的
没有找到

Unix与Linux区别

LinuxLinux使用Linux内核,这是由Linus Torvalds及其他贡献者开发的。Linux内核是开源的,这使得Linux系统能够在各种硬件平台上运行。...LinuxLinux有多个发行版(Distribution),如Ubuntu、Fedora、Debian、CentOS等。这些发行版使用Linux内核,但它们可能包含不同的软件包、包管理工具等。...LinuxLinux是开源的,其源代码可以免费获取、使用、修改和分发。这也促使了许多不同的Linux发行版的出现。用户群体Unix: 主要在商业和企业环境中使用,通常用于大型服务器和工作站。...Linux: 除了服务器和工作站,还广泛用于个人计算机、嵌入式系统和移动设备。Linux也在云计算环境中得到了广泛应用。...Linux: 大多数Linux发行版遵循POSIX标准,因此在命令行方面与Unix相似,但也有一些特定的命令和工具。

17010

linux基础-linux和unix的区别

有时候我们对天天使用的Linux指令,只知道怎么用,却分不清概念用法区别,我觉得很有必要整理整理大家熟视无睹的一些linux概念区别。...首先说说unix和linux区别linux和unix的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。...linux不源于任何版本的unix源代码,并不是unix,而是一个类似于unix的操作系统。 linux的核心源代码是免费的,自由使用的,核心源代码是开放的,而unix的核心并不公开。...在对硬件的要求上,linux比unix要低,没有unix那么苛刻,linux可运行在多种硬件平台上,而unix系统大多是与硬件配套的,是硬件厂商针对自己的硬件平台的操作系统。...Linux主要有RedHat Linux 、CentOS Linux、Fedora Linux、Debian Linux、Ubuntu Linux、SuSe Linux等。

4.3K10

arm-gcc各版本区别

咋这么多gcc,我该下载哪个啊~ arm-linux-gcc、 arm-none-eabi-gcc、 arm-eabi-gcc、 arm-none-linux-gnueabi-gcc区别 arm-none-eabi-gcc...system, and uses the GNU EABI)== 主要用于基于ARM架构的Linux系统,==可用于编译 ARM 架构的 u-boot、Linux内核、Linux应用等==。...armcc ARM 公司推出的编译工具,功能和 arm-none-eabi 类似,可以编译裸机程序(u-boot、kernel),但是不能编译 Linux 应用程序。...EABI 嵌入式ABI。嵌入式应用二进制接口指定了文件格式、数据类型、使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。...开发者使用自己的汇编语言也可以使用 EABI 作为与兼容的生成的汇编语言的接口。 ==两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。

3.2K20

Linux下开发stm32 ①

1.为什么不是gcc 之前我们花了三篇文章介绍Linux下如何进行C语言编程: Linux C语言编程(上篇) | gcc的使用 Linux C语言编程(中篇) | make的使用 Linux C语言编程...(下篇) | gdb的使用 这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc...这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~ 2.gcc-arm-none-eabi...Windows,Linux,MacOS上的交叉编译。...arm-none-eabi-objcopy test.elf -Oihex test.hex 7.编写一个makefile雏形 TARGET=test CC=arm-none-eabi-gcc OBJCOPY

3.2K31

概述Linux TTYPTS的区别

我们通过ps、who等命令看到的类似tty1、pts/0这样的输出,它们的作用和区别是什么呢?...可以通过命令toe -a列出系统支持的所有终端类型 可以通过命令infocmp来比较两个终端的区别,比如infocmp vt100 vt220将会输出vt100和vt220的区别。...| +-------+ | Kernel | +-----------------------------+ 为了简化起见,本篇不讨论Linux...SSH + Screen/Tmux 常用Linux的同学应该对screen和tmux不陌生,通过它们启动的进程,就算网络断开了,也不会受到影响继续执行,下次连上去时还能看到进程的所有输出,还能继续接着干活...TTY和PTS的区别 从上面的流程中应该可以看出来了,对用户空间的程序来说,他们没有区别,都是一样的;从内核里面来看,pts的另一端连接的是ptmx,而tty的另一端连接的是内核的终端模拟器,ptmx

1.9K31

详细讲解 移植Uboot到ARM9开发系统上

首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。...让uboot在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot就可以在ARMer9开发系统上正常地从串口输出,进入提示符。...7. kgo:启动没有压缩的linux内核,kgo 0x800000 8. bootm:启动通过UBOOT TOOLS—— mkimage制作的压缩LINUX内核, bootm 3200000; 9 flinfo...原因在于:编译内核和busybox使用的编译器是arm-linux-gcc 4.3.2,而这个编译器默认是打开“EABI选项”的,这样编译出来的busybox就是EABI的。...但是内核编译的时候,默认是把“EABI选项”关掉的。所以busybox和内核无法正常配合。把“EABI选项”打开,重新编译内核后,一切正常。

2.3K20

汇编语言之GNU ARM

接下来我们要学习的就是GNU计划众多的产物之一GNU FOR ARM 汇编器与指令集 什么是汇编器 将汇编语言翻译成机器码的工具 什么是编译器 将高级语言翻译成机器语言或者汇编语言的工具 汇编器和编译器的区别...里面用的编译工具就是GCC GNU ARM开发环境搭建 我们需要准备以下两个工具: GCC编译套件 安卓模拟器 GCC编译套件根据cpu架构和操作系统的不同,又分为了很多子类: 纯ARM裸机: 对应arm-none-eabi...工具包 ARM架构+Linux操作系统:对应arm-none-linux-eabi工具包 由于接下来我们选择在安卓模拟器上进行开发学习,因此我们选择arm-none-linux-eabi这套工具来进行代码的编译...代码 自定义一个段 函数或者标签的声明 数据的声明 数据的批量定义 格式如下: .rept @重复次数 @数据定义代码 .endr @结束重复定义 关于align 反汇编后的结果: 指令和伪指令的区别...CODE import fun1 ;导入其他源文件中名为fun1的函数 END ;使用extern伪指令 AREA code, CODE extern fun1 END 两者区别

2K30

android设备上如何运行C语言原生程序

目标设备环境不允许,比如单片机, 内存和性能无法支持程序的编译 交叉编译工具 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构,如...ARM,MIPS vendor – 工具链提供商 os – 目标操作系统 eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface) 根据对操作系统的支持与否...,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,适用于ARM架构裸机,工具链提供商未知,嵌入式应用二进制接口,这个工具不支持那些跟操作系统关系密切的函数...arm-none-linux-eabi:用于Linux的,ARM架构,使用Glibc 如果是裸机编译,由于没有操作系统进行文件识别翻译,因此编译出来的大部分是面向cpu内核的机器码文件 单片机编译后的文件就是如此...,实现在windows平台上编译出能够在ARM+Linux平台上的可执行程序 这里我们使用 arm-none-linux-gnueabi-gcc 这款交叉编译工具 工具下载: 各个平台arm-none-linux-gnueabi

4.9K20

STM32通过rosserial接入ROS通讯开发

至于ROS这个操作系统的介绍大家可以看我之前的那篇文章《嵌入式为什么要学ROS》 总之ROS是一个在机器人设备端比较常用的分布式处理框架,但是因为ROS的包很多功能也比较复杂,所以一般都是跑在linux...首先我是使用的其他人分享一个包进行开发的,使用的是makefile文件进行编译,编译器选择的是 gcc-arm-none-eabi-4_9-2015q3 程序文件如下所示: 其中Bsp包里面主要是stm32...串口串口配置的文件和时间定时的程序文件: 在这里插入图片描述 这里的配置方法其实就和我们平时的用库函数配置STM32串口的方法没什么区别,只不过是配置程序放到了HardwareSerial这个类成员函数中...其中芯片我选择了STM32F072 编译选项我按照默认,也没有修改,其中交叉编译器是用的 arm-none-eabi-gxx makefile 文件中我设置了我自行定义的程序文件 此外我还下载了...arm-none-eabi-gxx 的包 编译前先用export 配置一个编译器的选项: 其中我下载好的编译器目录在 /home/lyn/M0/gcc-arm-none-eabi-4_9-2015q3

2.3K20
领券