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 ...
随机推荐
- MySQL插入性能优化
目录 MySQL插入性能优化 代码优化 values 多个 一个事务 插入字段尽量少,尽量用默认值 关闭 unique_checks bulk_insert_buffer_size 配置优化 inno ...
- Unix环境高级编程(十二)线程控制
本章介绍了一个进程中多个线程之间如何保持数据的似有性及进程的系统调用如何与线程进行交互. 1.线程限制: Single Unix定义了一线线程操作的限制,和其他的限制一样,可以通过sysconf来查询 ...
- Unix环境高级编程(十)信号续
1.signal函数 Unix系统的信号机制最简单的接口是signal函数,函数原型如下: #include <signal.h> typedef void (*sighandler_t) ...
- Nginx 的线程池与性能剖析【转载】
正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为此,NGIN ...
- 透析Java本质-谁创建了对象,this是什么
是构造方法创建的对象吗 package com.java.essence_36; import java.util.ArrayList; import java.util.List; /** * Cr ...
- Excel 求差集和并集
1. excel求两列差集(查找A列中与B列不同的部分) 示例: 行号 A列 B列 C列结果(A-B) 1 1 3 ...
- linux中init.d文件夹的说明
一.简单说明 /etc/init.d 是 /etc/rc.d/init.d 的软链接(soft link).可以通过 ll 命令查看. ls -ld /etc/init.d lrwxrwxrwx. r ...
- [Python]南邮OJ代码备份爬虫
之前看过Python学习的经验,说以project为导向学习. 自己分析了一下,一般接触Python的都有一定的其它语言基础,对于程序设计的基本逻辑,语法都有一个大概的了解.而Python这样的脚本语 ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- FPGA三分频,五分频,奇数分频
我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...