建立ARM+Linux应用程序调试环境

ARM Linux 交叉调试工具及方法 ARM Linux 交叉调试工具及方法 一、交叉调试工具 1、主机 : arm-linux-gdb 2、 arm: gdbserver 在开发主机上运行 arm-linux-gdb 程序,可以通过串口或网口与驻留在 ARM 开发板上的 gdbserver 程序进行通信,完成 ARM 开发板上应用程序的调试和跟踪。 二、交叉调试工具的生成 1、下载 gdb 源码 要完成交叉调 阅读详情

http://blog.youkuaiyun.com/dinitial/archive/2009/02/22/3923559.aspx

Gdb+gdbserver+insight环境的搭建

1.    下载gdb源代码    http://ftp.gnu.org/gnu/gdb/

 

2.    配置安装gdb+gdbser

$ tar jxvf gdb-6.6.tar.bz2

$ cd x/gdb

$ ./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v

      --prefix用于指定安装路径

      --target=arm-linux 用于制定目标环境的编译

编译, $ make

安装, $ sudo make install

之后在x/bin文件夹下生成arm-linx-gdb可执行文件.

$ cd gdbserver

配置文件:

$ ./configure --target=arm-linux --host=arm-linux
(--target=arm-linux表示目标平台,--host表示主机端运行的是arm-linux-gdb,不 需要配置—prefix,因为gdbserver不在主机端安装运行)

$ make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
(这一步要指定你自己的arm-linux-gcc的绝对位置,相对的通常不行,提示make: arm-linux-gcc: Command not found,如果用的相对路径,即直接赋值arm-linux-gcc,可采取make时传递参数,也可以直接修改gdbserver目录下的Makefile文件中的环境变量CC)

之后在gdbserver目录下生成gdbserver可执行文件.

可将它通过nfs拷贝到目标板上运行.

如:mount –t nfs host:/friendly-arm/root /mnt –o ro,nolock

这里如果没有加上选项 –o ro,nolock 无法正常mount.

@在目标板上运行

      (1)将要调试的文件和gdbserver放在同一个文件夹下

            vivi> ./gdbserver  host:port  “待调试文件”

(2)在主机段执行 arm-linux-gdb “待调试文件”

    (gdb)target remote client:port     连接客户机

   注意:(1)在目标机上通过gdbserver调试的程序在gdbserver运行的时候已经运行了,并且其中不包含调试的符号信息,所以要想加入符号信息只能通过host运行的gdb加入含有调试信息的可执行文件。

           (2)刚开始的时候将./gdbserver下载到目标机后不能运行,其主要原因就是所制作的网络根文件系统缺少libthread_db.so.1库文件。但是发现lib中并没有该文件,只有一个链接文件,通过file命令查看:

          [root@localhost lib]# file libthread_db.so.1

          Libthread_db.so.1: symbolic link to libthread_db-1.0.so

          发现该链接文件链接到libthread_db-1.0.so该库文件,于是将文件libthread_db-1.0.so拷贝到根文件系统,然后改名为Libthread_db.so.1,之后gdbserver能正常运行了.

 

3.       安装gdb图形调试界面insight  (gtk 软件包)

下载地址:http://sourceware.org/insight/       版本为:insight-6.6.tar.bz2

$ tar  –jxvf  insight-6.6.tar.bz2

$ cd insight-6.6

配置文件:

$ ./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/insight

配置选项的解释同上.

  编译, $ make

  安装, $ sudo  make  install

注意:在第一次编译的时候老是出现问题,最后发现自己在装RedHat9.0的时候为了节省磁盘空间没有安装 gtk软件包,所以编译的时候会出错。但是在装了之后,再次编译insight-6.8.tar.bz2版本,出现了X参数未初始化的错误。然后重新换成insight-6.6.tar.bz2版本,编译成功,安装.

关于gdb远程调试参见:http://codex.wordpress.org.cn/GDB_Manual_17_1

 

剩下需要解决,就是busybox在minicom下如何终止程序的运行。

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/dinitial/archive/2009/02/22/3923559.aspx

