arm-linux工具的功能如下:

arm-linux-addr2line 把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。

arm-linux-ar 建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。

arm-linux-c++flit 连接器使用它来过滤 C++ 和 Java 符号,防止重载函数冲突。

arm-linux-gprof 显示程序调用段的各种数据。

arm-linux-ld 是连接器,它把一些目标和归档文件结合在一起,重定位数据,并连接符号引用。通常,建立一个新编译程序的最后一步就是调用ld。

arm-linux-nm 列出目标文件中的符号。

arm-linux-objcopy 把一种目标文件中的内容复制到另一种类型的目标文件中。

arm-linux-objdump 显示一个或者更多目标文件的信息。使用选项来控制其显示的信息,它所显示的信息通常只有编写编译工具的人才感兴趣。

arm-linux-ranlib 产生归档文件索引,并将其保存到这个归档文件中。在索引中列出了归档文件各成员所定义的可重分配目标文件。

arm-linux-readelf  显示elf格式可执行文件的信息。

arm-linux-size  列出目标文件每一段的大小以及总体的大小。默认情况下,对于每个目标文件或者一个归档文件中的每个模块只产生一行输出。

arm-linux-string 打印某个文件的可打印字符串,这些字符串最少4个字符长,也可以使用选项-n设置字符串的最小长度。默认情况下,它只打印目标文件初始化和可加载段中的可打印字符;对于其他类型的文件它打印整个文件的可打印字符。这个程序对于了解非文本文件的内容很有帮助。

arm-linux-strip 丢弃目标文件中的全部或者特定符号。

arm-linux-gcc -wall -O2 -c -o $@ $<

-o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件

-Wall 指定产生全部的警告信息

-O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高

-c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc 变成 .o 的目标文件

-S 只激活预处理和编译,就是指把文件编译成为汇编代码

arm-linux-ld 直接指定代码段,数据段,BSS段的起始地址

-Tbss ADDRESS               Set address of .bss section

-Tdata ADDRESS              Set address of .data section

-Ttext ADDRESS              Set address of .text section

示例:

${CROSS}ld -Ttext=0x33000000 led.o -o led.elf

使用连接脚本设置地址:

arm-linux-ld -Tbeep.lds start.o beep.o -o beep.elf

其中beep.lds 为连接脚本如下:

arm-linux-objcopy被用来复制一个目标文件的内容到另一个文件中,可用于不同源文件的之间的格式转换

示例:

arm-linux-objcopy –o binary –S elf_file bin_file

常用的选项:

input-file , outflie

输入和输出文件,如果没有outfile,则输出文件名为输入文件名

2.-l bfdname或—input-target=bfdname

用来指明源文件的格式,bfdname是BFD库中描述的标准格式名,如果没指明,则arm-linux-objcopy自己分析

3.-O bfdname 输出的格式

4.-F bfdname 同时指明源文件,目的文件的格式

5.-R sectionname 从输出文件中删除掉所有名为sectionname的段

6.-S 不从源文件中复制重定位信息和符号信息到目标文件中

7.-g 不从源文件中复制调试符号到目标文件中

arm-linux-objdump

查看目标文件(.o文件)和库文件(.a文件)信息

arm-linux-objdump -D -m arm beep.elf > beep.dis

-D 显示文件中所有汇编信息

-m machine

指定反汇编目标文件时使用的架构,当待反汇编文件本身没有描述架构信息的时候(比如S-records),这个选项很有用。可以用-i选项列出这里能够指定的架构.

[guowenxue@localhost asm_c_buzzer]$ cat beep.lds

/***********************************************************************

*        File:  beep.lds

*     Version:  1.0.0

*   Copyright:  2011 (c) Guo Wenxue <guowenxue@gmail.com>

* Description:  Cross tool link text, refer to u-boot.lds

*   ChangeLog:  1, Release initial version on "Mon Mar 21 21:09:52 CST 2011"

*

***********************************************************************/

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

OUTPUT_ARCH(arm)

ENTRY(_start)

SECTIONS{

. = 0x33000000;

.text : {

*(.text)

*(.rodata)

}

.data ALIGN(4): {

*(.data)

}

.bss ALIGN(4): {

*(.bss)

}

}

[guowenxue@localhost asm_c_buzzer]$ cat makefile

# ***********************************************************************

# *        File:  makefile

# *     Version:  1.0.0

# *   Copyright:  2011 (c) Guo Wenxue <guowenxue@gmail.com>

# * Description:  Makefile used to cross compile the ASM and C source code

