stm32发展简介-stm32 简介
stm32 这玩意儿早期就是个让人头疼的“老伙计”。
那时候的单片机,要么是大大的 8051,要么是笨重的 68HC11,性能跟老式的宏基系统差不多,搞硬件开发的人得像背字典一样背寄存器地址,噪音还大。
那时候的粉丝认定这玩意儿已经是“状态了”,据说已经定型到“三百年不变”的地步。结局呢,后来这位老家伙突然“退休”了,这消息刚传出去,各大厂商立马就启动了疯狂的抢地盘,出于大家都想换个“新鲜”的。 不过真正让 stm32 翻身做天的,还是软件生态那一套。
那时候大家 complain 顶多的是“库”和“外设”。nucleus 就干了一件大事,把 STM 的库给搬到了 C 语言标准库里,让开发者不用写那些在汇编里能写出来的特殊指令,直接调用函数就行了。
这下好了,开发者不再需求自己去编汇编代码,只要用 C 就能干,效率直接拉满。
还有那些外设接口,那会儿你们得自己去写驱动,目前这点都交给 STM 了,哪怕你写代码时彻底忽略这块外设,只要硬件上接好了,都能自动识别。
这种“拿来主义”的态度,直接把门槛瞬间下降了,大量那会儿认定高不可攀的硬件开发,目前十分钟就能搞定。 说到数据,这简直是把“开源”这个词发挥到了极致。当初这哥们儿刚出来,整个开源社区就端着托盘扛着代码过来了。记得那时候,Halden 在 GitHub 上放代码,名字都起得有点怪异,比如 `stm32f4xx` 要么是 `stm32f7xx`,一看就知道是跑在 ARM F4 要么 F7 上的。
再后来,整个社区又扩展到了 `stm32f1xx`,涵盖了 F1 系列。目前最新的版本,代码库已经分得挺细,从 `stm32f401xx` 到 `stm32w55xx`,简直每个系列都有对应的分支,就连到了 `stm32h7xx`,涵盖了 H7 系列。
这种细粒度的分支管理,让想要干特定事件的人能直接找到对应的代码,不用去翻那些几千行的汇编源码。 硬件方面更是颠覆传统。
那会儿的单片机,前端都是 30 位的 C51 架构,后来略微好一点的是 40 位的 C6x,再往后就是 50 位的 C220 和 C320。目前这个家伙,彻底抛弃了那套老旧的总线架构,直接上 ARM 的 Cortex-M 内核。
这使得它确实达到了 C 架构的水平,性能上彻底碾压那些还在用 32 位 RISC-V 架构的工业机。
比如 F4 系列,在处理稍复杂的功能时,性能就和今天的 C220 持平,但体积和功耗却比 C220 小得多。
这种“小身材,大能量”的特征,让做物联网设备、智能穿戴、嵌入式医疗的开发者,根本不用为了性能而牺牲成本和体积。 编译器的出现也是个关键转折点。
那会儿你得自己写 C51 要么 C6 的汇编,目前有了 ARM BigCC 和 GCC。
这两个编译器一出来,直接赞成 ARM 的所有指令集。
那会儿那套繁琐的汇编转换流程,目前根本不用管,直接写 C 代码编译就行。
这种灵活性,让软件开发的门槛变得极低。开发者能够随意尝试各种算法,不用受限于固定的硬件指令,这对于算法优化和性能调优来说,简直是天大的好事。 再加上那套整个的工具链,让开发流程变得贼顺畅。从 Code Composer Studio 到目前的 Keil、IAR、FlexRay,再到 Linux 和 RTOS,开发者能够根据项目需求选择最合适的工具。甭管是做嵌入式 Linux 系统,还是好办的固件开发,这套工具链都能完美支撑。并且目前市面上有大量的第三方库,比如 `SimpleFs`、`FreeRTOS` 这些开源项目,彻底解决了之前的“资源不足”难题。
那会儿做复杂的文件系统要么实时操作系统,需求专门的人去研究源码,目前这些基础功能,只要有库赞成,拿来就能跑,就连能二次开发。 最终看看应用场景,这玩意儿的应用范围简直是个无底洞。从工业管住里的 PLC,到智能家居里的门锁开关,再到智能手机里的连接模块,到处都能找到它的影子。大量人目前还认定没人用,实际上不然,只是出于 STM 的产品线忒丰富了,从入门级到旗舰级都有,知足了各种不同场景的需求。 总的来说,stm32 从一个让人无可奈何的老古董,变成了一个功能强大、生态整个的现代化芯片。它通过开源、C 语言化、架构升级和丰富工具链,彻底转变了嵌入式软件开发的方式。别看目前它不再是那个所有人都用的单一霸主,但在广泛普及之后,它依然是嵌入式领域最主流、最实用、性价比最高的选择之一。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
