前言

最近我感觉自己比较浮躁,重来没有好好地沉下心来做一件事情,而且针对自己在专业水平上仍然还有很多欠缺,于是我想我应该为自己做些什么来证明一下自己真的是潜心研究东西的人,于是我萌生了一个想法,真正地写一系列的博客,将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. 【TypeScript】TypeScript 学习 3——类

    在 EcmaScript 6 中,我们将会拥有原生的类,而不是像现在通过原型链来实现.使用 TypeScript 我们能提前体验这一特性. 首先来看看一个简单的例子: class Greeter { ...

  2. PYQT5实现 关闭 提示弹框

    当关闭窗口时,要实现如下功能: def closeEvent(self, event): reply = QtWidgets.QMessageBox.question(self, '警告', '退出后 ...

  3. jquery批量控制表单元素

    网上查了很久,避免下次再遇到相同的问题,记录一下: $("form input").prop("readonly", true); $("form i ...

  4. 《JavaScript》高级程序设计第7章 函数表达式

    7.2 闭包 定义: 闭包是指有权访问另一个函数作用域中的变量的函数. 理解闭包: 作用域链: 当某个函数被调用时,会创建一个执行环境以及相应的作用域链. 作用域链中,外部函数的活动对象始终处于第二位 ...

  5. Android 创建自定义 View 的属性 (attrs) 时需要注意的问题

    自定义 View 的属性并不难,可以参照官方的文档 https://developer.android.com/training/custom-views/create-view.html 但是需要注 ...

  6. Python3.5 学习十二 数据库介绍

    MYSQL介绍: 主流三种数据库:Oracle.Mysql.Sqlserver Mysql安装和启动: windows 1安装 2启动服务 3进入bin目录,打开命令行 4 mysqladmin -u ...

  7. 为什么子元素设置margin-top会作用在父元素上?

    原因在于:CSS 外边距合并 复现: <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  8. centos6下无法使用lsof命令"-bash: lsof: command not found"

    1. 问题描述在centos下, 无法使用命令lsof, 出现以下信息:# lsof -i:3690-bash: lsof: command not found2. 解决方法我们可以通过yum来安装: ...

  9. Linux CentOS7系统探索

    这两天,突发奇想,想着用着微软家的windows系统很多年了,也想尝试一下其他的操作系统.很快的就想到了Linux操作系统,它不是面向用户的,而是面向服务器的,在服务器端的市场中占了很大的市场份额,备 ...

  10. 配置文件备份方案(expect+shell)

    需求描述:备份所有线上服务器squid.httpd.mysql.nginx的配置文件 环境:在公司内网采用expect+shell脚本模式,进行批量备份.expect脚本通过ssh登录服务器,从本地c ...