本文主要是针对小白的科学普及,因为嵌入式首先具有很多组合术语,例如嵌入式系统,嵌入式软件,Linux嵌入式,Android嵌入式,嵌入式Web等。
通常,嵌入式的定义实际上是“嵌入式系统”的定义。
互联网上嵌入式系统的中文定义确实很难理解。
更正式的中文定义是:嵌入式系统是:以应用程序为中心,基于计算机技术,可以定制软硬件以适应应用程序系统的功能和可靠性,成本,体积,功耗等严格要求。
专用计算机系统。
当然,该定义是正确的,但是有点古怪,缺乏形象并且缺乏“扎根”。
那么如何给出嵌入式系统的扎根定义呢?我首先可以列举一下嵌入式系统中当前使用的IT领域:Android嵌入式开发。
Linux嵌入式开发。
智能手机,平板电脑,智能手表。
可穿戴设备,例如Google眼镜,小米手环。
微软的Xbox和Kinect。
无人机。
VR头盔。
无线路由器。
还有更多〜嵌入式正在渗透到我们生活的方方面面,并将被越来越多地使用。
但是,例如,不能将Android和iOS的纯应用程序开发视为嵌入式开发,而只能将其视为软件开发。
将来,也许我们可以拥有一种便携式可穿戴设备,用于食品,衣物,房屋和运输。
即使在将来,无论您要去哪里,都可以穿薄的“飞行服”。
嵌入式编程近年来变得越来越流行。
尽管入门门槛相对较高,但经过良好的学习,薪水水平还是不错的。
例如,Linux Embedded的高级工程师。
而且,如果您可以念嵌入式的“硬柿子”,并且学习很多知识,那么其他一些编程领域可能会更容易掌握。
就像您精通C ++和C ++一样,其他编程语言通常也可以轻松掌握。
嵌入式编程中还有一个交叉编译的概念:什么是交叉编译?简而言之,它意味着“在另一平台上的一个平台上生成可执行代码”。
在普通的软件开发过程中,如果它是编译的编程语言,例如C语言,C ++,Java等,则如果要运行编写的程序,则需要使用编译器将代码编译成可执行文件。
程序(当然,在中间还有更多的步骤,例如汇编和链接,这里没有提到)。
但是,嵌入式系统的计算能力,内存和存储空间有限,因此无法完成需要更多资源和速度的编译过程。
例如,在Android嵌入式开发中,您不能直接让它在Android手机中编译自己的系统或软件。
因此,我们将首先在普通计算机中编译程序(该计算机具有比Android手机更大的计算能力,更大的内存和更大的存储空间)(它需要与我们编译普通软件的编译器不同的编译器,称为“ cross”。
编译器/“软件”,最常见的是arm-linux-gcc系列),然后转换成适用于Android手机的特定可执行文件(通常打包到图像文件中),然后“烧录”通过特殊工具连接到Android手机。
入门和改进嵌入式系统1.嵌入式软件不一定需要学习很多硬件知识(如果有的话,当然越多越好)。
您可以使用一些编程工具,编译和调试工具(例如JTAG),并且需要立即学习。
开发工具不是固定的,通常不需要IDE。
您可以使用文本编辑器(例如Vim,Emacs,nano,Sublime)编写代码。
编译通常使用GCC的变体。
2.嵌入式通常需要学习C语言。
3.可能不会使用C ++,但您也可以学习它。
4. Linux是要学习的。
因为即使在Windows下,Linux系统也经常用于交叉编译,所以也使用Cygwin。
5.最好花一些时间学习汇编。
理解计算机的原理非常有帮助,尤其是内存,指针,二进制和十六进制。
您不需要深入学习。
6.当前嵌入式的主流处理器体系结构是ARM(以前是ARM7,ARM9,ARM11,现在它们都是Cortex系列)。
手机,平板电脑和大多数开发板均归ARM所有。
因此,您需要了解ARM体系结构并有一个了解。
您无需一开始就深入研究ARM,这取决于未来的情况。
ARM的集成开发环境具有ADS(ARMDeveloperSuite),它是ARM处理器下的主要开发工具。
7.您可以购买便宜的开发板来维护