最近一直在研究ARM,说到ARM,我们首先想到了是三星、高通等公司,这些公司都制造CPU的,其实ARM也是一家公司,只不过它是提供最核心的逻辑电路,而且它的赚钱方式是与其他公司进行双赢的!你卖出多少芯片,我就收这些芯片的一点分红,真他么机智的公司!

微处理器说白一点就是"脑子",那么这个脑子它是咋么组成的呢?通常有3大部分

控制单元

算术逻辑单元

寄存器

那么ARM有哪些特点呢?

  1. 支持Thumb/ARM双指令集
  2. 采用3级流水线/5级流水线
  3. 采用哈弗结构,有指令cache和数据cache
  4. 寻址方式灵活简单、执行效率高
  5. 支持大端小端格式
  6. 支持byte\halfword\word三种数据类型
  7. 7种模式
  8. 采用片上AMBA
  9. 采用存储器映射I/O的方式
  10. 具备协处理器接口
  11. 3.0v以下工作电压
  12. 体积小、低成本、高性能

所谓流水线的工作模式,就是说一个程序把他分成n多块来处理,要知道真正意义上CPU只处理一个资源,那么把程序分解开来,像流水线一样处理多个程序,那么效率不就马上上来了!

个人觉得ARM了不起的地方就在这里,可以在ARM状态和Thumb状态进行相互切换,解决了不少因为指令可能导致系统的臃肿的问题

ARM状态:32位,这种状态下执行的是字方式的ARM指令;

Thumb状态:16位,这种状态下执行半字方式的ARM指令。

7种工作模式,玩过的都知道!

除用户模式,其他模式叫特权模式

除用户、系统模式,其他模式叫异常模式

ARM有37个寄存器!31个为通用寄存器、6个为状态寄存器

光了解寄存器还远远不够,要知道寄存器也有你需要注意的地方!

正常情况下:

R14会保存好回调时主程序的地址。

当发生异常嵌套时,这些异常之间可能会发生冲突。

R14_IRQ原来保存的是地址A,可是当发生嵌套的时候,原来保存的地址A被修改了,于是完成嵌套后的程序,他的PC指针完全不知道要指向谁了?于是ERROR了~~~~~

至于寻址方式,好吧,我其实想说,我又懒了,因为我觉得我自己也说不清寻址方式。回头我再去研究一下《ARM体系结构与编程》这本书,汇编不熟悉,也不清楚,硬伤~~~

靠,不知不觉地写了那么多!我果然是一个勤奋的孩子~~~不扯了。

下载地址:http://url.cn/JbTFjf

找到SETUP.EXE,然后各种下一步。

等到出现一个粉红色的界面,记得,还是下一步哦!

然后把

这个复制到你安装的路径下,

我就用默认的路径:C:\Program Files (x86)\ARM\ADSv1_2

然后黏贴。

然后再粉红界面上加载里面的

大功告成!

于是你可以在开始里面找到

启动!

至于如何用呢?且听我下回分解!

同时欢迎各位来关注我的微博:http://weibo.com/samuelwnb/

我与ARM的那些事儿1初识ARM的更多相关文章

  1. ARM与x86之3--蝶变ARM

    http://blog.sina.com.cn/s/blog_6472c4cc0100lqr8.html 蝶变ARM 1929年开始的经济大萧条,改变了世界格局.前苏联的风景独好,使得相当多的人选择了 ...

  2. 【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

  3. ARM和STM32的区别及ARM公司架构的发展

    ARM和STM32的区别及ARM公司架构的发展 转:https://www.cnblogs.com/kwdeblog/p/5260348.html ARM是英国的芯片设计公司,其最成功的莫过于32位嵌 ...

  4. 【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

  5. 我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

    前言 在博客园里面我搜索了老半天,找相应的mini2440的裸机开发的程序,让我挺失望的就是居然没有人对做arm这块做详细的解答,到底如何去做,到底如何去配置,都不清楚,让我很纠结,那么我花了近一星期 ...

  6. 我与ARM的那些事儿2JINLK烧录nor flash

    前言 最近在研究mini2440的友善之臂,但是我拿着的是实验室早期买的开发板,在做裸机开发的过程中老是不能很好地使用最新版的minitools进行烧录,因而各种不爽,因为生成了bin文件不能很好地传 ...

  7. Docker那些事儿之初识Docker

    公司内部一直在使用Docker进行服务的部署和应用的升级,从开始使用Docker一直到线上的部署以及一些基础服务的开发本人都有参与,而且自己的网站也是在Docker的基础之上进行构建的,想想也需要总结 ...

  8. 浅析arm的异常、中断和arm工作模式的联系

    说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...

  9. ARM 汇编指令集 特点5:ARM 多级指令流水线

    1.为增加处理器指令流 的速度,ARM使用多级流水线. 就是举个例子: mov r1,#0 ,这条指令 分几个人做,一个人从存储器取指令,解码指令中用到的寄存器,寄存器运算. 这样三步 :如果一个人做 ...

随机推荐

  1. ffmpeg学习(二) 通过rtsp获取H264裸流并保存到mp4文件

    本篇将使用上节http://www.cnblogs.com/wenjingu/p/3977015.html中编译好的库文件通过rtsp获取网络上的h264裸流并保存到mp4文件中. 1.VS2010建 ...

  2. Centos7 创建Eclipse启动

    Eclipse是一个集成开发环境(IDE),包含一个基工作区和定制环境的可扩展插件系统.大部分使用 Java 编写,Eclipse 可以用来开发应用程序.通过各种插件,Eclipse 也可以用于其他编 ...

  3. .net core webapi 定义多版本与 Swagger 的文档输出

    前提: 需要nuget  以下两个程序集 Swashbuckle.AspNetCore 我暂时用的是  4.01: Microsoft.AspNetCore.Mvc.Versioning.ApiExp ...

  4. byte[] 数组和字符串的转换,与byte[] 数组和int类型的之间的转化

    我们先来看看byte bool  int ushort  等的定义 首先时byte[]数组与string之间的转换 string 转换位byte[] 数组 string str = "1-1 ...

  5. H - Birthday Paradox (生日悖论)

    点击打开链接 Sometimes some mathematical results are hard to believe. One of the common problems is the bi ...

  6. 1.2 Percona XtraDB Cluster Limitations

    摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...

  7. python3的全局变量和局部变量

    局部变量 定义在函数体内部的变量称为局部变量 函数的形参也是局部变量 局部变量的作用范围只在声明该局部变量的函数体内 局部变量在函数调用时被创建,在函数调用完成后自动销毁 全局变量 定义在函数体外,模 ...

  8. 2018徐州网络赛 - Trace

    题意:n个左下角为原点右上角在第一象限的矩形不断覆盖,求最后形成的图形的周长 x和y是独立的,分别维护两棵线段树,一棵表示x坐标下最大的y值,另一棵表示y坐标下最大的x值 从覆盖的角度来考虑,如果逆序 ...

  9. 16个最佳响应式HTML5框架分享

    HTML5框架可以快速构建响应式网站,它们帮助程序员减少编码工作,减少冗余的代码.如今有很多免费的HTML5框架可供使用,由于它们有着响应式设计.跨浏览器兼容.相对轻量级等特点,这些框架在开发中都十分 ...

  10. 不好意思啊,我上周到今天不到10天时间,用纯C语言写了一个小站!想拍砖的就赶紧拿出来拍啊

    花10天时间用C语言做了个小站 http://tieba.yunxunmi.com/index.html 简称: 云贴吧 不好意思啊,我上周到今天不到10天时间,用纯C语言写了一个小站!想拍砖的就赶紧 ...