1、嵌入式和单片机的区别
1.1、芯片平台
主流的单片机平台:51、PIC、STM32、AVR、MSP430等
主流的嵌入式平台:ARM、PPC、MIPS
1.2、资源、价格、应用领域
单片机片上资源有限、价格低、应用领域多为小家电、终端设备等。
嵌入式系统片上资源丰富、价格较高、应用领域宽广,例如智能手机、平板电脑、游戏机、路由器、摄像机、智能电视机、智能手表、收银机等。
1.3、开发模式
单片机开发多为裸机、程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。
嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是linux和Android。
1.4、技术特征
1.4.1、编程语言方面
单片机主要使用C语言(少量用汇编),和标准C略有不同,很少使用结构体、函数指针等C语言高级特性。
而嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多。
1.4.2、软硬件组件方面
单片机多涉及一些简单外设,例如串口、I2C、ADC、LCD(小屏幕和分辨率)。
而嵌入式系统则涉及更多复杂外设,例如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。
1.4.3、职业发展
单片机学习路线短,职业平缓,薪资发展很早达到瓶颈。
嵌入式学习路线长,职业生涯久,薪资发展多年才会达到瓶颈。
2、嵌入式学习和编程语言、英语水平的关系
2.1、嵌入式和编程语言
嵌入式开发主要使用C语言。
辅助为汇编语言。
中间层开发用C++多一些。
应用层开发用C++、Java、Python等等。
2.2、嵌入式学习和英语
首先,编程都是用英语写。
关键的就是关键字。
看数据手册可以借助桌面词典等方式。
2.3、嵌入式学习和数电模电
嵌入式分嵌入式软件和嵌入式硬件两部分。
嵌入式软件主要还是软件,硬件辅助。
数电模电会有帮助,但不是必须。
3、嵌入式系统的构成特点和演进方向
3.1、嵌入式系统的特点
(1)专用、软硬件可裁剪可配置
(2)低功耗、高可靠性、高稳定性
(3)软件代码短小精悍
(4)代码可固化
(5)实时性
(6)弱交互性
(7)专用开发工具及开发环境
(8)专业开发人员
3.2、嵌入式系统的组成
硬件:微处理器、存储器、I/O接口、输入输出设备等
软件:嵌入式操作系统、BSP(board support package)、应用软件
3.3、嵌入式系统的分层
3.4、嵌入式系统的发展演进
3.4.1、以单片机为核心、可编程控制器存在形式
没有操作系统支持
软件以汇编为主
功能单一、处理效率低、存储容器小、没有对外接口
使用简单、就几个低
3.4.2、以嵌入式CPU为基础、简单操作系统为核心
CPU种类多,通用性弱
系统开销小,效率高
达到一定兼容性,拓展性
用户体验度不高,交互界面不够友好
3.4.3、以嵌入式操作系统为标志
兼容性好,适用于不同平台
系统开销小,效率高,具有高度模块化及拓展性
图形化界面,用户界面友好
丰富的外部接口
3.4.4、以物联网为标志
将传感器技术、互联网技术及传统嵌入式技术综合联系
小型化、智能化、网络化及可视化
低功耗、绿色环保
多核技术、云计算技术及虚拟化技术