初识嵌入式 —— 从STM32简介到安装开发环境
1. ARM处理器家族介绍
英国ARM公司是苹果、诺基亚、Acorn、VLSI、Technology等公司的合资企业, 是全球领先的半导体知识产权(IP)提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构, 2016年7月18日消息,日本软银已经同意以234亿英镑(约合310亿美元)的价格收购英国芯片设计公司ARM。
多年来, ARM已经研发了相当多的不同的处理器产品。ARM 处理器产品分为经典ARM处理器系列和最新的Cortex处理器系列,最初的处理器型号都用数字命名,最后一个是ARM11系列,在应用ARMv7架构后,推出了Cortex这一系列,并分成A、R和M三类,旨在为各种不同的市场提供服务。
Application Processors(应用处理器)–面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过1GHz),支持像Linux,Android,MS Windows和移动操作系统等完整操作系统需要的内存管理单元(MMU)。如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择ARM 应用处理器。
Real-time Processors (实时处理器)–面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持MMU,不过通常具有MPU、Cache和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的Linux和Windows操作系统, 但是支持大量的实时操作系统(RTOS)。
Microcontroller Processors(微控制器处理器)–微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在200Mhz之上)。 并且,新的Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。
值得注意的是,Linux系统对内存管理单元有极强的依赖,若在没有MMU的处理器中运行Linux,恐怕整个系统只能停留在Uboot阶段了。由于Cortex-m处理器没有内存管理单元,因此跑不了Linux系统。任何事情都不是绝对的,如果你重写了Linux内核且搭配足够大的内存芯片,从理论上来说是可以省掉MMU的。但是,这样的工作量,真的值得吗?实际上,MMU就是为了解决操作系统越来越复杂的内存管理而产生的。
2. Cortex-M3处理器和STM32
Cortex-M处理器家族更多的集中