arm-linux下的多线程调试 gdb是UNIX及UNIX-like下的调试工具。在linux下开发的人一定不会陌生,在arm-linux下也有对应的调试版本。下面记录一下在工作中用到的一些在arm-linux下用gdb调试多线程的一些知识。 一、下载调试工具 工程中使用了arm-none-linux-gnueabi-gcc编译器,提供一个下载网站arm-none-linux-gnueabi-gcc。 安转以后执行 a 阅读详情

相关推荐

ARM Linux下的多线程调试: ARM开发

调试多线程程序:一旦程序开始执行,使用GDB的各种命令来跟踪和调试多线程程序,例如"info threads"查看当前线程列表,"thread 线程ID"切换到指定线程,"break 函数名"在函数开头设置断点,"step"逐步执行程序(进入函数),"next"逐步执行程序(不进入函数),"continue"继续执行程序,"print 变量名"打印变量的值。通过使用以上GDB命令,您可以在程序中设置断点,切换线程并逐步执行程序,以跟踪和调试多线程程序的执行过程。使用GDB的"run"命令来运行程序。

KwmGroovy的博客 470

arm linux gdb调试工具,arm-linux gdb调试工具的安装

开发环境:AT91SAM9X25开发板:安装linux2.6.39;pc的虚拟机:Linux version 2.6.18-194.el5 (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) ,arm-linux-gcc的版本为version 4.4.3二、安装(1)解压:tarzxvfgdb-6.8a.tar.gz(2)配置安装gdb:cdgd...

weixin_30696571的博客 573

Linux ARM平台开发系列讲解(调试篇) 1.3.2 RK3399移植Ubuntu文件系统步骤

1. 概述由于项目需要,需要在RK3399上移植Ubuntu文件系统,前面章节也细讲过Ubuntu的移植,可以去参考本专栏的,当然本篇也会细讲RK3399上移植Ubuntu的过程。2. 文件系统下载Ubuntu的文件系统Ubuntu官方已经帮我们编译好了,我们只需要去做一些移植工作即可,镜像可以在Ubuntu官网下载,。如下图,下载版本。3. 解压Ubuntu文件Ubuntu03_ubunturoot4. 在主机Ubuntu里安装QEMUQEMU相当于要启动Ubuntu的虚拟机,将其挂载到PC。

DSMGUOGUO的博客 2146

Linux中error while loading shared libraries错误解决办法 --关于exe是否在运行时夹在动态库的猜想

标准解法:   1、首先打开/etc/ld.so.conf文件   2、加入动态库文件所在的目录:执行vi /etc/ld.so.conf,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"。   3、保存后,在命令行终端执行:/sbin/ldconfig -v;其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/...

ljq550000的专栏 4955

在Linux上建立ARM开发环境

在Linux上有多个可用的交叉编译工具链,例如arm-linux-gnueabi和arm-linux-gnueabihf。通过安装交叉编译工具链和必要的开发工具,设置环境变量,编写和编译ARM应用程序,最后部署和运行应用程序,您可以开始在Linux上进行ARM开发。如果您计划在Linux上进行ARM开发,您需要搭建一个适用于ARM架构的开发环境。本文将为您提供一份详细的指南,帮助您在Linux操作系统上搭建ARM开发环境。接下来,您需要下载并安装一些必要的工具,以便在ARM开发环境中进行编译、调试和部署。

FslzLua的博客 657

Linux for ARM 调试软件集

Linux for ARM 调试软件集,putty,HFS,超级终端等

VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序

基本流程跟我的另一篇文章《》一样,不一样的是需要重新编译gdb和交叉编译gdbserver。

崔杰城的博客 7840

arm-linux-gdb+gdbserver环境搭建以及远程调试

1 交叉编译gdb 2 gdbserver 使用

arm+linux+线程调试,建立ARM+Linux应用程序调试环境

原标题:建立ARM+Linux应用程序调试环境Gdb+gdbserver+insight环境的搭建1. 下载gdb源代码 http://ftp.gnu.org/gnu/gdb/2. 配置安装gdb+gdbser$ tar jxvf gdb-6.6.tar.bz2$ cd x/gdb$ ./configure --target= -linux --prefix=/usr/local/arm-gdb ...

