【嵌入式开发】|LINUX
驱动、系统底层
时间:2023-04-08
文章目录
- 【嵌入式开发】|`LINUX`驱动、系统底层
-
- 参考
- **1.你平常是怎么用C写嵌入式系统的死循环的? [3分]**
- **2.写一条命令,实现在`dir`以及其子目录下找出所有包含“`hello world`”字符串的文件[2分]**
- **3.下面的两段程序中,循环能否执行?为什么?**
- **4.一个计划跑`LINUX`系统的`ARM`系统把`bootloader`烧录进去后,上电后串口上没有任何输出,硬件和软件各应该去检查什么?**
- **5.列举最少3种你所知道的嵌入式的体系结构,并请说明什么是ARM体系结构。[7分]**
- **6.请简述下面这段代码的功能[2分]**
- **7.嵌入式中常用的文件系统有哪些?说出它们的主要特点和应用场合?[5分]**
- **8.某外设寄存器`rGpioBase`的地址是`0x56000000`,寄存器的`0~15`位有效,请写出给外设寄存器高八位(`8~15`位)设置成`0xc3`的代码[7分]**
- [C 运算符](https://www.runoob.com/cprogramming/c-operators.html)
-
- **9.根据时序图和说明编写程序:**
- **10.简述`LINUX`系统从上电开始到系统起来的主要流程?**
- **11.如何编写一个`LINUX`驱动?**
- **12.简述`LINUX`驱动中字符设备和块设备的区别?[5分]**
- **13.试总结单片机底层开发与`LINUX`驱动开发有哪些异同?[4分]**
- **14.请从网卡、`USB HOST`、`LCD`驱动器、`NAND FLASH`、`WIFI` 、音频芯片中选择一个或者2个(可以以具体的芯片为例),对下面的问题做答:**
- **15.画出上题中你选定相应硬件模块与`CPU`的主要引脚连线[5分]**
- **16. 编写上题中你选定相应硬件模块相应`LINUX`驱动的流程?[6分]**
这是一份针对Linux驱动和系统底层工程师的面试题集,涵盖了C语言运算符、死循环实现、文件查找命令、类型转换规则、系统启动流程、嵌入式体系结构等内容。试题强调对C语言编程、系统级问题的处理以及硬件和软件故障排查能力。
就业模拟测试题-LINUX驱动、系统底层工程师职位
本试卷从考试酷examcoo网站导出,文件格式为mht,请用WORD/WPS打开,并另存为doc/docx格式后再使用
试卷编号:143921
试卷录入者:yisonghua
试卷总分:80
出卷时间:2012-09-13 14:53
答题时间:150分钟
姓名: 学号: 班级:
说明: 以下个体中的分数是说明题目的重要性而言的,并不是具体题目的考试分数,此试卷中的题目主要是出现在笔试之后的面试中,大部分题目要直接能说的出来,多去整理,完善自己的表达
参考
1.面试题 | LINUX驱动、系统底层_逻辑驱动 与 linux驱动-CSDN博客
2.C,LINUX,数据结构部分 - hello,123456 - 博客园 (cnblogs.com)
3.LINUX应用开发工程师职位(含答案) - hello,123456 - 博客园 (cnblogs.com)
4.面试题1 - hello,123456 - 博客园 (cnblogs.com)
5.面试相关 - hello,123456 - 博客园 (cnblogs.com)
1.你平常是怎么用C写嵌入式系统的死循环的? [3分]
参考答案:
while(1)
{
//...
}
或者
for(;;)
{
//...
}
2.写一条命令,实现在dir
以及其子目录下找出所有包含“hello world
”字符串的文件[2分]
参考答案:
grep -r "hello world" ./dir
# 或者
grep -rHn "hello world" ./
3.下面的两段程序中,循环能否执行?为什么?
A:
unsigned short i;
unsigned short index = 0;
for(i = 0; i <index-1; i++){
printf(“a\n”);
}
不能,当执行到语句
i<index-1
时,由于类型不匹配,右边的index
和1相减时会发生隐式类型转换 ,即index
将被转换成有符号整型 ,转换之后的index
还是0
,因此程序片段A中的index-1
的结果就是 -1 ,此时判断i<index-1
,即0<-1
,显然不成立。立即退出循环。
B:
unsigned short i;
unsigned long index = 0;
for(i = 0; i <index-1; i++){
printf(“b\n”);
}
能,
index
是unsigned long
型,当执行到语句i<index-1
时,由于类型不匹配,右边的index
和1
相减时也会发生由低精度类型向高精度方向的隐式类型转换 ,即1
将被转换成无符号长整型 ,因此程序片段B中的index-1
的过程用十六进制数表示实际上就是0x00000-0x0001=0xffff
,此时再把左边的i
隐式转换成无符号长整型之后判断i<index-1
,即0<0xffff
,显然成立。立即进入循环。 [每空2分]
解析:
隐式类型转换规则:C语言自动转换不同类型的行为称之为隐式类型转换 ,转换的基本原则是:低精度类型向高精度类