一、 准备好资料
- Linux虚拟机,我的系统是ubuntu 16.04;
- arm-linux-gcc、expat、arm-linux-gdb,都可以从我网盘下载:链接:https://pan.baidu.com/s/1DoO8X69ut0EgId65cPLzZg
提取码:q3h9。(qemu可以不用下载,我用apt-get可以直接安装) - 我是用root用户登录的,因此不需要sudo,如果你们不是用的root用户,请在相关命令前自行添加sudo
二、 安装arm-linux-gcc
这里我没遇到什么坑,直接按照实验资料上面的教程来就行。
三、 安装expat
这个在实验资料上面没说,但如果在gdb连接qemu端口时出现以下保存务必安装expat,然后重新装gdb:
warning: Can not parse XML target description; XML support was disabled at compile time
安装过程:
- 从上方网盘下载源码,复制到虚拟机中,解压,解压命令:
tar zxf expat-2.2.9.tar.gz
- 用cd命令进入刚刚解压出来的文件夹,然后执行以下命令:
mkdir /usr/local/expat
./configure --prefix=/usr/local/expat
make && make install
至此,expat已经安装好了,如果安装报错请自行百度。
四、 安装qemu
直接使用apt安装即可,注意其依赖的东西:
apt-get install flex
apt-get install bison
apt-get install qemu
然后可以像实验资料那样建立一个软连接指向qemu。
如果不能自动安装,请在系统设置修改软件源,亲测华为云可用。
五、 安装arm-linux-gdb
若没有安装expat就弄了gdb,gdb需要重新安装。
安装步骤:
- 从上方网盘下载源码,复制到虚拟机中,解压,解压命令:
tar zxf gdb-8.3.tar.gz
- 用cd命令进入刚刚解压出来的文件夹,然后执行以下命令:
make distclean #若之前安装过gdb用这条命令清理
./configure --target=arm-linux --prefix=/usr/local/arm-gdb --with-expat -with-libexpat-prefix=/usr/local/expat --includedir=/usr/local/expat/include --libdir=/usr/local/expat/lib #注意前一个注释后面这一长串是一行命令,如果复制成了多行,请自行去掉换行
make && make install
至此,arm-gdb已经安装完毕,环境都配好了,上面make安装gdb可能会报错,但是确实是安装好了,可以按照实验资料上面的用法开始调试运行了。
六、ex12无法运行
直接运行ex12例子中的make run会报错:
qemu-system-arm: Cirrus VGA not available
这是因为cirrus是过时的东西,需要修改成其他的图像显示方式,这里我用std运行成功了。
步骤:
在ex12目录下gedit Makefile编辑文件
将此处的cirrus改成std:
然后保存,再make run就没有问题了。