嵌入式软件开发工程师需要掌握的技能
嵌入式软件开发工程师需要掌握的技能
嵌入式软件开发要掌握什么技能呢?
1、嵌入式软件工程师需要具备简单的硬件电路设计能力,包括数字电路和模拟电路;做嵌入式软件对硬件一样要有一定的基础。
2、嵌入式软件工程师需要懂得C语言和一些简单的汇编语言编程。
3、嵌入式软件工程师需要在操作系统方面至少要精通一种嵌入式操作系统,比如uCOSIII、freeRTOS 、Vxworks等,并且一定要学嵌入式linux ,搞明白多任务调度、信号量、邮箱等的原理和使用;在实际的项目中使用这些操作系统并逐渐掌握它们。
4、嵌入式软件工程师需要至少熟悉一种嵌入式系统的软件开发环境。
5、嵌入式软件工程师能编写常见的linux平台下的外围设备驱动,包括但不限于ADC、GPIO、UART、I2C、摄像头、SD卡、网卡、SPI等等,搞明白字符设备、块设备以及网络设备的常用设备驱动程序架构。
6、嵌入式软件工程师需要理解常见的嵌入式操作系统的工作原理,理解线程、进程、信号量、消息机制、同步与互拆、并发控制等软件编程时用到的概念。
嵌入式硬件开发要掌握什么技能呢?
1、嵌入式软件工程师需要会使用一种绘制原理图的软件绘制原理图。
2、嵌入式软件工程师需要拥有系统导向的思维是很重要的,有不少开发案遇到问题,就是因为没有在开发初期充分考虑基准、验证策略以及兼容性验证计划等项目。
3、嵌入式软件工程师需要能够进行一般嵌入式系统的关键器件选型。
4、嵌入式软件工程师需要能够熟练使用万用表、示波器和一些常用仪器的使用。
5、嵌入式软件工程师需要掌握一般元器件的手工焊接技术。
6、嵌入式软件工程师需要熟练运用单片机、DSP、PLD、FPGA等进行软硬件开发调试的能力。
7、嵌入式软件工程师需要掌握常用的标准电路的设计能力,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等。
8、嵌入式软件工程师需要熟练运用设计工具、设计原理图、PCB板的能力
- 非常扎实的C语言功底,如果是安卓开发的话需要JAVA语言
- 能基本看懂PCB硬件原理图,怎么也得知道哪些引脚是相接的吧
- 基本的驱动需要知道,比如PWM、串口、iic、SPI、DMA等,这些其实都不难
- 需要了解基本的网络协议,比如TCP三次握手,ARP协议、DHCP协议、ICMP协议、静态IP和动态IP的区别等
- 代码管理工具比如git或者svn,git功能多但用不好就心烦,svn简单但操作错误就蛋疼
- 4级英语怎么也得过了吧
- 其他的技能针对不同公司不同工种所需,进公司后自然会有人教你
- 有一个不是必要的但至关重要的是算法和书籍结构,这个基础牢固干啥都不虚