zoukankan      html  css  js  c++  java
  • 1 微控制器发展趋势

    1.1 概述

     

    嵌入式领域的发展日新月异。你也许还没有注意到,但是如果你停下来想一想微控制器系统十年前的样子并与当今的微控制器系统比较一下,你会发现PCB设计、元件封装、集成度、时钟速度和内存大小已经经历了好几代的变化。在这方面最热门的话题之一是仍在使用8位微控制器的用户何时才能摆脱传统架构并转向使用现代32微控制器架构,如基于ARM Cortex-M的微控制器系列。在过去几年里,嵌入式开发者向32位微控制器的迁移一直呈现强劲势头。本文将讨论加速这种迁移的一些因素。

    2 切换的原因

     

    在本章节的第一部分,我们将总结为什么嵌入式开发者应该考虑向32位微控制器迁移。采取这一行动的最强有力的理由是市场和消费者对嵌入式产品复杂性的需求大大增加。随着嵌入式产品彼此互联越来越多、功能越来越丰富,目前的8位和16位微控制器已经无法满足处理要求。即使8位或16位微控制器能够满足当前的项目需求,它也存在限制未来产品升级和代码重复使用的严重风险。

    第二个常见原因是嵌入式开发者开始认识到迁移到32位微控制器带来的好处,且不说32位微控制器能提供超过10倍的性能,单说这种迁移本身就能够带来更低的能耗、更小的程序代码、更快的软件开发时间以及更好的软件重用性。

    另一个原因是基于ARM的器件的选择余地、性能范围和可用性。如今,越来越多的微控制器供应商提供基于ARM的微控制器。这些产品能提供选择范围更广的外设、性能、内存大小、封装、成本等等。另外,基于ARM Cortex-M微控制器还具有专门针对微控制器应用的一些特性。这些特性使ARM微控制

    器具有日益广泛的应用范围。与此同时,基于ARM的微控制器的价格在过去5年里已大幅降低,并且面向开发者的低成本甚至免费开发工具也越来越多。

    与其它架构相比,选择基于ARM的微控制器也是更好的投资。现今,针对ARM微控制器开发的软件代码可在未来多年内供为数众多的微控制器供应商重复使用。随着ARM架构的应用更加广泛,聘请具有ARM架构行业经验的软件工程师也比聘请其他架构工程师更加容易。这也使得嵌入式开发者的产品和资产能够更加面向未来。

    在很多人的印象中,8位微控制器采用8位指令,而32位微控制器采用32位指令。事实上,8位微控制器的许多指令是16位、24位或者8位以上的其它指令长度,例如,PIC18的指令是16位。即使是古老的8051 架构,有些指令长度是1字节,也有很多多其它指令是23字节。16位架构同样如此,例如,MSP430的某些指令是6字节(MSP430X指令甚至是8字节)。

     

     

     

    图1.1-1 不同微控制器中单条指令长度 

     

     

     

    ARM Cortex-M3和 Cortex-M0微控制器基于能提供卓越代码密度的 Thumb-2技术。采用Thumb-2技术的微控制器可以支持同时包含16位和32位指令的Thumb指令集,32位指令功能是16位版本的超集。在大多数情况下,C编译器使用16位版本指令,除非操作只能使用32位版本才能执行。

     

    Cortex-M微控制器的编译程序中,32位指令的数量仅占整个指令数量的一小部分。例如,在专为Cortex-M3编译的Dhrystone程序映像中,32位指令的数量仅占指令总数的15.8%(平均指令长度为18.5位)。而对Cortex-M0来说,32位指令数量所占的比例更低,仅为5.4%(平均指令长度为16.9位)。

     

    ……………………………………………………

     

    书籍下载地址(复制到下载工具进行下载):

    https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

    https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

     

  • 相关阅读:
    JAVA-初步认识-第七章-static关键字-数据共享
    JAVA-初步认识-第七章-this关键字应用
    JAVA-初步认识-第七章-this关键字的使用场景二和细节
    JAVA-初步认识-第七章-this关键字的使用场景和原理图解
    未能找到Microsoft.Office.Core.MsoTriState的引用
    Windows Server 2012 FTP配置 后客户机一直登录不上
    ArcEngine 不能再打开其他表了
    CreateFeatureClass 异常,尝试读取或写入受保护的内存 Access
    ArcEngine开发异常:无当前记录
    一个文科妹子的前端悲欢编程之路
  • 原文地址:https://www.cnblogs.com/wenziqi/p/2356723.html
Copyright © 2011-2022 走看看