简介
本节主要介绍基于Visual Studio Code在MacOS下调试环境的搭建,Linux发行版上的过程也类型,它主要使用到以下工具链:
- aarch64 架构的交叉编译器和gdb客户端
- Visual Studio Code 和 C语言插件
- qemu
安装
qemu
brew install qemu
交叉编译工具链
学习ARMv8架构不同于编写Linux应用程序,过程中并不涉及使用glibc,可以使用不带glibc的版本,安装途径如下:
- 使用 brew 安装 aarch64-elf-gcc 和 aarch64-elf-gdb
brew install aarch64-elf-gcc aarch64-elf-gdb
- 通过ARM官方网站下载 aarch64-none-elf,ARM官方只提供了aarch64-none-elf 的 MacOS 版本,Linux 发行版可以选择 aarch64-none-linux-gnu。
- 使用其他版本的工具链,例如 zephyr 的 sdk 中已经包含了aarch64架构的交叉编译器,这些编译器也可以用。
C语言插件
在VSCode中直接搜索C相关的插件,这些插件包含了C语言语法解析以及调试支持:
gdb调试
测试代码
首先需要编写编写一段程序,并将其编译成elf文件,最后使用qemu运行该程序,此处的示例使用笨叔的ARMv8练手程序,需要根据自己所使用的编译器版本修改编译器前缀,例如我所使用的编译器需要将前缀改为aarch64-elf-,除此之外还需要修改qemu所使用的目标机,新版本的 qemu 的目标名称从 raspi4 变成了 raspi4b:
ARMGNU ?