STM32介绍以及与通常ARM的区别
ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核----ARM系列,最常用的是ARM7和ARM9,
ARM公司主要提供IP核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器. ARM把这个核卖给各大半导体公司,如 Pllips 三星 ,ATMEL 等等,许多公司,甚至Intel.
ARM为了对付 8位机市场,最近推出了 Cortex-M3核,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器, Cortex_M3核 性价比更高,价格低,可以与8位单片机竞争
ARM Cortex-M3 处理器初探
单片机市场的规模可以用“巨无霸”来形容,每年能有20G片的出货量。世界各地的器件供应商纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。业界内部可谓是百花齐放,热闹非凡,好戏不断。各行各业对单片机能力的要求也一直“得寸进尺”,而且还又要马儿跑,又要马儿不吃草——处理器必须在不怎么增加主频和功耗的条件下干更多的活儿。 另一方面, 处理器之间的互连也在加深,看这一串串熟悉的字眼:串口,USB,以太网,无线数传„„处理器如欲支持这些数据通道,就必须在片上塞进更多的外设。软件方面的情况也如出一辙:应用程序的功能一直在花样翻新,性能需求也是变本加厉:更高的运算速度,更硬的实时能力,更多的功能模块,更炫的图形界面,„„所有这些要求单片机都得照单全收。
在这个大环境下,ARM Cortex‐M3处理器,作为Cortex系列的处女作,为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术,它的门数更低,性能却更强。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CM3上跑得很快很欢。相信用不了多久,CM3就一定能在32位嵌入式处理器市场中脱颖而出,像当年8051推动整个业界那样,再次放飞设计师的梦想,实现多年的夙愿!
二、CM3的招牌功夫包括:
• 性能强劲。在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。 • 功耗低。延长了电池的寿命——这简直就是便携式设备的命门(如无线网络应用)。
• 实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。
• 代码密度得到很大改善。一方面力挺大型应用程序,另一方面为低成本设计而省吃俭用。
• 使用更方便。现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。 • 低成本的整体解决方案。让32位系统比和8位/16位的还便宜,低端的Cortex‐M3单片机甚至还卖不到1美元。
遍地开花的优秀开发工具。免费的,便宜的,全能的,要什么有什么。降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。CM的内核架构非常精工细作,使它与C语言成为了一个梦幻绝配。优质的C程序代码三下五除二就可以移植并重用,使升级和移植一下子从拦路虎变成了纸老虎。
值得一提的是,CM3并不是第一个被拿去做万金油型处理器的内核。那廉颇虽老却依然骁勇的ARM7/ARM9处理器,在通用嵌入式处理器市场中德高望重,至今拥有无数铁杆粉丝。半导体业界的群英们,像NXP(philips)、TI、Atmel、OKI、ST等,都以ARM为内核,做出了各自身怀绝技的32位MCU。ARM7作为最受欢迎的32位嵌入式处理器,被载入了亮煌煌的几页史册——每年超过10亿片出货量,为各行各业的嵌入式设备中都找得到它们的身影。
CM3作为ARM7的后继者,大刀阔斧地改革了设计架构。从而显著地简化了编程和调试的复杂度,处理能力也更加强大。除此之外,CM3还突破性地引入了很多时尚的甚至崭新的技术,专门满足单片机应用程序的需求。比如,服务于“使命‐关键”应用的不可屏蔽中断,极度敏捷并且拥有确定性的嵌套向量中断系统,原子性质的位操作,还有一个可选的内存保护单元。这些令人惊艳和振奋的新特性,让老的ARM玩家们再次找到“初恋”时烈焰迸发的感觉,也使萍水相逢就有激爽触电般的体验!相信读者一旦有机会用到了它,就会为它的秀外慧中而赞叹,爱不释手!
Cortex-M3 处理器内核VS基于Cortex-M3的MCU
Cortex‐M3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。本书主讲处理器内核本身。如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。
一路走来让我们回顿一下ARM的进化史,你会知道为什么会有品种如此之多的ARM处理器和ARM架构。ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd”,当时它是三家公司的合资——它们分别是苹果电脑,Acorn电脑公司,以及VLSI技术(公司)。在1991年,ARM推出了ARM6处理器家族,VLSI则是第一个吃螃蟹的人。后来,陆续有其它巨头:包括TI, NEC, Sharp, ST等都获取了ARM授权,它们真正地把ARM处理器大面积地辅开,使得ARM处理器在手机,硬盘控制器,PDA,家庭娱乐系统以及其它消费电子中都大展雄才。
现如今,ARM芯片的出货量每年都比上一年多20亿片以上。不像很多其它的半导体公司,ARM从不制造和销售具体的处理器芯片。取而代之的是ARM把处理器的设计授权给相关的商务合作伙伴,让他们去根据自己的强项设计具体的芯片,这些伙伴可都是巨头啊。基于ARM低成本和高效的处理器设计方案,得到授权的厂商生产了多种多样的的处理器、单片机以及片上系统(SoC)。这种商业模式就是所谓的“知识产权授权IP”。
除了设计处理器,ARM也设计系统级IP和软件IP。为了挺它们,ARM开发了许多配套的基础开发工具、硬件以及软件产品。使用这些工具,合作伙伴可以更加舒心地开发他们自己的产品。 三、ARM的各种架构版本
ARM十几年如一日地开发新的处理器内核和系统功能块。这些包括流行的ARM7TDMI处理器,还有更新的高档产品ARM1176TZ(F)‐S处理器,后者能拿去做高档手机。功能的不断进化,处理水平的持续提高,年深日久造就了一系列的ARM架构。需要说明的是,架构版本号和名字中的数字并不是一码事。比如,ARM7TDMI是基于ARMv4T架构的(T表示支持“Thumb指令”); ARMv5TE架构则
是伴随着ARM9E处理器家族亮相的。ARM9E家族成员包括ARM926E‐S和ARM946E‐S。ARMv5TE架构添加了“服务于多媒体应用增强的DSP指令”。 后来又出了ARM11,ARM11是基于ARMv6架构建成的。基于ARMv6架构的处理器包括ARM1136J(F)‐S,ARM1156T2(F)‐S,以及ARM1176JZ(F)‐S。
ARMv6是ARM进化史上的一个重要里程碑:从那时候起,许多突破性的新技术被引进,存储器系统加入了很多的崭新的特性,单指令流多数据(SIMD)指令也是从v6开始首次引入的。而最前卫的新技术,就是经过优化的Thumb‐2指令集,它专为低成本的单片机及汽车组件市场。
ARMv6的设计中还有另一个重大的决定:虽然这个架构要能上能下,从最低端的MCU到最高端的“应用处理器”都通吃,但不能因此就这也会,那也会,但就是都不精。仍须定位准确,使处理器的架构能胜任每个应用领域。结果就是,要使ARMv6能够灵活地配置和剪裁。对于成本敏感市场,要设计一个低门数的架构,让她有极强的确定性;另一方面,在高端市场上,不管是要有丰富功能的还是要有高性能的,都要有拿得出手的好东西。最近的几年,基于从ARMv6开始的新设计理念,ARM进一步扩展了它的CPU设计,成果就是ARMv7架构的闪亮登场。在这个版本中,内核架构首次从单一款式变成3种款式。
•款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了
•款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又快又实时。 •款式M:用于深度嵌入的,单片机风格的系统中——本书的主角。 让我们再近距离地考察这3种款式:
•款式A(ARMv7‐A):需要运行复杂应用程序的“应用处理器”支持大型嵌入式操作系统(不一定实时——译注),比如Symbian(诺基亚智能手机用),Linux,以及微软的Windows CE和智能手机操作系统Windows Mobile。这些应用需要劲爆的处理性能,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上会配有Java支持,有时还要求一个安全程序执行环境(用于电子商务——译注)。典型的产品包括高端手机和手持仪器,电子钱包以及金融事务处理机。 •款式R(ARMv7‐R):硬实时且高性能的处理器。标的是高端实时市场。那些高级的玩意,像高档轿车的组件,大型发电机控制器,机器手臂控制器等,它们使用的处理器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。
•款式M(ARMv7‐M):认准了旧世代单片机的应用而量身定制。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率,都是至关重要的。
Cortex系列是v7架构的第一次亮相,其中Cortex‐M3就是按款式M设计的。到目前为止,Cortex‐M3也是款式M中被抚养成人的独苗。
STM32介绍以及与通常ARM的区别的更多相关文章
- 深入了解DSP与ARM的区别与联系
http://www.eeboard.com/bbs/thread-25219-1-1.html ARM微处理器的体系结构 了解DSP的体系结构 深入了解DSP与ARM的区别与联系 2011-09-3 ...
- [51CTO]给您介绍Windows10各大版本之间区别
给您介绍Windows10各大版本之间区别 随着win10的不断普及和推广,越来越多的朋友想安装win10系统了,但是很多朋友不知道win10哪个版本好用,为了让大家能够更好的选择win10系统版本, ...
- 我也介绍下sizeof与strlen的区别
本节我也介绍下sizeof与strlen的区别,很简单,就几条: 1. sizeof是C++中的一个关键字,而strlen是C语言中的一个函数:2. sizeof求的是系统分配的内存总量,而strle ...
- [转帖]Linux系统下x86和ARM的区别有哪些?
Linux系统下x86和ARM的区别有哪些? https://www.cnblogs.com/alantu2018/p/9209143.html 其实界限 越来越小了.. 问题: 最近在用三星的一款i ...
- 【转】STM32和ARM的区别
转自:http://www.cnblogs.com/nuc-boy/archive/2012/09/11/2680157.html 这个问题大概2009年的时候很多人就在问,请看09年的时候大家给出的 ...
- 1-STM32带你入坑系列(STM32介绍)
由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...
- Dsp和ARM的区别
有一次上课老师在将ARM的时候说到了Dsp. Dsp(Digital Signal Process),数字信号处理技术,而Dsp芯片和ARM的结构也有很多相似之处.比如有流水线.采用哈佛结构(早期的A ...
- nosql的介绍以及和关系型数据库的区别
一直对非关系型数据库和关系型数据库的了解感觉不太深入,在网上收集了一些关于sql和nosql的区别和优缺点分享给大家. Nosql介绍 Nosql的全称是Not Only Sql,这个概念早起就有人提 ...
- MongoDB之一介绍(MongoDB与MySQL的区别、BSON与JSON的区别)
MySQL与MongoDB的操作对比,以及区别 MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL ...
随机推荐
- android自己定义刷新类控件
android尽管定义了种类很丰富的控件.可是有的时候这些自己定义的控件还是不能满足我的要求,为了可以适配很多其它的需求,我们须要在原有的基础上进行自己定义控件. 今天我向大家介绍的就是android ...
- Mahout-HashMap的进化版FastByIdMap
FastByIdMap是基于散列的.在处理冲突时是线性探測而非分离链接,这样就不必为每个条目添加一个Map.Entry对象.从而节省内存开销. 以下代码是一个线性探測Map的Demo: package ...
- Lesson 2 Building your first web page: Part 2
Tag Diagram You may have noticed that HTML tags come in pairs; HTML has both an opening tag (<tag ...
- .Net 跳转
Action正常跳转 <a href="@Url.Action("AppDownload")">点击下载APP</a> public A ...
- commons-fileupload 多文件上传
第三方的文件上传工具类,例如这个东东:http://www.oschina.net/p/commons-fileupload,解析的方法无非就是这样: 1:在 controller 中先 HttpSe ...
- HTTP 各种特性应用(三)
一. 数据协商 分类: 客户端请求: Accept: Accept:表明 我想要什么样的数据 Accept-Encoding:数据是什么样的编码方式 进行传输.主要限制 服务端怎样进行数据的压缩. A ...
- 打印机共享为什么老是出现“操作无法完成(错误 0X00000709)。再次检查打印机名称、并确保打印机连接网络
这个情况应该是访问IP连接打印机才会出现的.解决办法:不使用IP访问,使用网上邻居找计算机名称再连接打印机即可. ------------------------------------------- ...
- 学习NLP:《精通Python自然语言处理》中文PDF+英文PDF+代码
自然语言处理是计算语言学和人工智能之中与人机交互相关的领域之一. 推荐学习自然语言处理的一本综合学习指南<精通Python自然语言处理>,介绍了如何用Python实现各种NLP任务,以帮助 ...
- rpm2cpio---如何不安装但是获取rpm包中的文件
如何不安装但是获取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -idmv 参数i表示提取文件.v表示指示执行进程,d和make-directo ...
- 洛谷 P3585 [POI2015]PIE
P3585 [POI2015]PIE 题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色.你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上 ...