随着自动化、机器人、物联网等技术的发展和普及,嵌入式开发日益变成一个热门的职业。每年都有大量的同学、极客加入到嵌入式的行列中来。
国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。换句话说,嵌入式系统是软件和硬件的综合体。这说明,如果我们要成为一个优秀的嵌入式工程师,需要同时精通相应的软件和硬件。
一个典型的嵌入式系统
首先,嵌入式需要掌握的硬件知识,主要是基本的数字电路、单片机及外设、通信电路、必要的模拟处理电路。对于非科班出身的同学,这些课程必须要进行补充学习,否则将无法正确理解嵌入式系统的工作逻辑。实际学起来可以从简到难,从手头的需求开始。而对于科班出身的同学,这些都是必修课程,只要还算扎实,这些都不在话下。虽然有了书本知识,可无论哪种情况,都需要动手实践才能扎实掌握。要做好实践环节,选择一个好的开发板,是十分必要的。我个人建议,对于非科班的同学,可以从Arduino开始。而科班的同学可以从芯片商的官方开发板开始,因为可参考的资源非常多。如果自认为功底不扎实,也可以从Arduino开始。
使用arduino来入门嵌入式
其次,嵌入式需要掌握编程语言,毫无疑问一定是C语言了。其他语言现在都还是“可玩”的状态。因此,如果要从事嵌入式开发工作,必须要熟练掌握C语言。仅仅是极客,随便体验下,可以使用各种平台自己主推的语言。当然,我是不建议的,因为你体会不到嵌入式开发的精髓。同时,对一些重要的需求,也没办法对系统进行裁剪、修改。其实C语言从实用的角度来说,不算难的。常用的语法和基础足以应付嵌入式开发,我们完全没必要非要去掌握一些生僻的代码技巧。
强烈建议学习C/C++语言
作为一个从事嵌入式行业十多年的老工程师,我挺愿意和后来者交流的。后续我将用一系列的软硬件专题和大家沟通交流。