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中被抚养成人的独苗。

时间: 2024-09-08 19:31:58

STM32介绍以及与通常ARM的区别的相关文章

ZT:简单介绍join,outer-join,semi-join,anti-join的区别

http://www.itpub.net/showthread.php?s=&postid=7357788#post7357788 表连接的方式如join,semi-join,outer-join,anti-join:表连接的实现方式如nested loop,merge,hash.本文简单的介绍表连接的方式join,semi-join,outer-join,anti-join和适用情景. 假设2个数据源(row source).Emp(id pk,ename,deptno) Dept(deptn

jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析_jquery

closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上. 语法: .closest(selector) 参数selector为字符串值,包含匹配元素的选择器表达式. 如果给定表示 DOM 元素集合的 jQuery 对象,.closest() 方法允许我们检索 DOM 树中的这些元素以及它们的祖先元素,并用匹配元素构造新的 jQuery 对象..parents() 和 .closest() 方法类似,它们都沿 DOM 树向上遍历.两者之间的差异尽管微妙,却很重要:

《嵌入式 Linux C 语言应用程序设计(修订版)》——1.3 ARM处理器平台介绍

1.3 ARM处理器平台介绍 1.3.1 ARM处理器简介 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是一类微处理器的通称,还可以认为是一种技术的名字. 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权.目前,采用ARM技术知识产权(IP)核的微处理器,即人们通常所说的ARM微处理器,已经遍及工业控制.消费类电子产品.通信系统.网络系统.无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的

《逆向工程权威指南》—第3章3.4节ARM

3.4 ARM 根据我个人的经验,本书将通过以下几个主流的ARM编译器进行演示. 2013年6月版本的Keil编译器. Apple Xcode 4.6.3 IDE (含LLVM-GCC 4.2编译器) .[10] 面向 ARM64的GCC 4.9 (Linaro),其32位的Windows程序可由下述网址下载:http://www. linaro.org/ projects/armv8/. 除非特别标注,否则本书中的ARM程序都是32位ARM程序.在介绍64位的ARM程序时,本书会称其为ARM6

ASP.NET入门教程:ASP.NET和ASP区别

网页教学网在上一篇中介绍了什么是ASP.NET,让您简单的认识了一下ASP.NET,本节着重介绍ASP.NET和ASP的区别.ASP.NET 拥有更好的语言支持,一整套新的控件,基于 XML 的组件,以及更好的用户身份验证.ASP.NET 代码不完全向后兼容 ASP. ASP.NET 拥有更好的语言支持,一整套新的控件,基于 XML 的组件,以及更好的用户身份验证. ASP.NET 通过允许编译的代码,提供了更强的性能. ASP.NET 代码不完全向后兼容 ASP. ASP.NET 的新特性 更

CSS技巧:word-wrap与word-break的区别

内容摘要:本文列举了兼容 IE 和 FF 的换行 CSS 推荐样式,详细介绍了word-wrap同word-break的区别. 兼容 IE 和 FF 的换行 CSS 推荐样式 最好的方式是 word-wrap:break-word; overflow:hidden; 而不是 word-wrap:break-word; word-break:break-all; 也不是 word-wrap:break-word; overflow:auto; 在 IE 下没有任何问题,在 FF 下,长串英文会被遮

MathType两种注册符号有什么区别

  下面就来介绍两种MathType注册商标的区别. 首先先编辑出这个注册商标,当编辑出来以后你就会很清楚地看到两者之间的区别了: 1.按照自己的使用习惯打开MathType公式编辑器进入到公式编辑界面. 打开软件进入编辑状态 2.在这个公式编辑界面中,用鼠标点击MathType菜单栏中的"编辑"--"插入符号"命令. 点击"编辑"--"插入符号" 3.在这个"插入符号"的对话框中,将"查看&qu

curl和libcurl的区别简介

  这篇文章主要介绍了curl和libcurl的区别简介,本文讲解了curl简介.libcurl简介.curl与libcurl对比."curl"的不同意思.PHP中使用curl和libcurl等内容,这么多的curl,搞都搞不懂,看了本文才知道,我们一直用的其实是libcurl,需要的朋友可以参考下 curl简介 curl是利用URL语法在命令行方式下工作的开源文件传输工具. 它支持很多协议:DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMA

display和visibility的区别

 这篇文章主要介绍了display和visibility的区别,需要的朋友可以参考下 display通常可以设置为none.inline.block    visibility通常可以设置为hidden.visible    当display为none,visibility为hidden时,元素都会不见.不过其还有不同之处.    display会将元素隐藏掉,并且位置不再被占据,而visibility则是占据原来的位置.    看例子即可明白:   代码如下: <div id="myDi