前言

最近我感觉自己比较浮躁,重来没有好好地沉下心来做一件事情,而且针对自己在专业水平上仍然还有很多欠缺,于是我想我应该为自己做些什么来证明一下自己真的是潜心研究东西的人,于是我萌生了一个想法,真正地写一系列的博客,将ARM的结构体系完完全全地梳理一遍!虽然是学过了,但是学得应该仅仅是皮毛吧!正好趁着自己还有时间,为什么不做一个自己想认真做的事情呢?

系列博客的介绍

博客园里面的大神们都很多,有许多人对Linux、ARM等都有相应的了解,因而,如果你是老鸟的话,就当飘过啦,如果你是新手的话,哈哈,那么现在正是为你而准备的大餐了!

准备的博客如下:

  • ARM概述
  • ARM指令系统分类及其寻址方式
  • 掌握ARM指令集
  • ARM汇编语言
  • C\C++以及汇编语言的混合编程
  • 异常中断处理

这些仅仅是大类,那么细节方面我会慢慢的补充的!

ARM概述——ARM的历史与应用范围

那么首先我会介绍一下ARM的历史与应用范围作为第一篇博客,意在为系列博客开个头吧!不对,我忘了说ARM概述底下我会提供哪些东西了!

ARM概述系列的目录

  1. 什么是ARM

    • ARM公司简介及应用的领域
    • ARM的体系版本
    • ARM体系变种
    • ARM处理器系列
  2. ARM处理器简介
    • ARM处理器模式
    • ARM寄存器介绍
    • ARM体系异常中断简介

大概的样子就是我介绍ARM概述的轮廓了!

ARM公司历史

我想有很多人都知道有ARM这个字,那么我想问,你们知道这个词是咋么来的吗?知道它的原称是什么吗?有人说我百度一下不就知道了吗?(度娘果然是万嫩的)的确如此,但是我还是要带你走一走ARM的历史道路!

  • 1978年的时候,Hermann Hauser 和Chris Curry两基友在英国剑桥创办了CPU公司
  • 1979年,CPU公司改名为Acorn计算机公司

值得一提的是,当时两基友想用摩托罗拉公司的16位芯片来着,然后发现500的机子,居然他么的100是用来买芯片,两穷屌就苦逼了,要找便宜的呀,于是向Intel公司要80286芯片设计资料,Intel多牛逼的公司啊,压根儿就看不起这两穷屌,坚决不给资料!(为何我都有种深切的带入感)于是只能自己研究了,这梁子就结大发了,当ARM翻身当老大的时候,Intel真的哭了!Acorn就是ARM的前身!

  • 1985年,Roger Wilson和Steve Furber设计了他们自己的第一代32位、6M Hz的处理器,用它做出了一台RISC指令集的计算机,简称ARM(Acorn RISC Machine)。这就是ARM这个名字的由来

RISC 就是精简指令操作系统,Acorn终于有了突破,这个时代可能ARM不是最强,但是ARM将带来新的世界

  • 1990年11月27日,Acorn公司正式改组为ARM计算机公司。(终于ARM公司正式成立了,Intel给老子等着!)
  • 20世纪90年代,将设计方案授权(licensing)给其他公司

在此之前呢,ARM公司都在干生产芯片的事,我造,我造,我一直造,但是Intel厂比你多,封闭式的技术创造比你牛逼啊?ARM始终干不过人家啊!

ARM公司郁闷了,我不信了,凭什么我就干不过人家呢?于是ARM公司想啊,当时我们是咋么发展起来的,就是这些老的企业把握技术不给我们,只能自己研究了,那么我们号召全世界的人一起参与我们的芯片设计与生产,Intel公司有多牛啊?能干得过全世界的人们?(高手永远都在民间啊!)于是ARM公司搞了一个超级牛逼的方案(授权)

那么有多少家公司在这个过程中得到了授权呢?(等下,貌似还漏了一个人,乔帮主,靠,苹果公司的眼光不是一般的牛逼啊!投资ARM公司150万英镑给ARM公司进行改组,乔帮主牛逼哄哄地说:“有钱,任性”,因此苹果公司敢自己造A7,A8芯片啊!)

