起因
随着物联网及5G的到来,各种智能终端得到了前所未有的广泛发展,各种小型的终端设备层出不穷,而这些设备由于它们对便携性及低功耗的要求几乎无一例外的都选择了基于RISC架构的ARM处理器,作为一个手游的开发者,每天打交道的手机设备也都是运行在ARM处理芯片上的,本着刨根究底的精神就有了想要深入了解ARM相关知识的原始动力,因此趁着春节放假也在网上淘了一些比较好的学习教程跟大家分享
ARM的起源
https://zhuanlan.zhihu.com/p/350627290 这是知乎上一篇讲ARM起源史的文章,你肯定想不到大名鼎鼎的ARM芯片竟然间接起源于一档电视节目!
一个ARM的学习教程
https://azeria-labs.com/writing-arm-assembly-part-1/ 这是一个非常棒的ARM学习教程,里面的内容从最基础的知识开始讲起,很适合入门使用。
RaspberryPi环境搭建
需要注意的是如果你手上没有一个树莓派的硬件的话就需要通过x86的电脑虚拟一个基于arm的树莓派系统,教程中提到了一些相关虚拟环境的搭建方法,但都比较复杂,需要学习者对qemu、ubuntu、raspberryPi有比较好的了解,这里推荐大家一个基于docker的树莓派虚拟环境,https://github.com/lukechilds/dockerpi 这个很适合,只要你先在你的机器上安装好一个docker的环境即可(本人是在centos的系统上安装的,理论上只要支持docker的系统均可以),然后命令行输入
docker pull lukechilds/dockerpi
耐心等待一段时间的拉取后会进入下面的界面
输入树莓派默认账号:pi,密码:raspberry 即可进入创建好的树莓派系统了,输入sudo passwd root然后设着好密码后可以通过su root进入root权限,然后按照教程的推荐,在这个网址https://github.com/hugsy/gef 安装gdb的辅助工具GEF,具体的安装步骤如下(我使用的是最后一种gdb的方式):
好了,装完GEF之后就可以按照教程愉快的开始arm学习之旅啦!(注意:可以通过nano命令创建并编辑要测试的程序文件)