
前段时间我在这里问过初学者,嵌入式系统开发应该从8位还是32位MCU开始?我认为我的老8051教会了我至今仍在使用的基础知识——寄存器、内存映射和中断——但没有将它们埋藏在抽象层之下。最近我花了很多时间在STM32C0系列上,这让我重新审视了这个观点。为了使用它,我准备一些培训材料时,我注意到一件事:这款MCU这可能是现代32位芯片最接近那种老式8位学习体验的版本。参考手册足够简短,可以实际阅读。时钟树(clock tree)正好能装进你的脑海。这款MCU外设集足够小,学生练习在寄存器层面编程变得可行,而非整学期的折磨。当出了问题时,问题藏身之处不多。同时,它确实是Cortex-M0+的一部分。工具链、调试器,整个工作流程都是你以后在工业中用到的大型STM32芯片上用到的,你学到的东西都不会是死胡同。所以我的答案已经变了,原则保持不变:从足够简单开始,让你能看清实际发生了什么。我很好奇其他教书或指导的人是否也注意到了同样的情况。现在给第一次固件写的人选择什么MCU?
以下是网友的讨论:
Eduard
我喜欢看到这个观点!
事实上,即使是更大的ARM部件也根本不是问题。外设太多?干脆忽略它们...
即使在像STM32H7这样的芯片上,你也可以直接裸机编程,如果你愿意的话。除非你犯了想彻底性掌握所有东西的错误,否则并不会复杂到哪里去。8位MCU已经不再有任何优势了。
Mehant
我推荐ESP32系列芯片,该系列同时搭载无线网络、蓝牙以及Matter硬件模块,闪存/静态随机存储器最高可达32兆字节;其开发套件价格低廉(5至10美元),能够帮助学习者一步上手当下绝大多数需要无线连接功能的应用项目。
Muart
我认同选用Cortex-M0+,因为它基于ARMv6M架构,该架构拥有约70条指令。另一方面,对应的架构参考手册篇幅也相当精简,因此我认为在深入研究任何复杂微控制器之前,它是最佳的入门选择。
Sherry
讨论这些居然没有被AVR8和PIC8的粉丝们活活吃掉?这是公众舆论的范式转变,还是只是一个巧合?附注:我完全同意你的建议(不过记得不要在M0上乱用pragma pack,如果我没记错的话,它们对未对齐的数据不太友好)。只是之前很长一段时间,任何提出这个观点的人都会被AVR8等粉丝围攻…
Baris
出于完全相同的原因,我近期选用了MSP430这款16位单片机。我希望仅依托寄存器进行开发,彻底吃透底层原理。就这个目标而言它十分合适,但这款芯片缺少通用直接内存访问(DMA)控制器,并且相关文档与工具链版本有些陈旧。从这点来看PIC单片机是更好的选择,同样是16位架构,而且依旧拥有完善的技术支持。不过想要买到性价比高的开发套件可能会稍微困难一些。
麦克泰技术作为SEGGER代理商,秉承“让嵌入式软件开发更容易”的理念,致力于推广MCU软件开发工具。SEGGER的J-Link、J-Flash和Embedded Studio以及Ozone是知名的MCU调试和编程工具,广泛的受到产业界的欢迎,欢迎联系info@bmrtech.com。
欢迎关注微信公众号【麦克泰技术】,回复 “加群” 按提示可加入技术交流群
产品咨询:
北京:010-62975900
上海:021-62127690
深圳:0755-82977971
分享、在看与点赞,至少我要拥有一个吧
关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。