最近在公司接手了个挺让人挠头的活儿 —— 给一块老板子换 MCU。说起来这板子还是近五年的产品,用的 STM8 单片机,功能掰着手指头都能数过来,估摸着稍微加点复杂度这 8 位机就扛不住了。最让人无奈的是,写代码的老兄早就离职了,也没做交接,问遍了周围同事,都说没见过这板子的资料。好在代码还在,可打开一看,IDE 用的根本不是现在公司主流的那套,现在连安装包都难找,简直像在翻一本用古文字写的旧账本。
后来硬件部说要换成 GD32,具体为啥?不用问也知道,大概率是原来的料缺货或者涨价了,现在做硬件开发,谁没被供应链折腾过几回呢。于是这摊子事儿就落到我头上,这才发现那板子简直是个 “孤儿项目”,前任留下的只有一堆陌生的代码和几页残缺的原理图。好在功能简单,咬咬牙对着寄存器手册一点点啃,总算把新代码憋出来了。但写完之后心里一直犯嘀咕:就这么几个功能,真的有必要单独搞个 MCU 吗?这可是个定位高端的产品啊,难道就不能把这些简单功能整合到其他 MCU 里?
现在看着手里的 GD32 板子,突然想起这些年遇到的类似情况。好多老产品里都能见到 8 位单片机的影子,明明 32 位 MCU 早就白菜价了,性能还甩 8 位机几条街,可总有那么些角落,还藏着这些 “古老” 的芯片。是因为成本?毕竟 STM8 这类 8 位机价格确实便宜,对于功能单一的模块来说,成本优势明显;还是因为稳定性?老代码在 8 位机上跑了这么多年,没出过问题,换平台反而有风险;又或者是像我们这种情况,纯粹是历史遗留问题,前任用惯了某个方案,后来人就接着凑合用?
仔细想想,8 位单片机虽然性能有限,但胜在简单直接。在一些特定场景里,比如只需要处理简单 IO 控制、基本通信的模块,它就像个踏实的老工匠,虽然不够聪明,但任劳任怨,不会因为多余的功能消耗资源。而且对于成熟的产品线来说,更换 MCU 意味着重新调试、验证,甚至可能牵扯到硬件改版,不到万不得已,大家都倾向于维持现状。这大概就是为什么在 32 位 MCU 大行其道的今天,8 位机还能在某些角落里刷存在感的原因吧。
不过话说回来,随着产品功能越来越复杂,对智能化、集成度的要求越来越高,8 位单片机的生存空间肯定会越来越小。就像我们这次换 GD32,虽然过程麻烦,但换完之后,扩展性强了不止一倍,以后要是需要增加功能,也不用再发愁 8 位机那可怜的资源了。但每次看到那些还在用 8 位机的老项目,还是会忍不住想:在这个追求高性能、高集成的时代,这些坚守岗位的 8 位单片机,到底还能走多远呢?或许,存在即合理,只要有简单可靠的需求,它们就还有自己的用武之地吧。
楼主最近还看过