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. java中常用的数据加密算法

    以下为加密的工具类: import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; im ...

  2. MySQL的InnoDB和MyISAM比较

    InnoDB 1)虽然不支持用户创建聚族索引,但InnoDB会对主键建立聚簇索引.如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替.如果不存在这样的索引,InnoDB会定义一个隐藏的 ...

  3. Effective C++学习笔记——构造/析构/拷贝运算

    条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数. 应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会 ...

  4. Qt中如果通过QStyle自定义能够跨平台的界面控件

    我们经常会碰到需要定制界面控件的要求.如果只是在一个平台上,比如说你的控件只需要在Windows上显示,那很好办,Hard code 你的look and feel就可以了.但是如果界面需要在不同平台 ...

  5. delphi调用外部程序打开文件

    delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOper ...

  6. mongoose的用法(注:连接数据库)

    第一步:连接数据库: mongoose.connect('mongodb://'+user+':'+pass+'@mongo.duapp.com:'+port+'/xzWIRHYlWLAApdsfAz ...

  7. 掌握下面常用函数,学php不再难

    一.写入文件 1.打开资源(文件)fopen($filename,$mode) 2.写文件fwrite($handle,$str) 3.关闭文件fclose($handle) 4.一步写入file_p ...

  8. HDU - 1116 Play on Words(欧拉图)

    有向图是否具有欧拉通路或回路的判定: 欧拉通路:图连通:除2个端点外其余节点入度=出度:1个端点入度比出度大1:一个端点入度比出度小1 或 所有节点入度等于出度 欧拉回路:图连通:所有节点入度等于出度 ...

  9. JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?

    一.静态包含指令<%@include file="fileurl"%> 两个jsp页面的<%@page contentType="text/html:c ...

  10. [Swust OJ 409]--小鼠迷宫问题(BFS+记忆化搜索)

    题目链接:http://acm.swust.edu.cn/problem/409/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...