![93b101430f6edaca319291d4860d453b.png](https://i-blog.csdnimg.cn/blog_migrate/c13f3631681d9f14e152acc2ea796c8a.jpeg)
作为除PC端外的另一种系统,嵌入式系统应用领域极其广泛,广泛到单片机、PLC、FPGA+CPLD、ARM+Linux实际上都属于嵌入式范畴,嵌入式主要内容包括linux系统,C语言开发,数据库等。
![3bd7ab6239199bd5f6d1b00478b91256.png](https://i-blog.csdnimg.cn/blog_migrate/9574548b3771eb504ed52a7e0e1b19d9.png)
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
什么是嵌入式技术
嵌入式技术是以应用为中心,以计算机技术为基础的系统技术,把软件直接烧录在硬件里,而不是安装在外部储存介质上。即在已有的硬件上移植操作系统,让操作系统去管理软硬件资源,使软硬件耦合度降低,在操作系统之上做上层应用开发,在操作系统之下做底层开发。
![ce51f6816ad63ebb71b30882cd9d745e.png](https://i-blog.csdnimg.cn/blog_migrate/23b92b01e8c3704f120b89f1afdeeb95.jpeg)
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
嵌入式软件
嵌入式使产品更加智能,跑更多的软件。嵌入式软件是结合操作系统做的开发,而非嵌入式软件是裸机开发(没有跑操作系统)。判断是不是嵌入式产品,看产品中有没有跑操作系统,在各行各业都有不同类型的操作系统,应用非常广泛,但是其作用都为隔离软硬件。
![d01ae45d8b7ff0eb583456a290bb7d50.png](https://i-blog.csdnimg.cn/blog_migrate/ce0191b042b6d9ebfd05399cf058fb7f.jpeg)
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
单片机开发
单片机开发是传统开发,开发流程为先看原理图,然后写代码,最后将代码下载到开发板中,即由软件和硬件两大元素组成,熟悉硬件的工作原理再去写软件,将写好的软件烧录到硬件中,由软件去控制硬件工作(软件即代码,底层的开发板即硬件)。
缺点:
- 首先软件和硬件的耦合度高,软件移植性差(适配平台能力差),运行效率低,功耗高;
- 在开发人员能力要求方面传统开发工程师要软硬兼顾,相对于团队合作,其开发效率低,工程师精力有限,很难顾全局,用户体验感降低。
![57046f7fe27d5cd525a0544da2a4829f.png](https://i-blog.csdnimg.cn/blog_migrate/af0eda9c861d04212d155f6f627d3c7b.png)
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
嵌入式开发
嵌入式开发是在软件和硬件中间移植入操作系统。操作系统可以管理软件资源和硬件资源,实现软件和硬件之间的隔离,例如想要运行硬件中的摄像头,先让软件向操作系统发出相应的指令,由操作系统去控制硬件,硬件将数据返回给操作系统,操作系统再将数据返回给软件,这样我们在开发软件时就不需要去了解硬件的工作原理和构造,只要操作系统不发生变化,硬件的改变就不会影响到软件。
优点:软件移植性好(适配平台能力强),开发人员能力划分更清晰,操作系统实现了多任务机制、提供了丰富的网络协议、提供了开源软件和库。
缺点:操作系统升级硬件成本会提高。
![fa2c9038fe5b7f09c6335fc31aa1ac61.png](https://i-blog.csdnimg.cn/blog_migrate/f9854a1f29971609a731b61b1eab3f9d.jpeg)
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
嵌入式开发技能要求
![e7724313d957feba2fd32113f9f7ed61.png](https://i-blog.csdnimg.cn/blog_migrate/7f6f2f0717ecb430e3d41a36884a9c02.jpeg)
1)嵌入式上层应用软件开发:
- 精通一门语言;
- 熟悉一款操作系统(会看说明书);
- 数据结构/算法;
2)嵌入式底层系统软件开发:
- 精通C语言(所有的操作系统内核都是有C+汇编开发的);
- 理解操作系统的实现(会使用,会添加/修改功能);
- 熟悉硬件的工作原理(CPU:stm32+64位,SPI,IIC,蓝牙,wifi物联网,摄像头);
- 熟悉汇编;
![a619fc773c9b0422e9f9065c01476f16.gif](https://i-blog.csdnimg.cn/blog_migrate/ac5b0b1ae21e22e457afe7ad26b4a947.gif)
嵌入式各个方向
嵌入式(ARM+Linux)
方向:
★ 高端智能硬件(平板、手机、机顶盒)
★ 工业机器人
★ 物联网(网关)
技能:
Ø C语言、数据结构
Ø 嵌入式Linux下文件I/O、Linux并发程序设计你该这么学、Linux网络编程
Ø ARM体系结构及接口技术、嵌入式系统移植、嵌入式内核及驱动开发高级
嵌入式(FPGA+CPLD)
方向:
★ 通信产品(基站、大型交换机、网关)
★ 军工产品(导弹、火箭)★ 视频(视频流、图像处理)
技能:
Ø vhdl和verilog编程语言
Ø Altera FPGA设计
Ø Xilinx FPGA设计
嵌入式(单片机)
方向:
★ 智能硬件(无人机、智能小家电)
★ 物联网(无线传输、智能传感器)技能:
Ø C语言、数据结构
Ø STM8/STM32/MSP430单片机开发
Ø Ucos/FreeRTOS嵌入式操作系统移植
Ø 电子电路设计
嵌入式(PLC)
方向:
★ 各个方向知识体系
技能:
Ø 西门子/三菱/施耐德PLC程序开发
Ø 工业传感器、私服系统、变频器应用
Ø 工业总线通信协议