嵌入式驱动面试总结
操作系统:
中断的处理流程,中断处理需要注意些什么
软中断和硬中断区别
linux驱动用过那些锁,信号量,互斥锁
自旋锁和互斥锁的区别
二值信号量和互斥信号量有什么区别
进程锁怎么实现的,说一下流程;
linux内核怎么 内存管理的,
连续和非连续的;CMA,段页式内存管理,为什么会有内存碎片,怎么避免内存碎片;
怎么实现数据的同步
并行和并发的区别
中断嵌套用作吗
linux
用过gdb吗,怎么定位系统挂死问题,asan的使用;
cpu过高问题怎么定位;gdb;如果是某一瞬间cpu过高怎么定位 perf(查看火焰图)
怎么定位死锁问题
linux常用命令
socket客户端和服务器端函数以及建立流程;
错误码的使用;
linux 大小端怎么确认
c语言:
用过那些关键字,举例说明
static/const的用法说明
c代码和c++代码如何联合编译
字节对齐/指针/数据占多少字节
驱动相关:
设备树的匹配规则
iic的读写访问时序,iic怎么区分设备的,器件地址和设备地址;
iic访问读出来的数据为0,示波器量出来的波形正常,可能是哪方面的原因,如何定位
iic访问遇到过那些问题,怎么解决的
linux iic的调试工具i2c-tools命令用过吗
硬件iic/软件iic有什么区别
spi的读写访问时序
mdo的读写访问时序
了解高速的访问总线吗,pcie.
做过那些设备驱动。
做过phy驱动,说一下phy驱动的开发流程和测试流程;
内核空间和用户空间数据怎么交互的;
signsal/mmap/ioctl/sysfs/debugfs/netlink/procfs/sysctl系统调用
驱动字符设备的框架说一下,主设备号和次设备号的区别说明,linux怎么查看
内核常用哪些方式调试
printk
crash
sysfs/procfs/debugfs
kgdb
netlink
熟悉uboot吗,bootloader的启动过程
熟悉文件系统吗
项目相关
ping包的流程;
丢包怎么处理;