文章目录
他人感悟工作职责任职要求嵌入式软件开发涉及的知识点很多,我仅简单说一下:他人感悟
一线工程师告诉你嵌入式真实现状与发展前景
当我们谈论嵌入式时我们究竟在谈什么
工作职责
负责硬件平台bring up;
负责底层驱动及上层应用的开发和调试;
负责Linux内核和用户空间程序开发和调试;
负责产品性能优化和稳定性调试;
负责相关技术文档的编写。
任职要求
本科及以上学历,计算机、电子、通信、自动化或软件相关专业;
熟悉C/C++编程语言,具有良好的代码编写习惯;
具有扎实的数字电路、模拟电路、微机原理等专业理论基础知识;
具有一定的硬件基础知识,能够看懂原理图,掌握基本的硬件调试工具的使用方法(如示波器、逻辑分析仪等);
具有嵌入式相关开发经验,熟悉ARM/DSP等任一平台的体系架构;
熟悉一种以上常用外设接口,如USB/UART/I2C/SPI/CAN等;
至少具备以下条件之一:
(a)熟悉Linux或者某一款RTOS,了解其操作系统原理,具有驱动开发或者应用开发经验;
(b)熟悉Linux/RTOS内核调试工具、内存管理、线程、任务调度、中断管理和存储等模块,具有实战经验;
(c)熟悉音、视频编解码,具有流媒体相关开发经验,了解V4L2、ALSA、DRM等驱动框架;
(d)熟悉Linux网络驱动和协议栈,有无线网卡、BT等驱动开发经验;
(e)熟悉DSP或NEON代码优化;熟悉vector C 或 intrinsic C编程。
具备较强的学习、沟通表达能力和良好的团队合作精神;
具有无人机、机器人开发经验或有各类电子设计竞赛经验者优先。
嵌入式软件开发涉及的知识点很多,我仅简单说一下:
1、具备简单的硬件电路设计能力,包括数字电路和模拟电路;做嵌入式软件对硬件一样要有一定的基础;
2、MCU设计与应用,从单片机到ARM到DSP等要具备根据客户要求设计产品的能力;外围端口和设备的设计使用以及驱动程序的编写能力,包括ADC、FLASH、EEPROM、RTC、Timer、GPIO、CAN、UART、I2C、SPI、以太网、液晶显示器等等;
3、操作系统方面至少要精通一种嵌入式操作系统,比如uCOSIII、freeRTOS 、Vxworks等,并且一定要学嵌入式linux ,搞明白多任务调度、信号量、邮箱等的原理和使用;在实际的项目中使用这些操作系统并逐渐掌握它们;
4、能编写常见的linux平台下的外围设备驱动,包括但不限于ADC、GPIO、UART、I2C、摄像头、SD卡、网卡、SPI等等,搞明白字符设备、块设备以及网络设备的常用设备驱动程序架构;
5、具备GUI设计能力,可以学习Qt,它的跨平台特性使得一套设计可以应用于不同的平台包括windows以及linux;
6、具备多线程编程能力,弄懂线程池的原理并应用到实际工作中;
7、具备高并发网络通信编程能力,epoll以及libevent 的使用和设计;
8、精通C/C++,并涉猎其他编程语言比如python
9、具备至少一种数据库编程能力,嵌入式可以学习SQLite ;
10、掌握常用数据结构及算法的原理以及编程实现,包括链表、队列、二叉树等,掌握常用排序、查找等算法的实现;多关注一些开源项目,从中学习编程能力,提高自己;
掌握这些已经基本具备嵌入式系统开发能力,一定要保持时刻学习的能力,接下来就是多做项目,多解决客户问题,在实际工作中历练自己提高自己。
嵌入式开发项目中,首先需要做需求分析,然后根据需求分析进行综合考虑,这里给出几个特别要注意的问题。
作者:亓霂_宣萧
链接:/p/bfac3e5fc8fc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果觉得《嵌入式软件开发工程师求职要求》对你有帮助,请点赞、收藏,并留下你的观点哦!