嵌入式软件工程师的技能要求非常广泛,具体包括:
- 编程语言:大多数嵌入式软件工程师需要熟悉C或C++语言编程,以及汇编语言。其中,C语言通常被广泛用于嵌入式系统的开发。此外,对于特定的物联网设备和协议,可能还需要了解Python、Java或其他编程语言。
- 知识体系:理解计算机体系结构和操作系统原理,熟悉嵌入式操作系统的工作原理,理解线程、进程、信号量、消息机制、同步与互拆、并发控制等软件编程时用到的概念。
- 物联网协议与网络通信协议:对于物联网的常用协议如LPWAN、MQTT、CoAP、ZigBee,以及网络通信协议如LWM2M/NB-IoT、EDP、MQTT、HTTP、Modbus等需要有深入的理解。
- 硬件基础知识:对于电子和微处理器的基础知识,如模拟电路和数字电路设计,以及单片机、ARM等处理器的架构及应用开发需要熟悉和掌握。
- 测试和调试技术:熟悉硬件和软件的测试和调试技术,包括使用示波器、万用表和一些常用仪器进行调试,以及运用软件工具进行仿真和调试等。
- 云平台与前端应用:一些嵌入式软件工程师可能还需要了解云平台如OneNET和阿里云等的操作和维护,以及与前端应用的交互技术,例如网页、app、公众号、小程序等的设计和开发。
- 其他技能:良好的编程风格和软件架构设计能力,了解熟悉使用常用低功耗单片机处理器的架构及应用开发也是非常有帮助的。
以上这些技能在嵌入式软件工程师的日常工作中都会涉及到,具体需要掌握到什么程度还需要根据具体的工作内容和职位要求来确定。