
一、与一只蝴蝶的邂逅 时间退回至2007年9月,对于刚步入大学的笔者而言,微控制器的含义仅仅局限于文字。而在同年的6月意法半导体(以下简称ST)在北京首发全球首款采用ARM Cortex-M3内核的处理器STM32F3,并选用一只蝴蝶作为产品的logo,在此后的十几年,STM32这只“蝴蝶”成功的飞过千山万水,不仅震动了整个MCU市场,也成功培育出了千万工程师。然而当年ST在中国通用MCU市场占有率仅为2%左右,排10名以外。 # H0 O7 ~. g; q1 `' M5 a7 e ![]() 接触到微控制是在2008年暑假期间,当时学校普遍采用Atmel的AT89S52,芯片体积很大(封装DIP40),8K字节Flash,256字节RAM,2路16bit定时器/计数器,1路全双工串口,32路可编程I/O,6路中断源,主频最大24MHz。相对现在的微控制而言,片上资源简直惨不忍睹。但在当时而言,这款芯片绝对是校园主流控制芯片,记忆最深的是洞洞板、IC烧录座以及焊接(某些学霸的焊接堪称工艺品)。 ![]() 1 g( Q3 M) r* a6 ? 当年除89C51系列单片机雄霸校园外,还有性能稍强、外设稍微丰富一些的微控制器,例如Atmel的AVR,Microchip的PIC,TI的MSP430(16位,低功耗)、凌阳SPCE061A(16位,语音功能)、TI的TMS320(DSP)等,这些单片机在当时可以称为主流(可能不够严谨,但在笔者的大学确实是事实),在各类电子设计竞赛作品中,无论是国赛、省赛或者校园赛,总是能够发现它们身影。4 M6 R" Z& V3 c* y9 Z 2009年当时参加了亚太大学生机器人大赛国内选拔赛,我们的主控方案采用AVR+CPLD的形式,AVR(ATMEGA128)单片机负责传感器数据采集、控制逻辑以及简单算法,CPLD负责处理码盘反馈数据。之所以采用CPLD(EPM570T100)是由于空心杯直流减速电机的码盘反馈数据量太大,单纯依靠AVR的中断采集或捕获,无法达到满意效果。比赛前的时间总是过得很快,也很充实,那时在创新创业基地可以调试通宵,也不会觉着太困,因为总是有那么一群志同道合的朋友在周围陪着你一起玩,充满乐趣,充满着自豪。当真正的进入选拔赛,止步于16强时,才知道自己懂的太少,牛气的团队、牛气的人太多太多,北京科技大学机器人的速度、哈尔滨工业大学(冠军)的技术、东北大学的设计等等,在参观交流中,他们的控制平台很难找到8位机作为主控,ARM、DSP、CPLD、FPGA等方案已经应用到控制系统中,这对当时的我们而言,感觉到的是巨大的差异与反思。比赛结束回到学校,基地的老师给我一块紫色的学习板,让自己熟悉一下,看后续是否能够用到,也就是在那时,第一次真正的接触ST。 - a# V# b& j# d" x" i4 H8 v+ q ![]() " m# F, ]8 l2 K& `. h6 w( p 拿到开发板的资料后,第一时间就是安装环境,下载开发例程,看实验现象。那时STM32中文版资料并不是很多,《STM32中文用户手册》、《STM32不完全手册》应该是在1年后的事情了,当时比较好的中文资料是《Cortex-M3权威指南》(宋岩老师翻译)、《Cortex-M3技术参考手册》,剩下的就是官网下载的数据手册以及参考手册。当把STM32的英文版参考手册打开后,丰富的外设以及众多寄存器,看的很头大。开发板配套的程序代码是基于寄存器操作,嗯,能够想象到当时做这个学习板与例程的人也一定是一个大神级人物。$ G$ g1 _) ^7 q4 F/ } 1 n9 U6 O: g% Q 二、遍地开花 ST在中国市场的成功推广,离不开论坛与百万坛友的推广支持,其它的就不再举例。在早期学习STM32时,泡论坛是最为重要的学习途径之一,也就是在这个时候(大约2009年),各种STM32技术问题、有意思的项目以及开发板开始在论坛逐渐增多,能够记得住名字的,像火牛、红牛、金牛、神州、正点(精英、战舰、阿波罗、北极星)、野火、安富莱、硬石等等各种开发板琳琅满目,你总能找到一款是你喜欢的开发板,或许做设计的人员给开发板取一个酷酷的名字是最为重要的,至少笔者是被成功的带跑偏了。; h$ B3 _" A2 a- q6 A9 }) A 9 Q2 r h! M; i, a0 f4 p z. f 其实在2009还有几家也是做Cortex-M3内核的单片机,比如流明诺瑞(luminary micro),使用他们家的芯片是因为参加“IEEE标准电脑鼠走迷宫”竞赛,当时的电脑鼠是由广州致远电子有限公司(周立功)提供,当时流明诺瑞由他们进行国内的推广,之所以能记得住,是因为当时的比赛奖品太特殊了,18套TinyM0 开发工具,我想是因为周老师也负责NXP的Cortex-M0与Cortex-M3推广吧(以至于后来Cortex-M0的芯片首选就用NXP的了)。后来流明诺瑞像凭空消失一样,很少有人提及与使用了,或许在电脑鼠比赛中还能遇到吧。 6 r) ?; _* g6 N% a B' H; b2 m ![]() 时至今日,STM32已经变成ST的一个代名词,是ST在国内推广成功的标志,当然,MCU市场只是ST主营业务的一部分,据统计,2020年第二季度ST个产品部营收贡献率微控制器和数字IC产品部(MDG)占总营收的35.1%,而模拟器件、MEMS和传感器产品部(AMS)占到了29.9%,汽车和分立器件产品部(ADG)以及其它则贡献了总营收的另外35%。" [1 r8 X4 d. L' t. [7 W# d6 U1 d9 q; r+ L 三、下个十年5 n" B5 r% H! Z3 v! o |2 g2 ? 物联网、人工智能、5G应用是最近几年热点,在智能硬件、智能家居、智慧城市、智能工业等领域,安全、网络连接、云服务、AI是主要技术切入点,使MCU未来的发展需要更高的性能、更强的物联和更安全的能力。 : p& R9 \0 {& [, K" u' D( v ![]() ![]() : x& P% [' A8 |6 e* s4 e: t3 ?& Q ST早在2016年就推出了STM32 H7 高性能MCU,基于Cortex-M7 @ 400 MHz 和 Cortex-M4 @ 240 MHz的双核设计,除了高达400MHz的主频与1MB RAM之外,还可以外扩SDRAM的。STM32 H7的性能很强大,虽然可以流畅的运行各种RTOS、文件系统、网络协议栈以及用户界面,但我们依然希望ST能够将MCU的生态模式也应用至MPU上,补全ST在Linux应用领域的小短腿。 ST凭借多年积累的ARM Cortex研发经验扩大了STM32 MCU的功能,2019年推出该公司首款多核微处理器STM32MP1。STM32MP1是一款通用型微处理器(双核Cortex-A7+单核Cortex-M4),具有以下特点:! s, S/ W& J& g& m9 m* P 采用ST(意法半导体)全新的STM32MP157AAA3(LFBGA448-18*18)微处理器为主控平台,该平台具有先进灵活的架构,支持3D图形处理单元。FS-MP1A开发板接口资源丰富,可全功能开发STM32MP157AAA3外设资源。$ G( ^3 T. H) a ( E- @* E! _" |( J T ![]() 4 [7 ?" T3 x/ Y# D* m 提供Arm®双核ARM Cortex A7/ 650MHz和 Cortex®-M4/209MHz两种内核的异构架构开发,在复杂的多任务处理与运算同时,兼顾硬实时性。( T% X- ]+ M1 X# ?+ x9 y' r ![]() STM32系列生态系统成熟,并具备经过验证的软件、工具和技术支持,使用户在该平台上能够提高开发效率,缩短上市时间 。 1 j4 X; }& e1 {6 N* z. R& C ![]() . z( ^0 @7 C- P" u) k! B& E) n ![]() ) B3 n" @$ }3 h ![]() ) |' P( L( X# ^: W; O% ]& S9 i STM32MP1微处理器系列芯片稳定供货周期长达10年,包含多种封装与型号。FS-MP1A开发板既可以作为开发平台进行学习,也可作为产品控制核心,免除因技术迭代更新,而造成技术过时或断货情况。/ ]- p5 C$ o) f1 f* n$ S ![]() - ^* ~/ }' z$ \. Z STM32MP1微处理器的介绍就先写到这里吧,其实自己并不擅长写文章,写这篇文章的目的是后续想将FS-MP1A开发平台的硬件部分设计记录下来,因为在设计这个板子的时候并没有太多的中文参考文档,主要来源是官方网站资料与参考学习板,开发平台如下所示: ![]() FS-MP1A开发板的硬件设计篇目前预计总共包含11部分,主要涉及电源、时钟、引导模式、DDR、EMMC、以太网、LCD、音频、WiFi/BLE以及DCMI等部分# r9 j3 I- U7 p 对于STM32MP1系列处理器的Cortex-M4内核、Cortex-A7内核的裸机开发部分、Linux驱动移植、应用开发以及项目应用会逐步进行连载。; w6 Y- u/ `/ h- l 下个十年,我们希望STM32MP1系列处理器能够像STM32在MCU市场的成功一样,让Linux系统与MPU的设计与应用不在那么的神秘,相信凭借ST在市场推广的力度以及决心,STM32MP1系列微处理器的应用会越来越广泛,至少笔者是相信的。* y& v2 Z% ?# V ———————————————— 版权声明:华清远见IT开放实验室) U/ m3 F. W; B% \ E+ N0 k' z , ?% K: a8 ]. v; c, Z$ I2 a |
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。
《STM32MPU安全启动》 课程学习心得