定制ARM For Linux交叉编译工具详解

1、 ToolChain 简介

ToolChain包含许多部件:主要之一是GCC,它可以是本机编译工具或交叉编译工具,GCC由Binuitls工具支持,Binutils是二进制代码维护工具,这些部件是编译程序的必要工具,同时他们也需要C库(glibc)支持。认真考虑一下:定制一套编译工具并不是想像中的易事!如果你还想继续看下去,必须具备如下技能:

熟悉Linux环境

熟悉Linux的必要命令和工具的使用

知道如何配置、编译核心和应用程序

以下章节将介绍怎样定制ARM交叉编译工具集,但对于大多数ARM开发者来说,没有必要亲自做这件事,完全可以用现成的工具集。除非现成的工具集不满足你的使用要求,或者你想提高开发应用的能力。总之,我们强烈建议你使用现成稳定的工具集来做应用开发!

2、 定制ToolChain

首先来看看工作的大至步骤:

决定目标的名称

决定目标的存放位置

编译、安装Binutils

编译、安装GCC

编译、安装GLIBC

让交叉编译工具支持更多编译语言

测试定制的交叉编译工具

2.1、决定目标的名称

本机编译工具集编译的代码只适用本机(大多数PC是X86)运行,对于ARM开发者来说,需要一个能在本机编译、但编译却生成ARM运行代码的一套交叉编译工具集。

因此,选择一个与本机工具集相异的特定含义的目标名称是非常有必要的。

arm-linux:是个比较受欢迎的名称,支持ELF格式(ARMLinux标准)。除Acorn用户使用老的a.out格式外。

arm-linuxaout:选择a.out格式,ARMLinux基本不支持它了。

arm-aout、arm-coff、arm-elf、arm-thumb:其它的格式名。

你也可以在其中插入版本信息,比如:

armv2:ARMV2核,支持26bit模式。

armv3l、armv3b:ARMV3核,小字节(l)或大字节(b)模式。

armv4l、armv4b:ARMV4核,如:StrongARM、ARM7TDMI、ARM8、ARM9。同样也支持小字节(l)或大字节(b)模式。

armv5l、armv5b:ARMV5核,如:XScale核ARM10。同样也支持小字节(l)或大字节(b)模式。

选择什么名称对定制ARM交叉编译工具集没太大的影响,但用大家常用的名称会比较好些。

时间: 2024-07-31 11:24:23

定制ARM For Linux交叉编译工具详解的相关文章

【Linux】Linux crontab 命令详解

原文来自:http://ir.hit.edu.cn/~wsong/development/crontab.htmlLinux crontab 命令详解 在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locate 命令使用的 slocate 数据库每日都被更新.系统管理员可使用自动化的任务来执行定期备份.监控系统.运行定制脚本等等. 红帽企业 Linux

linux多线程编程详解教程

 这篇文章主要介绍了linux多线程编程详解教程,提供线程通过信号量实现通信的代码,大家参考使用吧 线程分类   线程按照其调度者可以分为用户级线程和核心级线程两种.   (1)用户级线程  用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持.在这里,操作系统往往会提供一个用户空间的线程库,该线程库提供了线程的创建.调度.撤销等功能,而内核仍然仅对进程进行管理.如果一个进程中的某一个线程调用了一个阻塞的系统调用,那么该进程包括该进程

Linux下分区详解之—Parted

Linux下分区详解之-Parted 作者:吴伟龙   通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大:而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘.但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办能,有两个方法,其一是通过卷管理来实现,其二就是通过我们今天谈到的Parted工具来实现对GPT磁盘进行分区操作. GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition tabl

Linux系统启动流程详解

那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程. 这个部分比较有意思.因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多:但是,一旦进入操作系统,程序员几乎可以定制所有方面.所以,这个部分与程序员的关系更密切. 我主要关心的是Linux操作系统,它是目前服务器端的主流操作系统.下面的内容针对的是Debian发行版,因为我对其他发行版不够熟悉. 第一步.加载内核 操作系统接管硬件以后,首先读入

《C语言开发从入门到精通》一第2章 C语言开发工具详解2.1 用DOS开发C程序

第2章 C语言开发工具详解 C语言开发从入门到精通 古人云:工欲善其事,必先利其器.由第1章的内容我们了解到,C语言开发工作需要使用专门的开发工具,这样才能起到事半功倍的效果.在本章的内容中,将简要介绍常用的几种C语言开发工具,详细介绍它们的安装和使用方法,为读者步入本书后面知识的学习打下基础. 本章内容 用DOS开发C程序 在Windows环境下开发C程序 在Linux下开发C程序 技术解惑 安装Visual Studio 2010的几个常见问题 有没有轻量级的.可以复制和粘贴代码的工具 Wi

Linux mtools命令详解 Linux mtools命令怎么用

mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令.这些指令都是mtools的符号连接,因此会有一些共同的特性. 语法 mtools 参数说明: -a 长文件名重复时自动更改目标文件的长文件名. -A 短文件名重复但长文件名不同时自动更改目标文件的短文件名. -o 长文件名重复时,将目标文件覆盖现有的文件. -O 短文件名重复但长文件名不同时,将目标文件覆盖现有的文件. -r 长文件名重复时,要求用户更改目标文件的长文件名. -R 短文件名重复但长文件名不同时,要求用户更

Linux mread命令详解 Linux mread命令怎么用

mread为mtools工具命令,可将MS-DOS文件复制到Linux的文件系统中.这个命令目前已经不常用,一般都使用mcopy命令来代替. 语法 mread [MS-DOS文件...][Linux文件或目录] 参数说明: [MS-DOS文件-]: 执行操作的DOS源文件或目录路径 [Linux文件或目录]: 执行操作后的Linux目标文件或目录路径 实例 使用指令mread将盘"a:\"中的所有内容复制到当前工作目录下,输入如下命令: $ mread a:\* ./     #将a盘

Linux mmove命令详解 Linux mmove命令怎么用

mmove为mtools工具命令,模拟MS-DOS的move命令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目录的名称.   语法 mmove [源文件或目录...][目标文件或目录] 参数说明: [源文件或目录-]: 执行操作的源文件或目录路径 [目标文件或目录]: 执行操作后的目标文件或目录路径 实例 使用指令mmove将文件"autorun.bat"移动到目录"test"中,输入如下命令: $ mmove autorun.bat tes

Linux mren命令详解 Linux mren命令怎么用

mren为MS-DOS工具指令,与DOS下的ren指令相似,可以实现更改MS-DOS文件或目录名称. 源文件必须是磁盘上已经存在的文件,若忽略盘符及路径,则表示当前盘及当前目录的文件. 新文件名是所要更换的文件名称.新文件名称前不可以加与源文件不同的盘符及路径,因为该命令只能更改同一盘上的文件名称. 语法 mren [源文件或目录...][目标文件或目录] 参数说明: [源文件或目录-]: 执行操作的源文件名或者源文件路径 [目标文件或目录]: 执行操作的目标文件名或者目标文件路径 实例 使用指