导读 集微网报道 从2007年的第一颗STM32F103开始,十二年的发展让STM32家族成为了新世纪最成功的MCU系列。引入多核、扩充外设,STM32的自我升级一直没有停步。现在,引入异构内核即将成为STM32发展史上又一个重要节点,新MPU将在MCU的基础上破壳而出。
STM32家族的最新成员就是整合了Cortex-A和Cortex-M两种不同核心的STM32MP1微处理器系列。

Cortex-M是ARM处理器中的专用MCU内核,Cortex-A则是应用处理器内核,现在手机中的苹果A系列、高通骁龙、华为麒麟处理器等都是基于Cortex-A架构的。将Cortex-A引入到MCU当中,也就是将异构计算引入到MCU当中。

“MPU其实是非常复杂的,要经过长期思考+验证,到最后成熟和上市,这块产品花了整整五年的时间。”意法半导体微控制器事业部STM32微处理器产品市场经理Sylvain RAYNAUD这样表示。

MCU引入异构内核·,携手Linux变身MPUMCU引入异构内核·,携手Linux变身MPU

意法半导体微控制器事业部STM32微处理器产品市场经理Sylvain RAYNAUD

STM32MP1系列微处理器集成两颗主频650MHz的Arm Cortex-A7应用处理器内核和一颗运行频率209MHz的高性能Arm Cortex-M4微控制器内核。同时,STM32MP1还嵌入了GPU,以支持人机显示界面。

MCU引入异构内核·,携手Linux变身MPUMCU引入异构内核·,携手Linux变身MPU

这三核分工明确,A7内核运行Linux,配合GPU负责显示功能,M4内核则执行传统的控制功能。三核之间通过特有的IPCC机制进行通信并配有加密措施,“它们以mailbox的方式沟通,然后沟通数据会保存在SRAM 里面。” Sylvain RAYNAUD解释。

为防止MPU系统出现性能瓶颈和带宽问题,STM32MP1支持经济实惠的DDR SDRAM存储器,包括DDR3、DDR3L、LPDDR2、533MHz的32/16位LPDDR3。此外,STM32MP1还支持各种闪存产品:eMMC、SD卡、SLC NAND、SPI NAND和Quad-SPI NOR闪存。

从架构上来说,STM32MP1既具有灵活性又能实现能效最佳化。在全速运行模式下,双核Cortex-A7 +3D GPU是完全打开的,其处理器速度为2470DMIPS,Cortex-M4部分的处理速度则有260DMIPS。在低功耗模式下,Cortex-A7进入待机模式,只有Cortex-M4运行,功耗是正常模式的1/4。如果要进入完全待机模式,功耗只有前一个模式的1/2500。

从待机模式回到全速运行,STM32MP1的表现很优异。其只需1s就能回到Linux界面,3s则能回到3D图形应用界面。

还有一点很关键,STM32MP1配备的丰富外设都可以通过在线的方式决定分配给A7还是M4使用。这些外设就包括了USB2.0、千兆以太网GMAC、CAN FD,以及多个标准IC、UART和SPI接口,还有一系列模拟外设。

因为复杂度提升,ST还为STM32MP1设计了专用电源管理IC(PMIC) STPMIC1。其集成了4个DC / DC降压转换器、6个LDO稳压器、1个DC / DC升压转换器,以及USB VBUS和通用功率开关,能为STM32MP1和电路板上的其它组件提供所需的电压轨。

引入新内核,拓展了STM32的应用空间。Sylvain RAYNAUD就总结道:“对于以前使用微处理器+MCU应用的客户,STM32MP1一颗单芯片就可以实现这个功能;而客户之前使用的是MPU,那么可以用STM32MP1做MCU应用。”

携手Linux,背靠成熟生态
引入Cortex-A7内核,也就为开发者引入了Linux系统。为了加快项目开发速度,ST发布了一款主流开源Linux发行版OpenSTLinux Distribution。 OpenSTLinux已通过了 Linux Foundation、Yoctoproject 、Linaro等Linux社区的审批。该发行版包含在应用处理器内核上运行软件所需的全部基本组件。

MCU引入异构内核·,携手Linux变身MPUMCU引入异构内核·,携手Linux变身MPU

“在支持整个Linux开发源的时候,我们全面兼容开源软件的标准,包括Linux的Foundation和Yocto Project。”Sylvain RAYNAUD说,“因为Linux开源代码非常多,客户也不好选择。为此,ST在Yocto建立一个Project,让客户可以稳定简易使用这个开发包。”

同时,STM32MP1还预装了安全操作系统OP-TEE。“如果客户自己去寻找安全应用还需要付费,ST已经帮客户解决了这个问题,让其使用免费的加密OS。” Sylvain RAYNAUD解释了原因。

在Cortex-A7端,有OpenSTLinux可以使用,在Cortex-M4端,则可以使用以前的STM32Cube工具。据Sylvain RAYNAUD介绍,STM32Cube里有很多支持客户的参考代码、驱动,包括很多做外设访问用的API,还有各种中间件。所有这些都是有ST品质保证的软件开发包,配合非常友好的商业条款,让客户使用非常便捷。

在硬件开发工具方面,ST提供了三套开发板:全功能板、探索板(只有基本外设)和第三方原形板/生产级板。这三套板子都在STM32的天猫旗舰店有售。

为了支持用户开发,ST还在全球范围内布置了超级第三方平台,主要支持GUI,加密和培训这部分。此外,ST还建立了一个专门的wiki网站,用来支持STM32MP1的客户做Linux相关开发。

MCU引入异构内核·,携手Linux变身MPUMCU引入异构内核·,携手Linux变身MPU

STM32MP1诞生时间虽不长,已经形成了一个完备的产品系列。目前,STM32MP1已有三条产品线:157、153、151。其中,151配备了Cortex-A7+Cortex M4;153在此基础上增加了CAN FD和双核Cortex A7;157是目前系列中性能最高的,有双核Arm Cortex-A7+Cortex-M4+3D GPU,另支持DSI和CAN FD。

采用异构架构,是STM32应对大量增加的人机交互需求的举措。而对于未来的产品规划,Sylvain RAYNAUD表示:“该系列未来将并行发展两个方向:高性能、安全、功能和成本功耗优化。那些潜在的应用场景,如工业、消费电子、医疗保健和智能家居,STM32MP1都可以完美支持。”
https://www.linuxprobe.com