文本描述
嵌入式开发为什么用C语言,而不用C++语言
C编程和利用C++有什么差别
说一下static的作用
const 和 define的区别
说一下const的作用,const变量存储在哪里,和static变量存储的位置一样吗
说一下不同类型的变量(局部变量,全局变量,局部全局static const修饰的变量)在内存中存储的位置
操作系统了解吗,说一下进程线程
进程线程的区别
进程通信方式和线程方式有哪些,举例说明一下
说一下mmap的通信过程
多线程场景下会出现什么问题,怎么解决
既然你说到了信号量和互斥锁,举俩个例子说明一下应用场景
单线程下会出现数据的不一致性问题吗,举例说明
嵌入式系统了解吗
你知道实时系统吗,和linux系统有什么区别
实时系统如何保证强实时性
这里我举例说的 uCOSII,接下来问了ucosII的任务调度,人傻了,忘了
中断处理的过程
面试过程***享屏幕,按照面试官的提示写了一点代码和伪代码如下
int (*p)(int);
typedef struct data
{
unsigned char a;
unsigned short b;
unsigned int c;
}Data;
void sendData()
{
Data a;
...... //给a赋值
char *p = &a
for(int i = 0; i < 8; i++)
{
send((*p));
p++;
}
}
定义一个参数为int,返回值为int的函数指针
定义一个结构体,结构体内有三个变量,a(0-255), b(0-10000),c(0-100000),使结构体尽可能小
设计一个函数,该函数调用的接口每次只能发送一个字节的数据,问如何把这个结构体发送出去
其实面试官这里想考的是 Data结构体占用的内存空间
这里Data结构体的大小为8byte,发送八次就行
为什么结构体占用内存是8字节
技术二面
主要聊项目,详细聊了一下之前做的项目中我负责的模块问了一点网络编程,epoll,select,poll等
技术三面
这次面试是主管面,具体内容偏开放一点,感觉有点像主管随机问一些问题,看你的临场应变能力具体问的问题这里就不写出来了,每个人估计都不一样,应该没有很大的参考价值整体过程比较轻松,把能想到的全都说出来就ok记得比较深刻的是最后问了个三羊问题,然后对这个问题写了个代码这一面穿插问的技术问题会很深,直到你答不上来为止一定要学好计算机网络,不能浮于表面,最好要动手抓包去分析各类协议!!!
hr面
主要问了一些在校经历和学习情况,以及对未来的职业规划