快速构建嵌入式全栈知识体系以及如何进阶


嵌入式是一门交叉学科。一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片、电子电路、计算机、操作系统、多媒体等不同专业领域的知识。很多从事嵌入式开发的朋友,通常来自不同的专业(电子、电气、计算机、机械、自动化、物理,甚至一些文科专业),在实际学习和开发中,由于专业背景的限制,经常会遇到各种技术壁垒:搞硬件的不懂软件,搞软件的不懂硬件,搞底层芯片的不懂上层软件,搞上层软件的不懂底层芯片。嵌入式技术栈太深,除了极少数人,一般人很难实现“技术破圈”,将整个技术栈从上到下捋一遍,彻底打通。
相对于桌面开发,嵌入式开发还具有碎片化特点:不同架构(如ARM、MIPS、RISC-V等)、不同厂家的SoC处理器(如Cortex-M系列、cortex-A系列、AI芯片等),不同的操作系统(Linux、uC/OS、FreeRTOS、Android等),一般都需要对应的编译开发环境与之匹配,然后工程师才能基于这个编译环境做应用开发。如果把软件开发比作开饭馆卖饺子,对于桌面软件开发,锅碗瓢盆、水电煤气,甚至饺子(超市里的速冻饺子)都准备好了,统一的标准,就等着你下锅,根据顾客不同的需求,做成一道道不同的美食:猪肉芹菜的、三鲜的、蒸的、煮的、煎的。而对于嵌入式开发,可能情况就不太一样了:没有现成的饺子成品可以用,擀饺子皮、剁馅、锅碗瓢盆都需要自己动手准备,开发环境需要自己搭建。遇到问题,不能仅仅局限于当前的软件业务逻辑,可能还要从芯片、硬件电路、操作系统、底层驱动,甚至编译器等不同的维度去分析,去定位出现问题的原因。</

本文探讨了嵌入式开发的挑战,包括技术栈的深度和碎片化,强调了构建完整知识体系的重要性。作者指出,随着半导体行业的发展,嵌入式工程师需拓宽技能范围,学习如C语言、编译原理、计算机体系结构等关键领域。为此,推荐了一本《嵌入式C语言自我修养》,该书以C语言为起点,深入浅出地讲解芯片、编译器到操作系统的知识,旨在帮助不同背景的嵌入式开发者构建知识框架,提高问题解决能力。
最低0.47元/天 解锁文章
1515

被折叠的 条评论
为什么被折叠?



