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. Ztree异步树加载

    JSP代码片段 <%@ page language="java" contentType="text/html; charset=utf-8" pageE ...

  2. switch使用方法之一周食谱例

    /* Name:switch使用方法之一周食谱例 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月17日 03:52:53 Description: */ ...

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

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

  4. 在美国,一名 Uber 司机能赚多少?

    在美国,Uber 司机是最热门的职业.有了 uberX,任何有车一族都能成为司机.Uber 让我们很容易成为司机. 虽然 Uber 做不到赚得盆满钵满,但对于水深火热的司机这一行来说,多了许多盈利机会 ...

  5. 导出csv文件代码示例

    //当数据量达到一定级别后(大概60000以上),excel会溢出,不能全部显示,而新版的csv好像不会出现这个问题.为什么用好像,我也是听别人说,暂时没有去验证. <?php $sql = & ...

  6. 从Android中Activity之间的通信说开来[转]

    http://www.cnblogs.com/virusswb/archive/2011/08/02/2124824.html 引言 最近两个星期在研究android的应用开发,学习了android应 ...

  7. linux c 通过文件描写叙述符获取文件名称

    在linux中每一个被打开的文件都会在/proc/self/fd/文件夹中有记录,当中(/proc/self/fd/文件描写叙述符号:这个文件是符号文件)的文件就是文件描写叙述符所相应的文件. 而re ...

  8. SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释

    一.SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释:根据datatable名填充Dataset.myda.Fill(ds, ...

  9. 揭秘Amazon反应速度超快的下拉菜单

    揭秘Amazon反应速度超快的下拉菜单 如果你以前觉得Amazon这家公司不太在用户体验上下功夫,这篇文章可能会改变你的看法. Amazon主页的左上角有一个商品分类浏览的下拉菜单.当鼠标从菜单中的选 ...

  10. API和DLL

    API API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用 ...