在Ubuntu系统中使用 gcc 系列工具是在PC机上使用

arm-linux-gcc 编译的目标 是在 arm CPU上使用

一。安装交叉编译工具链

1. 编译工具怎么获取

  1)从官网 http://mirror.hust.edu.cn/gnu/gcc/

  通过工具生成 http://crosstool-ng.org/download/crosstool-ng/

2. 交叉编译工具安装

    1)$ vi ~/.bashrc  最后一行 添加 export PATH=$PATH:/opt/gcc-4.9.4/bin/   重启终端 即可生效

    2)在终端直接执行  $ export PATH=$PATH:/opt/gcc-4.9.4/bin/     只在当前终端生效

    3) $ sudo vi /etc/profile  最后一行 添加 export PATH=$PATH:/opt/gcc-4.9.4/bin/    重新登录 即可生效

二。交叉工具链其他工具使用(arm-linux-xxx

  1. 查看.elf格式文件:arm-linux-readelf a.out   elf 读取文件格式头,内容包括大小端,什么架构,是否是可执行程序(gcc工具直接编译生成的就是elf文件,a.out)
  2. arm-linux-size a.out 读取各段大小
  3. 格式转换命令:arm-linux-objcopy -O binary a.out a.bin  砍头操作把调试信息删除
  4. 反汇编命令:arm-linux-objdump -D -S a.out > a.s  (编译需加 -g)
  5. 列出符号清单:arm-linux-nm a.out(编译需加 -g)

参数说明:大写表示非静态  static 小写

T/t   -------  代码段

D/d  ------   数据段

B/b   ------   bss 段

R/r   --------  只读数据段

  6. 通过pc中的地址显示行号:arm-linux-addr2line a.out(编译需加 -g)

  7. 去掉调试信息(瘦身):arm-linux-strip a.out

  8.    提取程序中的字符串:arm-linux-strings  a.out

    9.    制作库:arm-linux-ar

  10. 链接器:arm-linux-ld

链接:https://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html 

三.GDB调试:

gdb 执行程序名 ------ 启动调试

start单步执行程序 :      start

break 打断点 :       b 行号 ----  例子:b 23

info 获取内容: 获取断点编号: info b

delete删除断点:      d 编号

list 显示程序内容 :   l 

next单步执行:       n 

connect 继续执行:    c 

print 打印变量值:     p 变量 --例子: p num

display 追踪某个变量值: display num 一直显示for循环中打印某个变量的变化

info 获取追踪变量的编号 : info display

undisplay 取消追踪的变量:  undisplay 编号

进入函数体内部:         s 函数名

跳出单次循环:           u

Finish跳出当前的函数:    finish

把for循环中条件变量 i 设置成 10  :  set var i =10  相当于把i的循环条件执行了10次

quit退出gdb :

gcc 交叉工具链中工具使用(arm-linux-xxx)的更多相关文章

  1. 交叉编译工具链介绍《Building Embedded Linux Systems》

    1.前言 配置和编译一个合适的GNU工具链是相对复杂的并且需要很精细的操作,包括你需要对不同软件库之间的依赖关系.它们的各自的任务,不同软件库版本情况都有比较好的了解,编译工具链是一个乏味的工作. 2 ...

  2. Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本, ...

  3. 【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install ...

  4. 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远 ...

  5. linux driver ------ 交叉工具链(cross toolchain)

    在 ARM Linux 的开发中,人们趋向于使用 Linaro(http://www.linaro.org/)工具链团队维护的 ARM 工具链,它以每月一次的形式发布新的版本,编译好的可执行文件可以网 ...

  6. 为DS5添加新的gcc工具链

    环境: 步骤: 1.下载mingw32版本的工具链 下面有两个下载工具链的网站: ARM官网的: https://developer.arm.com/tools-and-software/open-s ...

  7. GNU 交叉工具链的介绍与使用

    常用工具介绍 名称 归属 作用 arm­linux­as binutils 编译 ARM 汇编程序 arm­linux­ar binutils 把多个.o 合并成一个.o 或静态库(.a) arm­l ...

  8. Crosstool-ng制作交叉编译工具链

    Crosstool-ng制作交叉编译工具链 交叉编译器可以用现成的,比如CodeSourcery制作的交叉编译器,也可以自己制作,一般是用kernel+gcc+glibc+binutils的源码包来编 ...

  9. 使用GNU工具链进行嵌入式裸机开发

    Embedded-Programming-with-the-GNU-Toolchain Vijay Kumar B. vijaykumar@bravegnu.org 翻译整理:thammer gith ...

随机推荐

  1. 3.VUE前端框架学习记录三:Vue组件化编码1

    VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  2. Vue列表渲染:一个取值范围的v-for

    v-for 也可以取整数.在这种情况下,它将重复多次模板. 例子 <div id="app"> <span v-for="n in 10"&g ...

  3. java String练习题

    package java07; /* 题目: 定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串,格式参照如下:[word1#word2#word3] 思路: 1.首先准备一个int[]数 ...

  4. vmwre虚拟机配置

    mware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式).打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚 ...

  5. ivew-admin 校验 自定义验证表单多层嵌套

    1.prop=对象 <FormItem label=" prop="shapeDifference.heightSpaceT2"> <Input v-m ...

  6. TP、FP、FN、TN的含义

    true positive(被正确分类的正例) false negative(本来是正例,错分为负例) true negative(被正确分类的负例) false positive(本来是负例,被错分 ...

  7. session应用:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...

  8. Shiro安全框架的说明及配置入门

    Shiro是什么? Shiro是一个非常强大的,易于使用的,开源的,权限框架.它包括了权限校验,权限授予,会话管理,安全加密等组件 什么时候使用它呢? 如果你是设计RBAC基础系统,需要编写大量用于权 ...

  9. 使用Docker搭建Cloudera Hadoop 环境搭建

    单节点 单节点:https://hub.docker.com/r/cloudera/quickstart/ 相关命令 docker pull cloudera/quickstart:latest do ...

  10. 求1+2+3.。。。n的和

    思路: 利用递归累加,逻辑运算符的短路运算. class Solution { public: int Sum_Solution(int n) { int result=n; result & ...