ARM简介[1]


1. ARM只卖知识产权,不卖(物理的,实质的)产品。
    全世界100多家公司购买了ARM授权,包括三星,Freescale、NXP Semiconductors、STMicroelectronics、Texas Instruments ,Toshiba,Analog Device,atmel,microsemi...具体参看ARM官网
    
    经典 ARM 处理器 许可证数
        ARM11 系列 82
        ARM9 系列 271

Cortex 处理器 许可证数
        Cortex-A 86
        Cortex-R 22
        Cortex-M 123
        
        
2. ARM processor family:
    ARM7,ARM9,ARM11,Cortex-A,Cortex-R,Cortex-M,SecurCore
    ARM 11 之後分成三类:
    Cortex - A/R/M
    Cortex - A 系列面向尖端的基于虚拟内存的操作系统和用户应用;
    Cortex - R 系列针对实时系统;
    Cortex - M 系列对微控制器。

ARM7 系列- 面向普通应用的经典处理器
    ARM9 系列 - 基于 ARMv5 架构的常用处理器
    ARM11 系列 - 基于 ARMv6 架构的高性能处理器
    ARM 专家处理器
    SecurCore - 面向高安全性应用的处理器。
    FPGA Cores - 面向 FPGA 的处理器
    ARM Cortex 应用程序处理器
    ARM Cortex 嵌入式处理器

3. 为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了8种主要的ARM指令集体系结构版本,以版本号V1~V8表示.[2]

注意ARM7和ARMV7所表达的含义不同,一个是处理器家族代号,一个是指令集代号.
 

    ARMv1:
    该版本的原型机是ARM1,没有用于商业产品。
    ARMv2:
    对V1版进行了扩展,包含了对32位结果的乘法指令和协处理器指令的支持。
    ARMv3:
    ARM公司第一个微处理器ARM6核心是版本3的,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。

ARMv4:
    当前应用最广泛的ARM指令集版本。
    ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。

ARMv5:
    ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。
    ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。
    ARM10也采用。
    其中后缀意义如下:
    E:增强型DSP指令集。包括全部算法和16位乘法操作。
    J:支持新的Java。

ARMv6:
    采用ARMv6核的处理器是ARM11系列。
    ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。
    ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。
    ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基础上增加MMU、TrustZone。
    ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基础上可以包括1-4 核SMP、MMU。

ARMV7:
    Cortex-A15处理器、Cortex-A12处理器、Cortex-A9处理器、Cortex-A8处理器、Cortex-A7处理器、Cortex-A5处理器

ARMV8:
    Cortex-A57处理器、Cortex-A53处理器


 
4.经典 ARM 处理器: ARM7,9,11
    ARM7是冯诺依慢结构
    ARM9、ARM11是哈佛结构,所以性能要高一点。
    ARM9和ARM11大多带内存管理器,跑操作系统好一点,ARM7适合裸奔。

ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)

ARM7工控用的一般是ST公司的如STR73x STM32F系列,三星的44b0,atmel的AT91系列;
    ARM9系列一般是三星公司 S3C2440
    ARM11 一般是手机上用的。

5. cortex-m3和ARM11区别:
cortex-m3的架构(ARMv7)比ARM11(ARMv6)的版本高,但是性能不如ARM11.
但是cortex—m系列的芯片的应用主要在低端(就相当于一个单片机,不跑OS),从性能上来说ARM11要比cortex-m3要好不少.

6. 51 vs arm
    51单片机寄存器比较少,指令只有111条;
    而arm芯片寄存器较多,指令集也多,要掌握它需要耐心和时间;
    所以,为了简化嵌入式软件的编程工作量,生产公司把寄存器的操作搞定,封装成函数,这就是固件函数库。
    比如意法半导体(ST.COM)的《STM32F10xxx固件函数库.pdf》。
 
7. 学习arm编程,买开发板的话一般用arm9,比如:三星S3C2440开发板,mini2440开发板
    arm11太贵(一般2k以上),arm7不能跑操作系统。

2410和2440都是三星公司生产的基于ARM9内核的芯,资源上相差不大,2440多了camara接口,速度要更快一些。
    上边讲的版本是指内核版本,而各个公司出的发行号又各有不同。比如三星的2440,atmel的9260. 就好比linux的内核版本号与红帽子的发行号不一样是一个道理。

8. ARM开发需要
    1,硬件(带arm芯片的开发板),
    2,下载线或仿真器(J-Link等)及其驱动,
    3,集成开发环境
        ADS(好像用的少了),
        MDK412-keil( arm收购),
        IAR Embedded Workbench for arm.
 
9. 常用系列
ST系列 ,NXP系列 , TI系列 ,ATMEL系列,Samsung 系列
先熟悉GPIO,再熟悉串口,中断,定时器,flash等,熟悉好具体的外设操作,然后是stm32里搭建uCos系统,Linux系统。