weixin_39675289的博客 213

基于arm9的linux基本驱动的概念和开发调试方法

很简单的一个概念和实现过程,希望能帮上一些初学者。 描述: ARMLINUX因为启动了MMU,所以应用程序不能直接读写物理地址,而必须借助与驱动的形式,切入内核用ioremap来实现对这些物理地址的访问...

从零构建基于ZYNQ与AD9361的SDR信号源:FPGA逻辑与射频前端的协同设计

本文详细介绍了从零开始构建基于ZYNQ与AD9361的SDR信号源的完整流程。通过解析FPGA逻辑与射频前端的协同设计,重点阐述了如何利用FPGA生成基带信号,并通过ARM处理器配置AD9361,最终实现一个可编程的2.4GHz载波信号发生器。内容涵盖硬件选型、Vivado环境搭建、AXI总线通信、LVDS接口设计及软件驱动开发,为SDR开发者提供了实用的实战指南。

weixin_29200485的博客 214

熟悉linux平台开发环境,嵌入式系统实验:熟悉Linux开发环境.doc

实 验 报 告( 2011 / 2012 学年 第 2 学期)课程名称嵌入式系统B 实验名称熟悉Linux开发环境实验时间2012年6月14日指导单位通信与信息工程学院指导教师王诚学生姓名班级学号学院(系)通信与信息工程学院专 业电子信息工程实验名称熟悉Linux开发环境指导教师王诚实验类型验证试验实验学时2实验时间2012.6.14实验目的和要求目的:通过该配套实验环节,巩固...

weixin_35819216的博客 324

《数据分析岗笔试高频题:字节常用的SQL与AB测试考题解析》

• 核心考点:用RANK()/DENSE_RANK()/ROW_NUMBER()排序,SUM() OVER()计算累积值。◦ 用公式n=2*(Zα/2+Zβ)^2*σ²/δ²,取α=0.05,β=0.2,计算得每组需260人;◦ 关注字节技术公众号“字节跳动数据团队”,学习真实AB测试案例(如“推荐算法优化实验”)。• 题型分布:SQL编程题(40%)、AB测试方案设计(30%)、数据洞察题(30%);◦ 牛客网“字节跳动SQL真题”(如“统计用户7日留存”“广告投放ROI计算”)。

2501_91651594的博客 1107

QEMU搭建arm64 Linux调试环境

https://zhuanlan.zhihu.com/p/345232459 简述 本文记录了在ubuntu20.04上,使用QEMU搭建arm64 的Linux开发调试环境。可以方便得使用gdb调试内核,既可以作为学习linux kernel源码的实验环境,也可以用于ARM64内核驱动开发调试环境。 版本和环境信息如下: 平台:ubuntu20.04 kernel版本:linux 5.10 qemu版本:5.2.0 qemu模拟环境:ARM64 gcc version :10.2.0 交叉编.

eydwyz的专栏 2825

AIDD-人工智能药物设计-构建基于机器学习方法的在线预测平台高准确预测药物诱导骨毒性

在此基础上,提取多种药物分子特征,包括分子指纹(如MACCS、Morgan、RDKit、TopologicalTorsion、AtomPairs与Descriptors)及分子图谱,通过Transformer编码器与神经网络进行机器学习模型训练。最后,将训练好的模型部署为在线Web服务器(BoneToxPD),供用户快速预测药物的骨毒性。本研究不仅在骨毒性预测的准确性方面取得了突破,还在模型解释性方面提供了新的视角,通过注意力机制精准识别出影响骨毒性的关键化学基团,推动药物研发领域更安全、更高效的发展。

itwangyang520的博客 1080

[特殊字符]用Python爬取中国裁判文书网案例信息:从爬虫到数据可视化全流程实战(附代码)

✅ 分析裁判文书网的网页结构;✅ 自动化爬取案件信息;✅ 解析加密参数并获取数据;✅ 数据可视化图表输出;✅ 模块化构建爬虫系统。

2201_76125261的博客 2824

搭建嵌入式linux应用程序调试环境

