单片机与嵌入式区别

单片机与嵌入式

  • 芯片平台
  • 片上资源
  • 价格
  • 应用场景不同
  • 开发模式
  • 技术特征
  • 职业发展
  • 嵌入式开发需要掌握的语言
  • 关于电路+数电+模电

芯片平台

  • 主流单片机平台:51、PIC、STM32、AVR、MSP430等
  • 主流嵌入式平台:ARM(最广泛)、PPC(老美、欧洲有用的)、MIPS(路由器领域广泛使用,还有龙芯CPU)

片上资源

  • 单片机片上资源有限,单片机数据手册一般千页以内。多涉及UART、I2C、ADC、LCD等。
  • 嵌入式片上资源丰富,应用处理器数据手册一般数千页。多涉及有线网卡、无线网卡、蓝牙、USB、音视频编解码等。

价格

  • 单片机价格较低。整个单片机系统几十、几百元。
  • 嵌入式系统价格较高。嵌入式系统的核心板就几百元。

应用场景不同

  • 单片机一般用于小家电、终端设备:电饭锅,空调,冰箱等;终端信息采集设备。
  • 嵌入式系统一般用于平板电脑、智能手机、游戏机、路由器、摄像机、智能电视、智能可穿戴设备、ATM机等。操作系统的好处就是支持各种复杂协议栈

开发模式

  • 单片机,裸机开发,多为单个程序员独立开发。有的单片机工程师会设计电路、能写单片机代码,甚至连外壳都能设计。可能会搭载个RTOS,比如uCOS、freeRTOS等。

  • 嵌入式开发,基于操作系统,使用复杂的协议栈开发,多用Linux、Android系统。Linux 一般用于纯后台运行的产品,比如路由器,没有屏幕,按键很少,上电工作。Android 一般用于与用户交互的产品,有个大屏幕供用户使用。

技术特征

  • 单片机,使用C语言开发,启动代码用汇编语言。单片机C语言和标准C语言略有不同,很少使用结构体、函数指针等C语言高级特性。
//标准C的main函数
int main(int argc, char **argv)
{
	return 0;
}

//单片机的C语言main函数
void main(void)
{
	
}
  • 嵌入式开发,提供驱动架构,不需要自己从头写。分为底层驱动应用层开发,底层使用C语言开发(U-Boot 有一段汇编程序),应用层使用C、C++、Java、Python、Shell、PHP等语言。嵌入式开发使用C语言的高级特性,比如结构体、数据结构、算法、函数指针等。

职业发展

  • 单片机学习路线短,职业平缓,薪资发展很早到达瓶颈,瓶颈薪资6~8k。
  • 嵌入式学习路线长,职业生涯久,薪资发展多年才会达到瓶颈,慢慢研究,能研究一辈子哦,一般瓶颈薪资12~15k。

嵌入式开发需要掌握的语言

  • 底层为“C语言”,辅助为“汇编语言”
  • 中间层“C++”
  • 应用层:C++、Java、Python、Shell 等
  • “英语” 贯穿学习始终

关于电路+数电+模电

  • 计算机系毕业的嵌入式软件工程师不用分析电路,不需要刻意去学。
  • 如果是电子系的,最好复习下电路,硬件出错了能自己分析下,对于整体产品的设计、硬件选型有帮助。因为软件干不过计算机的啊,人家数学建模、算法、软件工程思想都很厉害。

你可能感兴趣的:(单片机与嵌入式区别)