嵌入式
熟练使用C语言,了解C++ 熟悉FreeRTOS的使用 了解UART、I2C、SPI、I2S、CAN、Modbus等常用通信协议 了解CortexM3、M4内核架构 熟悉STM32系列芯片的开发
[3] C/C++: static关键字 const用法 栈和堆的区别 [4] 网络编程: TCP/UDP区别? TCP如何保证传输可靠的?
[7] 进程通讯方式有哪几种?开发过程中使用过哪几种?讲下消息队列创建和销毁的过程?进程间通讯消息队列是怎么保证同步传递过去的?
[4] FreeRTOS操作系统你用到了几个线程/任务?任务间通信除了消息队列、信号量外还有什么? [6] C++了解吗?讲下类的特性
我已经学了两年嵌入式了,所以给你推荐的是学好C语言,打好stm32基础,熟练说出iic,uart,spi,usb这四种通讯协议,项目做个综合一点的,底层采集数据,蓝牙发送至手机APP,WiFi发送至云平台,这样云边端都有了。
const关键字用法? volatile关键字用法?i++和++i(回答的不专业) 32位系统下int 、long 、long long的长度 sizeof用法
static 变量存在静态存储区,只初始化一次,编译时赋初值,初始为零 程序整个运行周期不释放
auto 局部变量 可省略 调用结束后收回地址 动态存储区
动态存储区 未加static的局部变量 形参
extern 全局变量 从声明处到文件尾 静态存储区 占有固定单元 不动态分配和释放 https://www.csdn.net/tags/MtTaAg0sNDkxMjQyLWJsb2cO0O0O.html
一 、笔试
笔试内容考察的很广,从应用层到底层,网络,数据库,操作系统,数据结构等等都有涉及,但是总体来说不算很难,基本都是基础题,后面两个编程题分别是一个字符串处理,一个求阶乘末尾零的个数。
二 、技术一面
C/C++: 1.#include<>和#include""区别
2.extern关键字
3.static关键字
4.C和C++的区别
5.C++的三个特性
6.引用和指针区别
6.什么时候用引用,什么时候用指针
7.内存存储段,全局变量,局部变量,动态分配的变量分别存储在哪里,分别什么时候产生,释放?
8.在A 函数内部调用B函数,需要你去动态分配内存,你觉得应该在A函数里动态分配还是在B函数里分配,什么时候释放 呢?
9.malloc 和 new的区别
10.死锁是什么,怎么产生的,如何避免。
11.进程线程的区别,什么时候用进程,什么时候用线程
12.智能指针
硬件方面:
1.说说UART要配置什么参数,IIC,SPI
2.UART怎么传输浮点数,如果这个浮点数很大怎么办?
3说说你接触过的嵌入式实时操作系统
4.shell脚本了解吗?说说怎么查找当前目录及其子目录下的某个文件
5.有进行过linux系统裁剪吗?用到哪些命令
6.linux内核的启动过程
7.有了解android吗?
准备一个问题问面试官
三、 技术二面
二面主要还是谈谈项目,面试官上来让你简单介绍一下自己,和你聊聊大学生活,兴趣爱好之类的,然后就开始讲项目,然后面试官会根据你的项目问一些相关问题,比如你做项目遇到了哪些问题呀?怎么解决的?为什么采用这个方案?按你实际情况答就好了,然后项目讲完后面试官还问了几个系统移植以及驱动的相关知识,uboot的启动流程?有没有自己编写过驱动?对安卓有没有了解过?
以下来自拓跋阿秀
2、操作系统 操作系统是比较重要的,面试三大要点之一(操作系统、计网、数据库),我是在 B 站上看过一些操作系统视频,同时自己慢慢看书、看博客学的。其中死锁、虚拟内存、堆栈、进程线程、内存管理、磁盘调度等都是重点,也是面试过程中问的比较多的一些知识点。你如果能够在面试过程中讲出来一些具体的操作系统知识,而不是泛泛而谈,肯定是很加分的,比如常见知识点进程线程区别,在提到线程切换比进程更快时,你如果能够很清楚明白的说出来进程切换做了哪些、线程切换做了哪些以及线程为什么比进程快,毫无疑问很加分的。
推荐资料:
**B站哈工大操作系统:**https://www.bilibili.com/video/BV1d4411v7u7
**B站清华大学操作系统:**https://www.bilibili.com/video/BV1js411b7vg
**B站美国麻省理工MIT 6.828操作系统神级课程:**https://www.bilibili.com/video/BV1px411E7ST
现代操作系统(也是讲操作系统的一本好书,讲的很细)
深入理解计算机系统(大名鼎鼎的CSAPP,被誉为“和金子一样重要的计算机基础书籍” , 很厚的一本黑皮书,需要慢慢看)
现代操作系统:原理与实现(上海交通大学陈海波教授的著作,书中主要介绍操作系统的理论与具体实现细节等,感觉不如CSAPP)
计算机网络
计算机网络也是重点之一,特别是 HTTP 以及 TCP/UDP 相关知识点,算是校招必备考点了,面试必问,但是难度是逐年上升的,原因可能就在于内卷程度越来越严重了吧。比如说以前对于三次握手四次挥手只问过程,现在直接让面试者画出客户端以及服务器端的各个状态码以及解释各种意外情况,比如 SYN 请求丢失会怎么样?
建议计网的学习先从视频入手,然后再看经典书籍,毕竟视频中的知识都是别人总结好又给你讲解的,只有自己亲自揣摩、亲自动手实践得来的知识才是自己的,自己学来的才是真,经过实践方知分晓的~
推荐资料:
B站韩立刚老师的计算机网络(韩老师讲课诙谐易懂,让你在哈哈大笑中学到很多知识点:https://www.bilibili.com/video/BV17p411f7ZZ)
图解HTTP、图解TCP/IP(这两本书比较简单,日本人写的,把复杂的知识点简单化)
网络是怎样连接的这本书紧紧围绕一个问题:输入一个URL,直到我们在网页端看到请求的内容,这中间发生了什么?抽丝剥茧将这个问题逐步细化,带你走完整个网页访问的过程)
计算机网络:自顶向下方法 (也是常见经典书籍之一,重点看第三章传输层TCP/UDP)
以上来自拓跋阿秀
海尔一面:(给楼主点点赞,帮大家探探路) 2个面试官,一个HR一个问技术 一共20分钟,面试官很好,一般就是问简历,问了两个C语言的题目, 1、static 2、const 主要就是项目。