什么是嵌入式系统?
嵌入式系统是一种独立的、基于微处理器的计算机系统。您可以将其视为大型系统的一部分的微型计算机。如今,从洗碗机到波音 747,几乎所有“电子”产品内部都有嵌入式系统。但是,嵌入式系统与笔记本电脑或手机不同。嵌入式系统与计算机的关键区别在于:
- 嵌入式系统是特定于应用的:计算机几乎可以做所有事情。另一方面,嵌入式系统仅执行少数特定任务。
- 它们经常执行实时计算:安全关键系统使用嵌入式系统,并具有严格的时间和期限限制。
- 它们具有计算、内存、带宽和功率限制,并且通常没有用户界面。
嵌入式软件就是运行这些嵌入式设备的软件。它与传统软件有点不同,因为您编写的代码需要满足嵌入式系统的各种约束。大多数嵌入式软件工程师都使用 C 语言进行编程,因为它在内存和时间方面的开销较低,但 C++ 甚至 Python (microPython) 等语言在嵌入式世界中越来越受欢迎。
嵌入式系统有市场吗?
随着 5G 的出现、电动汽车需求的增长以及“智能”设备的兴起,全球嵌入式系统行业的估值将从目前的865 亿美元增长到 1162 亿美元。 Meta 和 Amazon 等传统软件巨头一直在寻求利用这个不断增长的市场,并开始向嵌入式领域扩张。由于进入门槛较高,嵌入式软件领域尚未像传统软件行业那样饱和。所以,如果你愿意付出努力,这对你来说是一个很好的机会!
我该如何开始?
- 从电路基础课程开始:了解基尔霍夫定律、分压器和运算放大器等知识会有很大帮助。如果您不希望遇到术语“电阻器”不知所措 ,就应该牢固掌握电路基础。
- 学习数字电路:逻辑门、布尔代数、状态机,甚至一些 FPGA 编程都可以构建强大的基础知识。
- 如果这是您第一次编程,请学习C。它可能看起来比 Python 等其他入门级编程语言更具挑战性,但一旦掌握了它的窍门,你就会意识到它有多么强大。高级程序员也可以同时学习汇编。
- 微控制器:现在开始您的嵌入式编程领域之旅,推荐从使用 STM32开始。 可以先学习如何点亮led,然后再用PWM输出方波,然后可以使用uart和各种设备通讯。
- 您可以学习 RTOS 或嵌入式 Linux。掌握操作系统内核的原理,可以比裸机干更多的事情。
- 最后你需要项目!一定要在项目中实践,不然所学的都是空中楼阁。
最后给大家推荐一个网址,GitHub - m3y54m/Embedded-Engineering-Roadmap: A comprehensive roadmap for aspiring Embedded Systems Engineers, featuring a curated list of learning resources.
这是一个免费的嵌入式学习路线。
里面有完整的知识体系构建路径,还有重要的学习资源包括图书和视频。开源项目资源。