准备工作
下载x86-64 Homebrew 由于在m1系列
MacBook上通过常规 Homebrew 不支持安装x86-64软件,因此我们下载x86-64版本的 Homebrew:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
**注意:**安装后可能导致u-boot编译不过报错:error: linker command failed with exit code 1 (use -v to see invocation),这意味着链接的文件不正确。笔者注意到warning:ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.2.0/lib/libcrypto.3.dylib': found architecture 'x86_64', required architecture 'arm64'
所以选择卸载掉/usr/local/Cellar/
路径下的openssl@3
命令:rm -rf
别名
无法在ARM默认前缀(/opt/homebrew)的Rosetta 2下安装x86-64软件,要在x86_64下安装,请将Homebrew安装到(/usr/local),因此别名路径下的brew:
alias ibrew='arch -x86_64 /usr/local/bin/brew'
安装gdb
使用x86_64的homebrew进行安装
ibrew install gdb
开调
启动qemu
进入uboot目录下输入以下命令开启qemu并等待:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -bios u-boot.bin -s -S
其中选项 -s的含义为:启动内置的 gdb-server, 监听 TCP 端口 1234
-S:告诉 qemu 不要启动程序执行,等待 gdb 的指令
启动gdb
此时该控制台被阻塞,因此启动另外一个控制台同样在uboot目录下,输入命令启动:
gdb u-boot
设置架构与端口:
set architecture aarch64
target remote localhost:1234
使用gdb下的快捷键ctrl+x然后再摁下a,显示gdb的图形化界面: