首页 > 其他分享 >RV1126移植安装gdb过程笔记

RV1126移植安装gdb过程笔记

时间:2024-08-14 15:25:33浏览次数:8  
标签:bin gnueabihf RV1126 笔记 编译 gdb linux arm

        GDB(‌GNU Debugger)是一个由GNU开源组织发布的程序调试工具,主要用于‌Unix/‌Linux系统, 是嵌入式软件工程师调试用的比较多的一种工具, 又称GNU调试器,是用来帮助调试我们程序的工具。

本文主要记录在x86 Ubuntu环境下使用交叉编译工具链,编译生成RV1126开发板适合的gdb版本,以RV1126为例子在开发板上移植GDB。

由于要使用交叉编译工具链,要提前准备好,不会安装的可以看一下教程这里就不再赘述了

Linux安装配置ARM交叉编译器arm-linux-gnueabihf-gcc

一、编译GDB源码

1.下载GDB源码

在终端输入码源地址下载(我这里下载的是7.12版本)

wget https://ftp.gnu.org/gnu/gdb/gdb-7.12.tar.gz

2.解压并进入源码目录

tar -zxvf gdb-7.12.tar.gz

cd gdb-7.12

3.配置并生成makefile

 ./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=/opt/atk-dlrv1126-toolchain/bin/arm-linux-gnueabihf-gcc  CXX=/opt/atk-dlrv1126-toolchain/bin/arm-linux-gnueabihf-g++ AR=/opt/atk-dlrv1126-toolchain/bin/arm-linux-gnueabihf-ar --prefix="$PWD/_install"

--target=arm-linux-gnueabihf 为你的交叉编译器前缀

--host=arm-linux-gnueabihf  为你的主机环境

CC CXX AR 这些参数都设置为你的编译器下的路径,不然可能会报错静态库丢失

--prefix="$PWD/_install" 是编译安装生成目录,这里是设置在当前目录下的_install

执行完命令后会提示makefile生成

4.在当前命令行配置编译器环境

这里配置的路径为你的编译器路径下的bin目录

export PATH=/opt/atk-dlrv1126-toolchain/bin:$PATH

5.准备编译

一切准备就绪就可以开始编译和安装了

make

6.编译报错及解决办法

gdb-7.12/missing: 81: makeinfo: not found
WARNING: 'makeinfo' is missing on your system.

sudo apt-get install texinfo

二、安装移植GDB

 1.完成编译后安装在本地生成可执行文件

make install

2.进入安装目录修改二进制文件大小

arm-linux-gnueabihf-strip 是用于处理 ARM 架构二进制文件的工具。它用于从可执行文件或目标文件中剥离不必要的符号信息,比如调试信息,以减小文件的大小。这个工具通常在交叉编译环境中使用,目标架构是 ARM 的 Linux 系统。

cd _install/bin

arm-linux-gnueabihf-strip gdb

 3.推送gdb的二进制可执行文件到开发板上

可以通过ftp服务,u盘挂载拷贝等形式,我这里使用的adb命令推送到/usr/bin或者/usr/local/bin目录下

adb push D:/gdb /usr/bin

 4.检查gdb二进制文件权限

 ls -l |grep gdb

chmod a+x gdb

 5.测试gdb是否运行正常

gdb --version

 到这里arm版的gdb基本移植完成,需要注意的是,交叉编译工具链的使用对应不同平台,如果需要编译其他开发板移植的gdb,需要更换对应的交叉编译工具链。

标签:bin,gnueabihf,RV1126,笔记,编译,gdb,linux,arm
From: https://blog.csdn.net/mapleleaves98/article/details/141188984

相关文章

  • 构造题练习笔记
    例一hdu7393:题意:​有\(n\)个人,每个人头上有个\(1...m\)之间中的某个数字,每个人都能看到其他所有人的数字,但是看不到自己的数字,求一种整体策略,使得至少\(\lfloor\dfrac{n}{m}\rfloor\)个人猜对自己头上的数字。​\(m\len\)解答:​如果直接在\([1,m]\)......
  • UE5笔记:虚幻引擎反射系统和对象
    虚幻引擎反射系统使用宏提供引擎和编辑器各种功能,封装你的类。使用虚幻时,可以使用标准的C++类,函数和变量虚幻中对象的基类是UObject,UCALSS宏的作用是标记UObject的子类,以便UObject处理系统可以识别他们UObject创建1.不支持构造器参数。所有的C++UObject都会在引擎启动的时候......
  • 【开端】如何高效记录并整理编程学习笔记
    如何高效记录并整理编程学习笔记?在编程学习的海洋中,高效的笔记记录和整理方法就像一张珍贵的航海图,能够帮助我们在浩瀚的知识中找到方向。如何建立一个既能快速记录又易于回顾的笔记系统?如何在繁忙的学习中保持笔记的条理性?让我们一起探讨如何打造属于自己的编程学习“知识宝......
  • 字符串算法学习笔记
    注:码风较差,慎读1.hash算法相对于字符串,数字相对来说好处理一些,我们可以考虑把每一个字符串都对应一个数字,这样就可以非常简便地解决字符串的一些问题,而且效率还极高字符串哈希,就是一种可以理解为将字符串映射到一个整数的方法。比如BKDPHash是一种很好的哈希算法,假如字符串为a......
  • CrashCourse CS 速成课笔记
    1.计算机早期历史算盘>>步进计算器>>差分机>>分析机>>打孔卡片制表机CharlesBabbage,AdaLoyelace最早的计算设备是算盘。Computer从指代职业变成指代机器机器里有名的是:步进计算器,第一个可以做加减乘除的机器炮弹为了精准,要计算弹道,二战是查表来做。但每次......
  • 博弈论学习笔记
    nim游戏变种限制取m的nim游戏即巴什游戏+nim游戏,求出每堆数目\(a_imod(m+1)\)的异或和,如果为0,则先手必败,反之先手必胜.我们仍可从P,N来分析.假设目前为先手必败的局面,先手不管拿多少个,都会使得\(a_imod(m+1)\neq0\)(因为取的数目不能超过m;假设目前先手必胜的局面,只......
  • 基于flask+vue框架的某高校学生学习笔记共享平台的设计与实现[开题+论文+程序]-计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高等教育领域正经历着前所未有的变革。随着知识量的急剧增长和学习方式的多样化,学生们面临着如何高效管理和利用学......
  • Java基础-学习笔记11
    11枚举、注解枚举枚举是一组常量的集合。可以这么理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。比如,Season类,只包含SPRING、SUMMER、AUTUMN、WINTER四个对象常量。两种实现方式(1)自定义类实现枚举     1)构造器私有化     2)本类内部创建一组对......
  • 结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141122350长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • C#学习笔记——入门
    <divid="article_content"class="article_contentclearfix">    <linkrel="stylesheet"href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">    &l......