我与ARM的那些事儿1初识ARM
最近一直在研究ARM,说到ARM,我们首先想到了是三星、高通等公司,这些公司都制造CPU的,其实ARM也是一家公司,只不过它是提供最核心的逻辑电路,而且它的赚钱方式是与其他公司进行双赢的!你卖出多少芯片,我就收这些芯片的一点分红,真他么机智的公司!
本文引用地址://m.amcfsurvey.com/article/201901/396580.htm![](http://editerupload.eepw.com.cn/201901/473a46762f2aae6cd19cb7bff2e4067c.png)
微处理器说白一点就是"脑子",那么这个脑子它是咋么组成的呢?通常有3大部分
控制单元
![](http://editerupload.eepw.com.cn/201901/99209aa8bdc5737f31b56d5fc606aefe.png)
算术逻辑单元
寄存器
![](http://editerupload.eepw.com.cn/201901/d0eb8e6d24d3d1ed0a5f8801bfccea88.png)
那么ARM有哪些特点呢?
支持Thumb/ARM双指令集
采用3级流水线/5级流水线
采用哈弗结构,有指令cache和数据cache
寻址方式灵活简单、执行效率高
支持大端小端格式
支持bytehalfwordword三种数据类型
7种模式
采用片上AMBA
采用存储器映射I/O的方式
具备协处理器接口
3.0v以下工作电压
体积小、低成本、高性能
![](http://editerupload.eepw.com.cn/201901/6b3e2c7e5f58fc8102f2146cf696f714.png)
所谓流水线的工作模式,就是说一个程序把他分成n多块来处理,要知道真正意义上CPU只处理一个资源,那么把程序分解开来,像流水线一样处理多个程序,那么效率不就马上上来了!
![](http://editerupload.eepw.com.cn/201901/890d74cb651e3b0fdc52f435becc7d25.png)
![](http://editerupload.eepw.com.cn/201901/0dfb866340ae3191dd0c4cfbfcce42f9.png)
![](http://editerupload.eepw.com.cn/201901/a4f8c40e55e70330ae173fa2dd84682a.png)
个人觉得ARM了不起的地方就在这里,可以在ARM状态和Thumb状态进行相互切换,解决了不少因为指令可能导致系统的臃肿的问题
ARM状态:32位,这种状态下执行的是字方式的ARM指令;
Thumb状态:16位,这种状态下执行半字方式的ARM指令。
![](http://editerupload.eepw.com.cn/201901/e50e90163954ddc4c3c58ca692b5f5ef.png)
![](http://editerupload.eepw.com.cn/201901/06d59fa0db949a05d128c530e88fb627.png)
7种工作模式,玩过的都知道!
除用户模式,其他模式叫特权模式
除用户、系统模式,其他模式叫异常模式
![](http://editerupload.eepw.com.cn/201901/10d90a5592544a579540e49d96db1b1c.png)
ARM有37个寄存器!31个为通用寄存器、6个为状态寄存器
![](http://editerupload.eepw.com.cn/201901/2c18737658dace5c0f4fbec2bddf6c46.png)
![](http://editerupload.eepw.com.cn/201901/db611098b2fdc93e58f0b5556e5cdd28.png)
光了解寄存器还远远不够,要知道寄存器也有你需要注意的地方!
正常情况下:
![](http://editerupload.eepw.com.cn/201901/f2193a0107aa9d14036968cee90b1575.png)
R14会保存好回调时主程序的地址。
当发生异常嵌套时,这些异常之间可能会发生冲突。
![](http://editerupload.eepw.com.cn/201901/90bd8de7819cefce269cb33d10011afd.png)
R14_IRQ原来保存的是地址A,可是当发生嵌套的时候,原来保存的地址A被修改了,于是完成嵌套后的程序,他的PC指针完全不知道要指向谁了?于是ERROR了~~~~~
至于寻址方式,好吧,我其实想说,我又懒了,因为我觉得我自己也说不清寻址方式。回头我再去研究一下《ARM体系结构与编程》这本书,汇编不熟悉,也不清楚,硬伤~~~
![](http://editerupload.eepw.com.cn/201901/03b549889369e02c1495e546c55f9e0b.png)
靠,不知不觉地写了那么多!我果然是一个勤奋的孩子~~~不扯了。
下载地址:http://url.cn/JbTFjf
![](http://editerupload.eepw.com.cn/201901/f63c8057e29213b9423d6f91949c01e4.png)
找到SETUP.EXE,然后各种下一步。
等到出现一个粉红色的界面,记得,还是下一步哦!
然后把
![](http://editerupload.eepw.com.cn/201901/bd3c8ba04da3f8df3307acb99cd4a3ef.png)
这个复制到你安装的路径下,
我就用默认的路径:C:Program Files (x86)ARMADSv1_2
然后黏贴。
然后再粉红界面上加载里面的
![](http://editerupload.eepw.com.cn/201901/17e02f4d7fd6054f60ef974454a82aa8.png)
大功告成!
于是你可以在开始里面找到
![](http://editerupload.eepw.com.cn/201901/0678205613af682c43202b2d30c37002.png)
启动!
至于如何用呢?且听我下回分解!
评论