【记录】ARM|Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战

文章目录

  • [【避坑指南】Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战](#【避坑指南】Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战)
    • [📖 背景说明](#📖 背景说明)
    • [🛑 避坑:常见的失败尝试](#🛑 避坑:常见的失败尝试)
      • [1. 直接使用 apt-get 安装](#1. 直接使用 apt-get 安装)
      • [2. 添加 PPA 软件源](#2. 添加 PPA 软件源)
      • [3. 从 ARM 官网直接下载](#3. 从 ARM 官网直接下载)
    • [✅ 实战:四步极速安装](#✅ 实战:四步极速安装)
      • [步骤 1:清理旧版本](#步骤 1:清理旧版本)
      • [步骤 2:高速下载](#步骤 2:高速下载)
      • [步骤 3:解压安装](#步骤 3:解压安装)
      • [步骤 4:配置环境变量](#步骤 4:配置环境变量)
    • [🛠️ 疑难杂症:缺少依赖库](#🛠️ 疑难杂症:缺少依赖库)
    • [💻 进阶:GDB + QEMU 调试演示](#💻 进阶:GDB + QEMU 调试演示)
      • [1. 启动 QEMU 模拟器(终端窗口 A)](#1. 启动 QEMU 模拟器(终端窗口 A))
      • [2. 连接 GDB 开始调试(终端窗口 B)](#2. 连接 GDB 开始调试(终端窗口 B))
    • [📚 参考资源](#📚 参考资源)

【避坑指南】Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战

本文旨在记录在 Ubuntu 24 环境下安装 arm-none-eabi-gdb 的最佳实践,涵盖了从"避坑"到"安装"再到"调试"的全流程,助你快速搭建嵌入式开发环境。


📖 背景说明

对于嵌入式开发(如 STM32、GD32 等 Cortex-M 系列单片机),arm-none-eabi-gdb 是必不可少的调试工具。但在 Ubuntu 24.04 等较新的 Linux 发行版中,由于软件包策略的调整,直接通过 apt 安装往往无法获得完整的 GDB 功能,或者版本过旧不支持最新的芯片。本文将介绍一种稳定、高速且独立于系统环境的安装方案。

🛑 避坑:常见的失败尝试

在开始之前,请不要尝试以下方法,以免浪费时间:

1. 直接使用 apt-get 安装

Ubuntu 官方仓库通常只包含 GCC,而不包含 GDB 调试器。

bash 复制代码
sudo apt-get install gcc-arm-none-eabi  # ❌ 仅安装了编译器,无法安装 gdb

2. 添加 PPA 软件源

老旧的 PPA 仓库(如 team-gcc-arm-embedded)已停止维护,在 Ubuntu 24 上会导致 404 错误。

bash 复制代码
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
# ❌ 报错:The repository '...' does not have a Release file.

3. 从 ARM 官网直接下载

虽然可行,但国内网络环境下载速度极慢,且需跨越网络障碍,不推荐作为首选。https://developer.arm.com/downloads/-/gnu-rm


✅ 实战:四步极速安装

推荐使用华为镜像站下载,速度快且版本稳定。

步骤 1:清理旧版本

如果之前尝试安装过,建议先清理环境:

bash 复制代码
sudo apt-get remove gcc-arm-none-eabi

步骤 2:高速下载

使用华为鸿蒙镜像源下载 10.3 版本(包含 GDB):

bash 复制代码
wget https://repo.huaweicloud.com/openharmony/compiler/gcc-arm-none-eabi/10.3/linux/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

步骤 3:解压安装

建议将工具链解压至 /opt 目录进行统一管理:

bash 复制代码
sudo mkdir -p /opt/tool
sudo tar -jxf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C /opt/tool/

步骤 4:配置环境变量

编辑 ~/.bashrc,将工具链路径加入系统 PATH:

bash 复制代码
# 在文件末尾添加以下内容
export PATH=$PATH:/opt/tool/gcc-arm-none-eabi-10.3-2021.10/bin

刷新配置使立即生效:

bash 复制代码
source ~/.bashrc

🔎 验证安装

输入以下命令,如果显示版本号则说明安装成功:

bash 复制代码
arm-none-eabi-gdb --version

🛠️ 疑难杂症:缺少依赖库

在 Ubuntu 24 上运行 GDB 时,极大概率会遇到以下报错:

arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file

解决方案:

这是因为新版系统默认不再预装旧版 ncurses 库。需手动安装:

bash 复制代码
sudo apt install libncurses5 -y
sudo apt autoremove  # 清理之前可能安装的冗余依赖

💻 进阶:GDB + QEMU 调试演示

安装完成后,以下是如何配合 QEMU 进行 ARM 裸机调试的示例。

1. 启动 QEMU 模拟器(终端窗口 A)

bash 复制代码
qemu-system-arm \
  -machine lm3s811evb \
  -kernel firmware.elf \
  -S \             # 核心参数:启动后立即暂停 CPU,等待 GDB 指令
  -gdb tcp::9000   # 核心参数:开启 GDB Server,监听 9000 端口

2. 连接 GDB 开始调试(终端窗口 B)

bash 复制代码
arm-none-eabi-gdb firmware.elf

进入 GDB 交互界面后输入:

gdb 复制代码
(gdb) target remote localhost:9000  # 连接到 QEMU 端口
(gdb) b main                        # 在 main 函数打断点
(gdb) c                             # 恢复运行(Continue)

📚 参考资源

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/155863493。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

相关推荐
学困昇2 小时前
Linux 进程概念与内存管理详解(含冯诺依曼体系结构、环境变量、调度算法)
linux·c语言·开发语言·网络·数据结构·c++
为什么要内卷,摆烂不香吗2 小时前
sed 流编辑器练习自用
linux·运维·编辑器
大志若愚YYZ2 小时前
嵌入式Linux初探索——点灯背后的驱动层与应用层及其交互
linux
杜子不疼.2 小时前
【Linux】多机管理终极方案:禁用 root 密码,用面板实现批量部署 + 操作追溯
linux·运维·服务器
Ronin3052 小时前
【Linux网络】五种IO模型与非阻塞IO
linux·网络·非阻塞io·五种io模型
刚入门的大一新生2 小时前
Linux-Linux初识与基础指令
linux
夜月yeyue13 小时前
Linux内高端内存
linux·运维·单片机·嵌入式硬件·ci/cd·硬件架构
猫豆~13 小时前
nginx实战-PHP——day2
linux·centos·云计算
杨云龙UP13 小时前
MySQL 自动备份与覆盖恢复实战:一套脚本搞定全库/按库备份恢复
linux·运维·数据库·sql·mysql