定制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交叉编译工具集没太大的影响,但用大家常用的名称会比较好些。
2.2、决定目标的存放位置
既然是定制arm交叉编译工具集,那么就不能覆盖本机的编译工具集(否则,本机将不能再编译本机运行代码!),同时还要考虑本机linux环境的多用户、多任务特征。因此,选择一个与本机编译工具集不同的多用户共享位置是必要的。
arm交叉编译工具集的存放位置:在本文中,我们让它等于/usr/local/arm
(本机编译工具集的存放位置通常在/usr或/usr/local)
arm交叉编译工具集的名称:在本文中,我们让它等于 arm-pc-linux,表示在本
地pc上编译,生成的是arm指令代码(详细规则见glibc的readme文件)。
(本机编译工具集名称通常是: i686-pc-linux-gnu,表示在本地pc上编译,
生成的是i686指令代码)
arm核心文件位置:本文中我们让它等于 ~/armlinux 。不过,~/armlinux在这里仅
是个联接而已,它指向真正arm核心源代码位置(见2.4.1描述)。
(本机核心存放位置通常在/usr/src/linux)
2.3、编译、安装binutils
它是gnu(ftp://ftp.gnu.org)工具之一,主要是二进制代码的处理维护工具。
2.3.1、binutils工具部件简介
add2line:将地址转换成文件名或行号对,以便调试程序。
ar:从体系文件中创建、修改、扩展程序代码。
as:生成汇编程序代码。
c++filt:建立低级语言和用户级语言的名称符号联接,并保持它们的相互关系。
gasp:汇编宏处理器。
ld:目标代码联接,联接各目标代码块,它是生成可执行代码的最终步骤。
nm:从目标代码文件中枚举所有调试符号名。
objcopy:使用gnu bsd库,把目标代码从一文件格试拷贝成另一种格试。
objdump:显示目标文件信息。
readelf:显示elf文件信息。
ranlib:生成索引以加快对归档文件的访问。
size:列出目标模块或文件的代码尺寸。
strings:打印可打印的目标代码字符(至少4个字符),打印字符多少可以控制。对于其它格试的文件,打印字符串。

BGA封装怎么突破0.5mm
波士顿动力公司将在明年推出物流机器人计划
TI推出最新模拟前端ADS1293,面向生物电势测量应用
光纤收发器tx和rx区别
西门子亮相第83届中国国际医疗器械博览会
定制ARM For Linux交叉编译工具详细介绍
微软旗下第二代AR头显HoloLens 2先已全面上市
区块链受宠 上市银行抢占高地
Apple Watch将获得一些新功能
随着Model 3疯狂降价,国产高端纯电动车型的价格优势也被进一步压缩
【飞凌RZ/G2L开发板试用体验】+02+基本功能测试
AI时代 互联网巨头争做抢滩登陆的排头兵
威马W6正式下线,将成为国内第1辆无人驾驶的智能电动车
威马发布PAVP停车场免学习自动泊车功能
电能管理与电力监控系统在上海世博村VIP生活馆的应用
关于基于DDS技术的杂散抑制和正弦信号源的实现
网友曝出魅蓝E2真机图,比小米MIX激进多了
苹果无线耳机AirPods相信不陌生,售价高过万元的Airpods你见过么?
浅谈折叠屏它究竟是个啥
中国新造车第一股的新是什么