不知道面试问什么?嵌入式50题
1,字符型驱动设备是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件?
2,写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?
3,自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?
4,原子操作你怎么理解?
5,nsmod 一个驱动模块,会执行模块中的哪个函数?rmmod呢?这两个函数在设计上要注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?
6,在驱动调试过程中遇到过oops没?你是怎么处理的?
7,ioctl和unlock_ioctl有什么区别?
8,驱动中操作物理绝对地址为什么要先ioremap?
9,设备驱动模型三个重要成员是?platfoem总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没?
10,linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?
11,linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念?高端内存和物理地址、逻辑地址、线性地址的关系?
12,linux中中断的实现机制,tasklet与workqueue的区别及底层实现区别?为什么要区分上半部和下半部?
13,linux中断的响应执行流程?中断的申请及何时执行(何时执行中断处理函数)?
14,linux中的同步机制?spinlock(自旋锁)与信号量的区别?
15、linux中RCU原理?
16,linux中软中断的实现原理?
17,linux系统实现原子操作有哪些方法?
18,MIPS Cpu中空间地址是怎么划分的?如在uboot中如何操作设备的特定的寄存器?
19,linux中系统调用过程?如:应用程序中read()在linux中执行过程即从用户空间到内核空间?
20,linux内核的启动过程(源代码级)?
21,linux调度原理?
22,linux网络子系统的认识?
23,linux内核里面,内存申请有哪几个函数,各自的区别?
24,IRQ和FIQ有什么区别,在CPU里面是是怎么做的?
25,中断的上半部分和下半部分的问题:讲下分成上半部分和下半部分的原因,为何要分?讲下如何实现?
26,内核函数mmap的实现原理,机制?
27,驱动里面为什么要有并发、互斥的控制?如何实现?讲个例子?
28,spinlock自旋锁是如何实现的?
29,任务调度的机制?
30,嵌入式linux和wince操作系统的特点和特性?
31,嵌入式linux中tty设备驱动的体系结构?
32,嵌入式设备,为加快启动速度,可以做哪些方面的优化?
33,USB设备的枚举过程?
34,PSRAM、SDRAM、DDR、DDR2的时序特性?
35,什么是GPIO?
36,触摸屏的硬件原理?
37,在Linux C中,ls这个命令是怎么被执行的?
38,在一个只有128M内存并且没有交换分区的机器上,说说下面两个程序的运行结果?
39,请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句?
40,LINUX下的Socket套接字和Windows下的WinSock有什么共同点?请从C/C++语言开发的角度描述,至少说出两点共同点?
41,请编写一个标准Shell脚本testd,实现如下功能:
42.你平常是怎么用C写嵌入式系统的死循环的?
43,写一条命令,实现在dir以及其子目录下找出所有包含"hello world"字符串的文件?
44,下面的两段程序中,循环能否执行?为什么?
45,一个计划跑LINUX系统的ARM系统把bootloader烧录进去后,上电后串口上没有任何输出,硬件和软件各应该去检查什么?
46,列举最少3种你所知道的嵌入式的体系结构,并请说明什么是ARM体系结构。
47,请简述下面这段代码的功能?
48,嵌入式中常用的文件系统有哪些?说出它们的主要特点和应用场合?
49,某外设寄存器rGpioBase的地址是0x56000000,寄存器的0~15位有效,请写出给外设寄存器高八位(8~`15位)设置成0xc3的代码?
50,如何编写一个LINUX驱动?
上述题目我会总结到我的专栏中,专栏地址:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
#晒一晒我的offer##牛客解忧铺##设计人的面试记录##牛客在线求职答疑中心##面经#