10. 趋势
不跑操作系统,价格低一点的:ARM7、cortex-M3等等。
性价比高,可跑也可不跑操作系统的:ARM9、cortex-Rx等等。
性能高的,通常要跑操作系统的:ARM10、ARM11、Cortex-A8等等。
成熟的:ARM7\ARM9\ARM11。
发展趋势:Cortex-A、Cortex-R、Cortex-M。
其实弄ARM大多还是在嵌入式领域,不过现在很多上网本也开始ARM了

参考:

1. ARM入门知识点整理 http://buluo.qq.com/p/detail.html?bid=14359&pid=497468-1468503399&from=dongtai

2. ARM 指令集版本和ARM版本 http://blog.sina.com.cn/s/blog_602f87700100kaa3.html

ARM简介(科普文)的更多相关文章

  1. Hadoop科普文——常见的45个问题解答(CSDN)

    Hadoop科普文——常见的45个问题解答 1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式 全分布式模式 2.  单机(本地)模式中的注意点? 在单机模式(standalon ...

  2. React半科普文

    React半科普文 什么是React getting started 文件分离 Server端编译 定义一个组件 使用property 组件嵌套 组件更新 Virtual DOM react nati ...

  3. 科普文:从人人网看网络科学(Network Science)的X个经典问题

    转:https://zr9558.wordpress.com/2013/12/05/科普文:从人人网看网络科学(network-science)的x个经典问/ 长文,写了N个小时写完的.你肯定能看懂, ...

  4. 前端科普文—为什么<!DOCTYPE> 不可或缺

    When question comes 你一定在 HTML 页面最前面看到过这样一行代码(比如 百度): <!DOCTYPE html> 或者说类似这样的(比如 博客园-韩子迟 PS:博客 ...

  5. Retrofit 简介 wiki 文档

    简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...

  6. 科普文:Node.js 如何上传文件到后端服务【转】

    原文链接 https://www.yuque.com/egg/nodejs/httpclient-upload 背景 互联网时代,无数服务是基于 HTTP 协议进行通信的. 除了常见的 前端浏览器 - ...

  7. 科普文,搭建python开发环境

    Python简介!首先,是一门面向对象的程序设计语言,先说3个优点!1.有条理,简单,易学,易用.2.强大!可以把其他编程语言制作的模块利用起来.3.拥有丰富的库.Python作为高级编程语言,拥有的 ...

  8. 26 JavaScript HTML DOM简介&方法&文档

    HTML DOM: Document  Object  Model 文档对象模型.是HTML的标准对象模型和编程接口.(JavaScript只是可以操作HTML DOM的语言之一) 定义了HTML元素 ...

  9. Git科普文,Git基本原理&各种骚操作

    Git简单介绍 Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计. Git工作流程以及各个区域 Work ...

随机推荐

  1. 在python文本编辑器里如何设置Tab为4个空格

    python中缩进一般为四个空格,我总结3种常用编辑器中种如何设置Tab键为四个空格 第一种:下载python3.5时自带de 一个IDLE编辑器 在Options选项下的Configure IDLE ...

  2. VS Code - Debugger for Chrome

    VS Code - Debugger for Chrome调试JavaScript的两种方式   VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于 ...

  3. python基础学习笔记5--对象

    对象(object) 1.对象(object): 面向对象程序设计重要术语. 对象的特性:多态性.封装性.继承性 >>def add(x,y): return x+y 对于很多类型的参数都 ...

  4. 求1~n直接1出现的次数

    参考前人的统计思想:分别统计个.十.百...亿等第N位上1出现的次数. 如ABCDE,在统计D位1出现的次数时,用D做分割符,ABC为Before,E为After. 分情况考虑:(n为D的length ...

  5. .NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别

    原文http://www.cnblogs.com/mgen/archive/2011/12/04/2276238.html 比如这样一个类,我们用XmlArrayItem特性标明数组内出现的元素类型: ...

  6. Euromonitor 2013年奢侈品报告精选 |华丽志

    Euromonitor 2013年奢侈品报告精选 |华丽志 Euromonitor 2013年奢侈品报告精选

  7. ubuntu-12.04.4-server安装

    一.系统ISO下载      下载地址:http://www.ubuntu.com/download       根据自己的需求下载,我的电脑配置一般,因此选择32位的.   二.虚拟机配置      ...

  8. Cube Stacking(并差集深度+结点个数)

    Cube Stacking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 21567   Accepted: 7554 Ca ...

  9. Eclipse、MyEclipse优化,提高运行速度

    MyEclipse 是公认的优秀的软件开发工具,使用非常广泛.相信很多人在使用的过程中,发现其运行速度比较慢,因为每次操作的背后,它调用了很多的命令,执行了很多操作:但是其中大部分的操作都是非必须的: ...

  10. .Net之一般处理程序

    1.一般处理程序是什么? 答:一般处理程序是以.ashx结尾的文件,默认命名为Handler1.ashx. 用在Web项目中,也就是我们常说的网站项目. 2.新建一个一般处理程序 1.1 新建一个空网 ...