我尝试安装 arm-none-eabi-gdb 作为 gcc-arm-embedded 的一部分。我添加了 PPA:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
并执行:
sudo apt install gcc-arm-embedded
它的回应是:
Err:8 http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu focal Release
404 Not Found [IP: 91.189.95.83 80]
据我了解-gcc-arm-embedded 没有适用于 Ubuntu 20 的版本。因此,我已将软件和更新中此 PPA 的发布版本更改为仿生,这样我就可以避免错误 404。
即使 ubuntu 20 有 libisl22,现在当我尝试安装 gcc-arm-embedded 时我有未满足的依赖项:
The following packages have unmet dependencies:
gcc-arm-embedded : Depends: libisl15 (>= 0.15) but it is not installable
E: Unable to correct problems, you have held broken packages.
我无法找到安装请求版本的 libisl 的方法,因为 apt 仅提供两个版本 - libisl22 和 libisl-dev 并且安装程序不接受这两个版本。
我需要有关如何安装 arm-none-eabi-gdb 的建议。谢谢!
事实证明,ARM 决定通过弃用 PPA 来让我们的生活更轻松(讽刺)——他们在启动板上的页面现在有一个公告:“......所有新的二进制和源程序包都不会在 Launchpad 上发布...... ”。
因此,要使用他们最新的 arm-none-eabi-gdb,您必须手动安装 gcc-arm-embedded。
从系统中删除 arm-none-eabi-gcc:
从他们的网站下载最新版本(Linux x86_64 Tarball),检查其 MD5。解压到某个目录。我使用 /usr/share/ :
sudo tar xjf gcc-arm-none-eabi-your-version.bz2 -C /usr/share/
创建链接,以便在系统范围内可以访问二进制文件:
安装依赖项。readme.txt 中列出的 ARM 的“完整安装说明”不会告诉您依赖项是什么——您必须通过反复试验来弄清楚。在我的系统中,我必须手动创建符号链接以强制它工作:
检查它是否有效:
Aleksander 的回答解决了我 99% 的问题,但是在运行 make 之后,我得到了一个错误 arm-none-eabi-objcopy : command not found。所以我不得不再做一个符号链接来生成文件。
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy
我试图将此作为评论添加到答案中,但我没有足够的分数来做到这一点。
我已经在这里将@kmhallen的脚本打包成一个半自动的 debian 包构建器:https ://gitlab.com/alelec/arm-none-eabi-gcc-deb/-/releases
像这样安装一个包意味着你可以跳过繁琐的手动符号链接来将工具放在路径上,同样重要的是你可以卸载/升级到更新的包(假设我记得制作更多的包)
该工具链现在仅在他们的网站上提供: https ://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
解压后,将
bin
文件夹的路径添加到系统路径中:或者,这里是一个生成 Debian 包并将其安装到
/usr
目录的脚本。这样您就不必一直导出路径,并且可以将其删除sudo apt purge gcc-arm-none-eabi
检查它是否有效: