Ubuntu12.10 使用JLink连接开发板用arm-gdb调试ARM程序
Part1 环境搭建和工具安装
1.1 设置交叉编译环境
安装相关的编译工具:
sudo apt-get install build-essential gcc-arm-linux-gnueabi
这里我使用的是ubuntu系统源中含有的gcc-arm-linux-gnueabi系列工具,安装完成后具有如下工具:

arm-linux-gnueabi-addr2line arm-linux-gnueabi-gcc arm-linux-gnueabi-gprof arm-linux-gnueabi-ranlib
arm-linux-gnueabi-ar arm-linux-gnueabi-gcc-4.7 arm-linux-gnueabi-ld arm-linux-gnueabi-readelf
arm-linux-gnueabi-as arm-linux-gnueabi-gcc-ar-4.7 arm-linux-gnueabi-ld.bfd arm-linux-gnueabi-size
arm-linux-gnueabi-c++filt arm-linux-gnueabi-gcc-nm-4.7 arm-linux-gnueabi-ld.gold arm-linux-gnueabi-strings
arm-linux-gnueabi-cpp arm-linux-gnueabi-gcc-ranlib-4.7 arm-linux-gnueabi-nm arm-linux-gnueabi-strip
arm-linux-gnueabi-cpp-4.7 arm-linux-gnueabi-gcov arm-linux-gnueabi-objcopy
arm-linux-gnueabi-elfedit arm-linux-gnueabi-gcov-4.7 arm-linux-gnueabi-objdump

注意在使用make进行编译源码的时候,设置CROSS_COMPILE参数为: arm-linux-gnueabi-
make CROSS_COMPILE=arm-linux-gnueabi-
1.2 安装针对arm的gdb
1.2.1 到gdb官网下载源码
由于ubuntu下没有编译好的针对arm平台的gdb,故可以去官网下载: http://ftp.gnu.org/gnu/gdb/ , 可以先通过gdb -v 查看系统合适的版本;
$gdb -v
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) Free Software Foundation, Inc.
License GPLv3+: GNU GPL version or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
$wget http://ftp.gnu.org/gnu/gdb/gdb-7.5.tar.bz2
1.2.2 编译和安装
编译和安装gdb,注意设置目标平台为arm-linux, 另外注意下面红色参数:“--program-prefix=arm-linux-”,该参数使安装后的程序名字为arm-linux-gdb, 防止与系统已经安装的gdb重名;
$tar xjf gdb-7.5.tar.bz2
$cd gdb-7.5/
$./configure --target=arm-linux --program-prefix=arm-linux-
$sudo make install
后续可以直接通过命令行 arm-linux-gdb来调用该调试器;
1.3 下载和使用linux版JLink
可以使用JLINK上的序列号进行下载,网址如下:
http://www.segger.com/cms/jlink-software.html
http://www.segger.com/cms/jlink-software.html?step=2&file=JLinkLinux_450i
解压后,连接好开发板,运行Jlink目录中的start脚本或者JLinkExe程序,就可以看到连接成功的消息:
usb为jlink支持的命令,表示从usb连接,更多命令可以通过输入 ? 获得。
J-Link>usb
Connecting to J-Link via USB (Port: )
Updating firmware: J-Link ARM V8 compiled Jun ::
Replacing firmware: J-Link ARM V8 compiled Jan ::
Waiting for new firmware to boot
New firmware booted successfully
DLL version V4.50i, compiled Jun ::
Firmware: J-Link ARM V8 compiled Jun ::
Hardware: V8.
S/N:
Feature(s): RDI,FlashDL,FlashBP,JFlash
VTarget = .000V
J-Link>
Ubuntu12.10 使用JLink连接开发板用arm-gdb调试ARM程序的更多相关文章
- 基于LPCXpresso54608开发板创建Embedded Wizard UI应用程序
平台集成和构建开发环境:LPCXpresso 54608入门指南 本文主要介绍了创建一个适用于LPCXpresso54608开发板的Embedded Wizard UI应用程序所需的所有必要步骤.请一 ...
- ubuntu12.04下NFS链接开发板并测试交叉编译的第一个应用
思路:配置网络->安装NFS->配置NFS->挂载NFS服务->Down文件执行.Okay lets go! 配置网络: 在配置网络之前,首先咱得搞定与开发板的交互工作,那么这 ...
- SecureCRT连接开发板 串口传输、tftp传输
1.串口传输 使用命令:rx r是service, x是X-model模式 ①.rx 文件名 再按Enter键 ②.将需要传到板子上的文件 拖到SecureCRT里面,选择发送X-model选项 注 ...
- ubuntu12.04下CKermit与开发板交互环境搭建
CKermit蛮好的一个调试工具!就像在windows下的telnet,但是还是折腾了一下,现在看来,非常容易,其实我主要是在开发板为正常工作的情况下,以为是CKermit的问题,其实是我开发板开机设 ...
- 织女星开发板启动模式修改——从ARM M4核启动
前言 刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档,原来RV32M1芯片默认从RISC-V核启动,如果 ...
- 2-学习GPRS_Air202(Air202开发板介绍和下载第一个程序)
http://www.cnblogs.com/yangfengwu/p/8887933.html 资料链接 链接:https://pan.baidu.com/s/1968t2QITuxoyXlE_Nz ...
- 迅为-IMX6开发板Android Eclipse 导入Led应用程序工程
本小节给大家详细讲解如何导入 Android 应用的工程文件.先解压迅为“iTOP-IMX6-Android4.4-LED 测试程序 r”压缩包.如下图所示,解压出ledtest 文件夹.<ig ...
- 【HC89S003F4开发板】 3串口调试
HC89S003F4开发板串口调试 使用资料自带的demo 主程序 /************************************系统初始化************************ ...
- IMX6开发板qt creator直接编译ARM架构程序
除了通过 11.2.2 小节通过命令行的操作来编译在 iTOP-imx6 开发板上运行的程序,还可以直接在 qtcreator 上设置,然后每次编译的程序都可以在开发板上运行.如下图所示,打开 qtc ...
随机推荐
- Flask接通微信公众号
import hashlib import xml.etree.ElementTree as ET from flask import Flask, request import time app = ...
- 【js】sort()
//为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串, //以确定如何排序.即使数组中的每一项都是数值,sort()方法比较的也是字符串, var v ...
- OGG_GoldenGate复杂参数定义(案例)
2014-03-10 Created By BaoXinjian
- 将mysql非分区表转换为分区表(转)
查看表的分布状况mysql> select count(*) from justin;+----------+| count(*) |+----------+| 5845246 |+---- ...
- java web中请求和响应中包含中文出现乱码解析
说明:在计算机中保存的一切文本信息是以一定的编码表(0,1,0,1)来保存我们所认识的字符(汉字或英文字符),由字符到计算机存储的二进制过程是编码,由读取二进制到文本的过程称为解码.而字符编码有多种不 ...
- unity5, Configurable Joint: Anchor, Connected Anchor, Auto Configure Connected Anchor
configurable joint加在轮子上,connected body是车身. 这种情况下,Anchor=(0,0,0)表示轮子一端joint锚点取carWheelCenter Connecte ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- UVA - 11609 Teams (排列组合数公式)
In a galaxy far far awaythere is an ancient game played among the planets. The specialty of the game ...
- Java中instanceof关键字的理解
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: res ...
- 使用vim-latex排版
前几天在某个群上看到了一篇简历,内容不重要,一看排版很漂亮的说.一问才知道是用latex排版工具排版的.一想到我都大三下学期的,也快大四了,是不是要准备一份简历.于是就想使用latex这个排版工具来排 ...