如何快速构建嵌入式全栈知识体系

本文探讨了嵌入式开发的复杂性,从专业壁垒、技术栈深度、碎片化特点,到国产芯片带来的变化。推荐《嵌入式C语言自我修养》一书,它以C语言为核心,系统地构建嵌入式开发知识体系,帮助开发者快速掌握核心知识点和关键技能,不论专业背景,适合各个层次的学习者。

嵌入式是一门交叉学科。一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片、电子电路、计算机、操作系统、多媒体等不同专业领域的知识。很多从事嵌入式开发的朋友,通常来自不同的专业(电子、电气、计算机、机械、自动化、物理,甚至一些文科专业),在实际学习和开发中,由于专业背景的限制,经常会遇到各种技术壁垒:搞硬件的不懂软件,搞软件的不懂硬件,搞底层芯片的不懂上层软件,搞上层软件的不懂底层芯片。嵌入式技术栈太深,除了极少数人,一般人很难实现“技术破圈”,将整个技术栈从上到下捋一遍,彻底打通。

相对于桌面开发,嵌入式开发还具有碎片化特点:不同架构(如ARM、MIPS、RISC-V等)、不同厂家的SoC处理器(如Cortex-M系列、cortex-A系列、AI芯片等),不同的操作系统(Linux、uC/OS、FreeRTOS、Android等),一般都需要对应的编译开发环境与之匹配,然后工程师才能基于这个编译环境做应用开发。如果把软件开发比作开饭馆卖饺子,对于桌面软件开发,锅碗瓢盆、水电煤气,甚至饺子(超市里的速冻饺子)都准备好了,统一的标准,就等着你下锅,根据顾客不同的需求,做成一道道不同的美食:猪肉芹菜的、三鲜的、蒸的、煮的、煎的。而对于嵌入式开发,可能情况就不太一样了:没有现成的饺子成品可以用,擀饺子皮、剁馅、锅碗瓢盆都需要自己动手准备,开发环境需要自己搭建。遇到问题,不能仅仅局限于当前的软件业务逻辑,可能还要从芯片、硬件电路、操作系统、底层驱动,甚至编译器等不同的维度去分析,去定位出现问题的原因。

随着半导体行业趋势的变化,以及国内对芯片行业的大力投入,国产芯片越来越多,未来嵌入式软件工程师的工作岗位和工作内容也会随之发生一些变化:嵌入式开发人员不再仅仅是基于芯片厂家提供的现成的开发板、BSP软件包、产品方案去开发产品,而是有越来越多的工程师直接进入芯片原厂工作,参与芯片底层软件的开发和维护工作:芯片测试、操作系统移植、驱动开发与维护、以及基于自家芯片产品方案的推广和技术支持等工作。在芯片设计前期,嵌入式软件工程师有时候还需要和IC工程师一起去测试芯片,编写相应的测试代码和测试案例。

 

工作职责和工作内容的变化,需要嵌入式软件开发人员不断扩充自己的知识体系,不断学习和解锁新的技

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宅学部落-王利涛

just for test

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值