# *   ChangeLog:  1, Release initial version on "Mon Mar 21 21:09:52 CST 2011"

# *

# ***********************************************************************

CROSS = /opt/buildroot-2011.02/arm920t/usr/bin/arm-linux-

CFLAGS =

beep.bin: start.S beep.c

arm-linux-gcc $(CFLAGS) -c -o start.o start.S

arm-linux-gcc $(CFLAGS) -c -o beep.o beep.c

arm-linux-ld -Tbeep.lds start.o beep.o -o beep.elf

arm-linux-objcopy -O binary -S beep.elf beep.bin

rm -f *.elf *.o

install:

cp beep.bin ~/winxp -f --reply=yes

clean:

rm -f *.elf *.o

rm -f beep.bin

          转

arm-linux工具相关推荐

  1. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)

    文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...

  2. linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具

    Linux系统下ARM Linux交叉编译环境的建立目前流行的有三种途径. 一.使用别人编译好的开发工具链本文引用地址:http://www.eepw.com.cn/article/201611/31 ...

  3. Linux ARM交叉编译工具链制作过程

    一.下载源文件 源代码文件及其版本与下载地址: Binutils-2.19.tar.bz2 http://ftp.gnu.org/gnu/binutils/ gcc-4.4.4.tar.bz2 htt ...

  4. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  5. 【linux系统如何安装arm交叉编译工具链】

    文章目录 前言 一.arm交叉编译器介绍 命名规则 具体编译器 二.Arm GNU Toolchain安装 总结 前言 本文简要介绍arm交叉编译器及工具链的安装方法 一.arm交叉编译器介绍 命名规 ...

  6. ARM Linux 3.x的设备树(Device Tree)【转】

    转自:http://blog.csdn.net/21cnbao/article/details/8457546 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] ARM Devi ...

  7. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

  8. arm linux gnueabi编译,交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

    本身以前一直没搞清楚这两个交叉编译器到底有什么问题,特地google一番,总结以下,但愿能帮到道上和我有一样困惑的兄弟-..linux 一. 什么是ABI和EABI 1) ABI: 二进制应用程序接口 ...

  9. linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...

    Linux工具链for TKStudio是一款支持TKStudio IDE集成开发环境的辅助LINUX交叉编译工具链软件,交叉编译就是跨架构编译,编译出来的程序不能在本机执行(当然有例外情况).所以这 ...

  10. 安装ARM交叉编译工具

    1. 下载交叉编译工具链. 可到如下两个网站下载: http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/ http://www.uushare.com ...

最新文章

  1. hdu3829(最大独立集)
  2. 分布式存储系统考虑因素-分区容错性
  3. struts2访问session的两种方法
  4. 程序员面试题精选100题(28)-字符串的排列[算法]
  5. ucore操作系统实验笔记 - Lab1
  6. 1过程流程图 3 apqp_为什么过程开发的平面布置图要遵循精益原则?
  7. 瘦子的肠道菌群和胖子的区别_瘦子和病态肥胖患者肠道菌群组成和潜在功能的显著差异...
  8. Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决(转)...
  9. python基础之拆包、匿名函数、文件的初级应用
  10. @SpringBootApplication与@EnableAutoConfiguration区别
  11. asp.net后台正则表达式验证手机号码邮箱
  12. Wi-Fi环境下基于注意力机制及深度学习的鲁棒被动感知技术
  13. 怎样从 Google Play 下载 Android 程序到电脑上
  14. [健康]肾的保健按摩
  15. redis切换查询数据库 db0到db3
  16. 若依打包如何分离jar包和资源文件?
  17. 易语言 php post,易语言POST发送邮件
  18. 用Bing API接口实现同IP域名查询(Python版)
  19. 【嵌入式Linux驱动开发】十五、实操Linux开发中的中断,编写第一个按键驱动程序
  20. 如何从Linux下载一个文件到本地

热门文章

  1. 《人工智能》之《计算智能》习题解析
  2. 星星之火-56:前传接口 CPRI容器的字长、能力与CPRI速率的对应关系
  3. 微信小程序的百度地图获取地理位置 —— 微信小程序教程系列(15)
  4. svn和git 常用的命令
  5. 调用微信API获取小程序URL Link
  6. python怎么读单词_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...
  7. SC-GlowTTS论文阅读
  8. 解决天正M_批打印没有天正的打印格式(TArch20V6.ctb)的问题
  9. Kylo调研总结(一)
  10. 解析PR曲线与目标检测中的mAP指标