嵌入式软件面试
? 导语:最近参加公司面试工作,看到刚刚踏足这个行业的同学,在回答问题时的不自信,想起刚毕业时候的自己,不知道如何针对性的准备面试,问的问题都能都看过、听过,但是说不上来,就显得很尴尬。也有人说,知道就行了,为什么非要一定要说出来?我给的回答是:问题是检验你的知识面,能把问题说出来,也就能充分的说明你对这个问题有一定理解,这样才能在你的工作中用最快的速度想到最佳的方案去解决问题或者定位问题;另一方面也是检查你的学习能力。
? 在这里,整理一下相关面试的问题,后面会陆续更新答案以及新的问题。
C/C++问题
1. C和C++有什么区别
2. sizeof和strlen区别
3. const和static区别
4. volatile关键字
5. 指针和引用的区别
6. 指针和数据的区别
7. 结构体和联合体的空间大小计算
8. malloc /free与calloc /realloc区别
9. 空间分配,有malloc/free,为什么还有new/delete()
10. 什么情况下会出现内存泄漏?
11. 数组和链表有什么区别
12. 链表分类
13. 堆 栈 队列
14. 请编写一个C 函数,该函数将一个字符串逆序
15. 什么是面向对象编程?为什么要用面向对象编程?
16. C++封装、继承和多态理解
17. C++中调用被C编译器函数,为什么要加extern ’ C ’
18. 三目运算符
19. 指针数组和数组指针区别
QT问题
1. 为什么使用QT作为界面开发上位机
2. 信号与槽本质
3. 槽机制的优缺点
4. 槽连接的连接方式(connect第五个参数)
5. SOCKET编程(TCP/UDP)
6. QT多线程创建方法
7. 线程死锁
8. 线程互锁
9. 线程同步
10. 进程和线程的区别(什么时候使用线程,什么时候使用进程?)
11. QSS样式表
单片机问题
1. stm32的系统时钟
2. 单片机中断流程
3. SPI协议原理
4. IIC协议原理
5. UART通信
空闲中断接收数据帧
6. RS232 RS485 通信区别
7. 全双工和半双工的区别
8. 为什么使用实时操作系统
9. 串口通信,9600bit/s的波特率,每帧数据格式为10bit,1s可以传输多少字节?
串口通信中,常采用:1个起始位,8个数据位,0个校验,1个停止位,即常说的,8,N,1;8数据位,无校验位,1停止位。
分析:即没发送一帧上述格式的数据位,需要10个电平进行转换,即 需要10位,才能发送1个字节的数据。
所以,1秒9600bit, 则有9600/10 = 960字节
10. 七层网络模型
11. 大端小端字节序
12.
13. DMA原理
14. 递归函数
15. 排序算法
16. 滤波算法
17. PID算法
如何看待代码分层的问题?
参与制定过传输协议吗?
DSP问题
1. 单片机和DSP有什么区别
2. 数字滤波器的分类和结构特点
3. IIR FIR滤波器区别
Linux问题
1. Linux设备驱动的分类
2. 什么是设备树?作用?
3. 什么是交叉编译?为什么使用交叉编译?
4. 主设备号和次设备号的作用区别?
5. 一个应用程序从开始运行到结束经历哪些过程?
6. 字符设备和块设备的区别?举例列举哪些是字符设备,哪些是块设备?
7. Linux的内核启动过程?
8. 设备驱动程序中如何注册一个字符设备?
非专业问题
1. 项目中你遇到什么问题?如何解决的?
2.
|