软件工程师——嵌入式岗 虽然学嵌入式很多时候是在操作硬件,但归属于软件工程师,其实学到LINUX嵌入式这一层,已近和硬件关系不是特别紧密了,如图:
硬件处在最核心的位置,外面是系统内核,直接操作硬件的工作交给内核去处理了,而LINUX内核不需要我们去自己编写,所以这个层面上,基于LINUX的嵌入式和STM32这样的单片机开发还是有很大区别的,在写单片机程序的时候,我们是直接操作寄存器,从而控制硬件。
当然,嵌入式工程师也有分类:比如视源股份(CVTE)的招聘岗位
嵌入式工程师又分为:单片机开发和LINUX开发
他们都属于软件岗。嵌入式岗有以下要求:
1.Linux系统的操作:基本的命令,例如“ls、grep”
2.操作系统的基础知识:例如:进程和线程区别,进程间通讯方式等
3.数据结构:相比纯软件岗,嵌入式对数据结构的要求没那么高,但还是必须了解,例如:快速排序的时间复杂度,写一段代码,实现一些字符串的操作等,需要有一定基础
4.C语言,C++,都是必考点,C++可以带着学
5.计算机网络,例如:SIO有哪七层,TCP属于哪一层,TCP和UDP区别等
驱动,例如:键盘属于字符设备还是块设备?
……
总之,要学的很多,没纯软件算法岗难,但很庞杂