使用gdb搭建嵌入式Linux调试环境,使用网络与开发板通信,调试应用程序 一、下载gdb源码 下载地址:ftp://ftp.gnu.org/gnu/gdb/ 我使用的版本为:gdb-7.7.1.tar.gz 二、编译gdb client (1)tar xvzf gdb-7.7.1.tar.gz (2)./configure --target=arm-linux --prefix=

srf1986的专栏 2272

虚拟机安装VMware Tools

单击虚拟机-->安装VMware Tool 安装之后会有一个VMware Tools硬盘,里面有VMware Tools.tar.gz的压缩包 按照提示解压它,然后执行vmware-install.pl安装VMware Tools 将安装包放到/tmp目录下。可以直接拽过去,也可以使用cp或者mv命令 进入tmp文件目录并解压此文件包 cd /tmp ...

afei001 620

建立jlink+arm-linux-insight+GDB Server调试环境

建立jlink+arm-linux-insight+GDB Server调试环境 一、方案 1、  linux gcc编译,windows ads或iar调试。 2、  linux gcc编译,windows keil或realview调试。 3、  windows下ads或keil或iar编译调试。 4、  虚拟机linux gcc编译,然后运行gdb通过串口tcp远程

zfaquir的专栏 4022

flowable工作流看这一篇就够了(基础篇)

接下来我们构建一个非常简单的请假流程,Flowable引擎需要流程定义为BPMN 2.0格式,这是一个业界广泛接受的XML标准。在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。

qq_38196449的博客 2万+

【MicroPython编程-ESP32篇:设备驱动】-BNO08X系列传感器驱动

BNO08X 系列(BNO085/BNO086)是一款系统级封装 (SiP),集成了三轴加速度计、三轴陀螺仪、磁力计以及运行 CEVA SH-2 固件的 32 位 ARM® Cortex™-M0+ 微控制器。SH-2 包含 MotionEngine™ 软件,该软件提供复杂的信号处理算法来处理传感器数据,并提供精确的实时 3D 姿态、航向、校准加速度和校准角速度,以及更高级的上下文输出。BNO08X 集成在一个 28 引脚 LGA 封装中,尺寸为 3.8mm x 5.2mm x 1.1mm。它兼容 Andro

视觉与物联智能 695

ST-Link配合OpenOCD搭建Linux下ARM调试环境

利用ST-Link作为arm仿真器,结合OpenOCD在Linux系统中高效搭建ARM开发调试环境,实现稳定烧录与在线调试,提升嵌入式开发效率。

weixin_42594419的博客 938

三维点云转深度图

点云投影过程是将三维点云数据转化为二维图像坐标的关键步骤,它的实现涉及到相机内外参数的计算,包括相机的内部参数(如焦距和主点)和外部参数(如相机位置和方向)。具体来说,可以通过将每个点的三维坐标转换为相机坐标系下的坐标,然后使用相机内部参数和外部参数来计算在二维图像中的坐标。接着计算每个点的深度值,将深度值映射到像素值上,最后创建深度图像并将深度值赋给对应的像素值。这里需要注意的是,在将深度值映射到像素值上时,需要将像素值转换为 uchar 类型,否则在将深度值赋给像素值时会出现类型不匹配的错误。

点云兔子的博客 3171

如何直接在Windows下进行ARM-Linux应用程序开发调试

偷个懒,不安装虚拟机,直接在Windows下开发 ARM Linux应用程序。 友情提醒1:本篇适合在嵌入式软件开发已经有一定基础的读者。 1 缘由 在嵌入式行业摸爬滚打了八年有余,一直都没在Linux进行...

wanff1204的博客 5882

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

在win10中的vscode下在线调试arm板中的linux程序

在windows中的vscode下在线调试arm板中的linux应用程序 想要在window下的vscode中在线调试arm板中运行的linux程序。需做到一下三点 arm能运行gdbserver程序。用于向gdb客户端传输调试数据。 linux端需要运行arm-linux-gnueabihf-gdb.这也就是我们所说的gdb客户端,用于和gdbserver交换调试数据。 vscode需要将ar...

guoweilkd的博客 4235

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 建立ARM+Linux运行环境
下一篇: Linux下Ramdisk根文件系统制作过程解析
vcvbve
博客等级 码龄17年 5粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值