我与ARM的那些事儿1初识ARM

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

微处理器说白一点就是"脑子",那么这个脑子它是咋么组成的呢?通常有3大部分
控制单元
算术逻辑单元
寄存器

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

所谓流水线的工作模式,就是说一个程序把他分成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的更多相关文章
- ARM与x86之3--蝶变ARM
http://blog.sina.com.cn/s/blog_6472c4cc0100lqr8.html 蝶变ARM 1929年开始的经济大萧条,改变了世界格局.前苏联的风景独好,使得相当多的人选择了 ...
- 【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构
作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...
- ARM和STM32的区别及ARM公司架构的发展
ARM和STM32的区别及ARM公司架构的发展 转:https://www.cnblogs.com/kwdeblog/p/5260348.html ARM是英国的芯片设计公司,其最成功的莫过于32位嵌 ...
- 【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集
作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...
- 我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置
前言 在博客园里面我搜索了老半天,找相应的mini2440的裸机开发的程序,让我挺失望的就是居然没有人对做arm这块做详细的解答,到底如何去做,到底如何去配置,都不清楚,让我很纠结,那么我花了近一星期 ...
- 我与ARM的那些事儿2JINLK烧录nor flash
前言 最近在研究mini2440的友善之臂,但是我拿着的是实验室早期买的开发板,在做裸机开发的过程中老是不能很好地使用最新版的minitools进行烧录,因而各种不爽,因为生成了bin文件不能很好地传 ...
- Docker那些事儿之初识Docker
公司内部一直在使用Docker进行服务的部署和应用的升级,从开始使用Docker一直到线上的部署以及一些基础服务的开发本人都有参与,而且自己的网站也是在Docker的基础之上进行构建的,想想也需要总结 ...
- 浅析arm的异常、中断和arm工作模式的联系
说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...
- ARM 汇编指令集 特点5:ARM 多级指令流水线
1.为增加处理器指令流 的速度,ARM使用多级流水线. 就是举个例子: mov r1,#0 ,这条指令 分几个人做,一个人从存储器取指令,解码指令中用到的寄存器,寄存器运算. 这样三步 :如果一个人做 ...
随机推荐
- Android ImageView,ImageButton 与 Button
1. ImageButton 继承自 ImageView.两者具备甚小,因为 ImageView 同样可以点击相应,同样有点击的阴影效果.实际上他们的区别在于默认 style.比如同样放一个背景和一个 ...
- 201621123023《Java程序设计》第13周学习总结
一.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 二.为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网络同 ...
- ClamAV学习【8】——64位Windows7下编译运行实践
之前用SourceInsight静态分析了ClamAV引擎源码,现在打算开始动态研究下.不过出师不利,一开始就遇到纠结的问题,能力还有待提高. 从官网下了一个VS2005工程的源码包(http://d ...
- let、const和var的区别
1.let是块级作用域,函数内部使用let定义后,对函数外部无影响. <!DOCTYPE html> <html lang="en"> <head&g ...
- Python(简单计算器)
参考:https://www.cnblogs.com/alex3714/articles/5169958.html import re ret = re.search('\([^()]+\)','(1 ...
- memcache内存存储
memcache的内存分配默认是采用了Slab Allocator的机制分配.管理内存.在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的. 但是,这种方式会导致内存 ...
- CentOS6.5加域
为减少错误已提前关掉了SELinux,防火墙. yum install nss-pam-ldapd -y 第一步:更改主机名为linux.itxdm.me 第二步:更改setup内左边Winbind ...
- javascript简要笔记
零. 数据 0. 变量 分为字符串,数字,undefined, null,对象 undefined类型是只声明了变量,但是没赋值 可以使用typeof()函数来查看变量类型 例子1 var ...
- 异步 JavaScript - 事件循环
简评:如果你对 JavaScript 异步的原理感兴趣,这里有一篇不错的介绍. JavaScript 同步代码是如果工作的 在介绍 JavaScript 异步执行之前先来了解一下, JavaScrip ...
- Springboot接口简单实现生成MySQL插入语句
Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...