ARM简介(科普文)
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简介(科普文)的更多相关文章
- Hadoop科普文——常见的45个问题解答(CSDN)
Hadoop科普文——常见的45个问题解答 1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式 全分布式模式 2. 单机(本地)模式中的注意点? 在单机模式(standalon ...
- React半科普文
React半科普文 什么是React getting started 文件分离 Server端编译 定义一个组件 使用property 组件嵌套 组件更新 Virtual DOM react nati ...
- 科普文:从人人网看网络科学(Network Science)的X个经典问题
转:https://zr9558.wordpress.com/2013/12/05/科普文:从人人网看网络科学(network-science)的x个经典问/ 长文,写了N个小时写完的.你肯定能看懂, ...
- 前端科普文—为什么<!DOCTYPE> 不可或缺
When question comes 你一定在 HTML 页面最前面看到过这样一行代码(比如 百度): <!DOCTYPE html> 或者说类似这样的(比如 博客园-韩子迟 PS:博客 ...
- Retrofit 简介 wiki 文档
简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...
- 科普文:Node.js 如何上传文件到后端服务【转】
原文链接 https://www.yuque.com/egg/nodejs/httpclient-upload 背景 互联网时代,无数服务是基于 HTTP 协议进行通信的. 除了常见的 前端浏览器 - ...
- 科普文,搭建python开发环境
Python简介!首先,是一门面向对象的程序设计语言,先说3个优点!1.有条理,简单,易学,易用.2.强大!可以把其他编程语言制作的模块利用起来.3.拥有丰富的库.Python作为高级编程语言,拥有的 ...
- 26 JavaScript HTML DOM简介&方法&文档
HTML DOM: Document Object Model 文档对象模型.是HTML的标准对象模型和编程接口.(JavaScript只是可以操作HTML DOM的语言之一) 定义了HTML元素 ...
- Git科普文,Git基本原理&各种骚操作
Git简单介绍 Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计. Git工作流程以及各个区域 Work ...
随机推荐
- Ztree异步树加载
JSP代码片段 <%@ page language="java" contentType="text/html; charset=utf-8" pageE ...
- switch使用方法之一周食谱例
/* Name:switch使用方法之一周食谱例 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月17日 03:52:53 Description: */ ...
- .NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别
原文http://www.cnblogs.com/mgen/archive/2011/12/04/2276238.html 比如这样一个类,我们用XmlArrayItem特性标明数组内出现的元素类型: ...
- 在美国,一名 Uber 司机能赚多少?
在美国,Uber 司机是最热门的职业.有了 uberX,任何有车一族都能成为司机.Uber 让我们很容易成为司机. 虽然 Uber 做不到赚得盆满钵满,但对于水深火热的司机这一行来说,多了许多盈利机会 ...
- 导出csv文件代码示例
//当数据量达到一定级别后(大概60000以上),excel会溢出,不能全部显示,而新版的csv好像不会出现这个问题.为什么用好像,我也是听别人说,暂时没有去验证. <?php $sql = & ...
- 从Android中Activity之间的通信说开来[转]
http://www.cnblogs.com/virusswb/archive/2011/08/02/2124824.html 引言 最近两个星期在研究android的应用开发,学习了android应 ...
- linux c 通过文件描写叙述符获取文件名称
在linux中每一个被打开的文件都会在/proc/self/fd/文件夹中有记录,当中(/proc/self/fd/文件描写叙述符号:这个文件是符号文件)的文件就是文件描写叙述符所相应的文件. 而re ...
- SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释
一.SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释:根据datatable名填充Dataset.myda.Fill(ds, ...
- 揭秘Amazon反应速度超快的下拉菜单
揭秘Amazon反应速度超快的下拉菜单 如果你以前觉得Amazon这家公司不太在用户体验上下功夫,这篇文章可能会改变你的看法. Amazon主页的左上角有一个商品分类浏览的下拉菜单.当鼠标从菜单中的选 ...
- API和DLL
API API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用 ...