Atmel、Broadcom、Cirrus Logic、Freescale(于2004从摩托罗拉公司独立出来)、Qualcomm、富士通、英特尔(借由和Digital的控诉调停)、IBM,英飞凌科技,任天堂,恩智浦半导体(于2006年从飞利浦独立出来)、OKI电气工业,三星电子,Sharp,STMicroelectronics,德州仪器和VLSI等许多这些公司均拥有各个不同形式的ARM授权。

ARM的应用领域

ARM的应用可以说是,涉及到了我们生活的方方面面。

  • 无线设备:手机、pda
  • 无线蓝牙:德州仪器的CC2540就是
  • 联网:ADSL芯片组
  • 消费电子:MP3\MP4 数字机顶盒 游戏机
  • 汽车:驾驶、安全和车载娱乐系统
  • 存储设备:硬盘、闪存卡
  • 成像:打印机、扫描仪
  • 安全产品:32位SIM卡

今天就到这里了!欢迎关注连载!求关注,求follower!

ARM的体系结构与编程系列博客——ARM的历史与应用范围的更多相关文章

  1. ARM的体系结构与编程系列博客——ARM处理器系列介绍

    ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...

  2. ARM的体系结构与编程系列博客——ARM体系版本

    ARM体系版本前言 很多人都知道,ARM有许多版本,口中最长说的就是ARM7\ARM9\ARM11,诚然,这个的确是ARM处理器的版本,但绝对不是ARM的版本,其实ARM到迄今为止经历了6代版本,随着 ...

  3. ARM的体系结构与编程系列博客——ARM体系变种

    ARM体系变种的简介 有人会很奇怪一件事情,ARM居然会变种,不会是基因突变了吧,呵呵,其实ARM变种通俗一点来讲呢,就是ARM突然具备了一种特定的功能!并非是基因突变哦!ARM是reboot好不好? ...

  4. 窥探Swift系列博客说明及其Swift版本间更新

    Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...

  5. Flutter 即学即用系列博客——03 在旧有项目引入 Flutter

    前言 其实如果打算在实际项目中引入 Flutter,完全将旧有项目改造成纯 Flutter 项目的可能性比较小,更多的是在旧有项目引入 Flutter. 因此本篇我们就说一说如何在旧有项目引入 Flu ...

  6. Django 系列博客(四)

    Django 系列博客(四) 前言 本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改 ORM简介 ORM全称是:Object Relational Mappin ...

  7. JavaScript 系列博客(一)

    JavaScript 系列博客(一) 前言 本系列博客为记录学习 JavaScript 的学习笔记,会从基础开始慢慢探索 js.今天的学习笔记主要为 js 引入.定义变量以及 JavaScript 中 ...

  8. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  9. Flutter 即学即用系列博客——05 StatelessWidget vs StatefulWidget

    前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 ...

随机推荐

  1. RandomForest in Spark MLLib

    决策树类模型 ml中的classification和regression主要基于以下几类: classification:决策树及其相关的集成算法,Logistics回归,多层感知模型: regres ...

  2. Linux C++ - IP地址转换函数

    1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...

  3. 【加密算法】DES

    一.简介 DES对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码),是一种对称加密算法. ...

  4. c# list修改某一个属性的值

    public class info() { public string name{get;set;} public string age{get;set;} } list<info> li ...

  5. c# .net中的简单Job

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. Install Nginx on CentOS 7

    To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with ...

  7. 使用.NET Core 2.1的Azure WebJobs

    WebJobs不是Azure和.NET中的新事物. Visual Studio 2017中甚至还有一个默认的Azure WebJob模板,用于完整的.NET Framework. 但是,Visual ...

  8. MyCat - 背景篇(1)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. SQL与NoSQL 目前,对于互联网海量数据的存储以及处理,按使用场景,分为OLTP(联机事务处理,比如即时 ...

  9. day52 进程与守护进程

    http://www.cnblogs.com/Eva-J/articles/8253549.html 博客参考. 多进程聊天 守护进程. 多进程 1.Unix/Linux:fork()调用实现多进程. ...

  10. “全栈2019”Java多线程第二十章:同步方法产生死锁的例子

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...