就业模拟测试题-LINUX驱动、系统底层工程师职位-

上传人:橙** 文档编号:333363924 上传时间:2022-09-01 格式:PDF 页数:11 大小:949.28KB
返回 下载 相关 举报
就业模拟测试题-LINUX驱动、系统底层工程师职位-_第1页
第1页 / 共11页
就业模拟测试题-LINUX驱动、系统底层工程师职位-_第2页
第2页 / 共11页
就业模拟测试题-LINUX驱动、系统底层工程师职位-_第3页
第3页 / 共11页
就业模拟测试题-LINUX驱动、系统底层工程师职位-_第4页
第4页 / 共11页
就业模拟测试题-LINUX驱动、系统底层工程师职位-_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《就业模拟测试题-LINUX驱动、系统底层工程师职位-》由会员分享,可在线阅读,更多相关《就业模拟测试题-LINUX驱动、系统底层工程师职位-(11页珍藏版)》请在金锄头文库上搜索。

1、就业模拟测试题-LINUX 驱动、系统底层工程师职位(点击此处 更多惊喜)http:/ 本试卷从考试酷 examcoo网站导出,文件格式为mht,请用 WORD/WPS打开,并另存为 doc/docx 格式后再使用试卷编号:143921 试卷录入者:yisonghua(华清远见)试卷总分:80 出卷时间:2012-09-13 14:53 答题时间:150分钟姓名:学号:班级:6 说明:以下个体中的分数是说明题目的重要性而言的,并不是具体题目的考试分数,此试卷中的题目主要是出现在笔试之后的面试中,大部分题目要直接能说的出来,多去整理,完善自己的表达1.你平常是怎么用 C写嵌入式系统的死循环的?3

2、 分 参考答案: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(“an”);不能,当执行到语句 iindex-1 时,由于类型不匹配,右边的index 和 1 相名师资料总结-精品资料欢迎下载-名师精心整理-第

3、1 页,共 11 页 -减时会发生隐式类型转换,即 index 将被转换成有符号整型,转换之后的index 还是 0,因此程序片段 A中的 index-1 的结果就是 -1,此时判断iindex-1,即 0-1,显然不成立。立即退出循环。B:unsigned short i;unsigned long index=0;for(i=0;i index-1;i+)printf(“bn”);能,index 是 unsigned long型,当执行到语句 iindex-1 时,由于类型不匹配,右边的 index 和 1 相减时也会发生由低精度类型向高精度方向的隐式类型转换,即 1 将被转换成无符号长整

4、型,因此程序片段 B中的 index-1 的过程用十六进制数表示实际上就是0 x00000-0 x0001=0 xffff,此时再把左边的 i 隐式转换成无符号长整型之后判断 iindex-1,即 0 unsigned int-long-unsigned long-long long-unsigned long long-float-double-long double 注意,上面的顺序并不一定适用于你的机器,比如当int和 long 具有相同字长时,unsigned int的精度就会比 long 的精度高(事实上大多数针对32 机的编译器都是如此)。另外需要注意的一点是并没有将char 和

5、short 型写入上式,原因是他们可以被提升到int也可能被提升到 unsigned int。提升数据的精度通常是一个平滑无损害的过程,但是降低数据的精度可能导致真正的问题。原因很简单:一个较低精度的类型可能不够大,不能存放一个具有更高精度的完整的数据。一个1 字节的 char 变量可以存放整数101 但不能存放整数 12345。当把浮点类型数据转换为整数类型时,他们被趋零截尾或舍入。强制类型转换:通常我们应该避免自动类型转换,当我们需要手动指定一个准确的数据类型时,我们可以用强制类型转换机制来达到我们的目的,使用方法很简单,在需要强制转换类型的变量或常量前面加上(type),例如(doubl

6、e)i;即把变量 i 强制转换成 double 型。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -4.一个计划跑 LINUX系统的 ARM 系统把 bootloader烧录进去后,上电后串口上没有任何输出,硬件和软件各应该去检查什么?提示:1.跑 LINUX的系统一般都需要外扩DRAM,一般的系统也经常有NOR 或NAND FLASH 2.bootloader一般是由汇编和C编写的程序 5 分 参考答案:单片机系统:硬件上:1.确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。2.检查复位引脚电压是否正常。分别测量按下

7、复位按钮和放开复位按钮的电压值,看是否正确。3.检查晶振是否起振了,一般用示波器来看晶振引脚的波形,另一个办法是测量复位状态下的 IO 口电平,按住复位键不放,然后测量IO 口(没接外部上拉的 IO 口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。4.检查基本的外扩设备(这里主要是DRAM,特别是 DDR/DDR2/DDR3)的 pcb layout的走线是否符合要求软件上:如果软件代码中:1.检查 CPU 和 DRAM 是否正确初始化(CPU 的初始化包括一些典型步骤如:关闭看门狗,关键FIQ,IRQ 中断,关闭 MMU 和 CACHE,调整 CPU 的频率)2.检

8、查堆栈指针是否正确设置了 2.若如 NAND FLASH 做系统启动部分,则需注意一般需要的从NAND FLASH中拷贝代码到 DRAM 中的步骤是否能正常完成5.列举最少 3 种你所知道的嵌入式的体系结构,并请说明什么是ARM 体系结构。7 分 参考答案:嵌入式的体系结构包括ARM,MIPS,POWERPC,X86,AVR32,SH等这个没有非常标准的答案,但由经常面试的时候会问到,关于什么是ARM 体系结构主要请参考讲义的ARM 相关章节去总结,下面是我的总结,仅供参考:什么是 ARM 体系结构?答:首先,ARM 体系结构是 ARM 公司设计,并授权其合作伙伴生产的占嵌入式市场份额最大的一

9、种RISC(精简指令集)的 CPU,它具有高性能、低功耗、低成本的特点。ARM体系结构从工作模式、工作状态,指令集几个方面简述以下ARM:ARM体系支持 7 种工作模式,包括系统(Sys)、未定义指令(und)、数据存取异常(abt)、管理(SVC)、中断(IRQ)、快速中断(FIQ)、用户模式(usr).其中,除了用户模式以外的其它模式,我们称之为特权模式.它们之间的区别在于有些操作只能在特权模式下才被允许,如直接改变模式和中断使能等.除了用户模式和系统模式以外的其它5 种模式,我们又称之为异常模式。当特定的异名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -常出现的

10、时候,程序就会进入到相应的异常模式中。备注:在 LINUX系统中,Linux的应用程序工作在usr 模式,而内核在正常情况下工作在svc 模式,当中断或异常时工作在异常模式 ARM 体系结构中 CPU 有 2 种工作状态,thumb(指令为 16位)和 ARM 状态(指令为 32 位),相对寄存器不多,总共37 个,它包括通用寄存器r0r12(FIQ 有自己的 r8 r12),栈指针寄存器 SP(r13),链接寄存器 lr(r14),PC指针寄存器 PC(r15),程序状态寄存器CPSR 和保存程序状态寄存器SPSR,在上面提到几种异常中,用户(usr)和系统模式(sys)使用相同寄存器,而其

11、他异常模式有自己独立的SP,LR,SPSR 寄存器。当异常产生时,硬件上(ARM core)会完成以下动作:拷贝 CPSR 到 SPSR_ 设置适当的 CPSR 位:改变处理器状态进入 ARM 态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如果需要)?保存返回地址到 LR_ 设置 PC 为相应的异常向量返回时,软件的异常处理程序需要:从 SPSR_ 恢复 CPSR 从 LR_ 恢复 PC Note:这些操作只能在 ARM 态执行.ARM处理器是基于精简指令集计算机(RISC)原理设计的,发展过程中商用的指令集经过了 v4,v5,v6,v7(cortex系列)4 个系列,ARM

12、内核的通用处理器型号比较常见的有arm7tdmi(v4),arm920/arm920t/arm926ejs,arm10,arm11,cortex-a8。为了提高指令执行效率,大部分的ARM 指令为单周期指令,并从软件设计角度看,ARM 处理器的指令流水线采用3 级流水线模型,并提供了LDM/STM 类似的批量数据操作指令。为了提高 CPU访问外部设备数据效率,ARM 处理器除部分 ARM7 采用冯.洛伊曼结构外,其他得都采用哈佛架构,从而实现了对指令和数据存储器的同时访问。并且,ARM CPU 提供了现代操作系统所需的虚拟内存管理机制(MMU)和指令、数据 cache,并提供了协议处理器(cp

13、15)来协助管理 CPU 的 MMU 和 CACHE。扩展概念:以上叙述里面提及的概念也要稍微去总结一下,比如:1.什么是 RISC?2.ARM 中断在 ARM9,CORTEX-A8 是怎么处理的?LINUX中为什么需要把中断分为上半部分,下半部分 3.MMU 和 CACHE 的一些基本原理和知识6.请简述下面这段代码的功能mov r12,#0 x0 ldr r13,=0 x30100000 mov r14,#4096 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -loop:ldmia r12!,r0-r11 stmia r13!,r0-r11 cmp r12,r1

14、4 blo loop 2分 参考答案:借助 r0r11,将内存地址 0 x0 开始的 4KB数据拷贝到 0 x30100000 7.嵌入式中常用的文件系统有哪些?说出它们的主要特点和应用场合?5 分 参考答案:嵌入式相关的文件系统:嵌入式文件系统包括只读和可读写文件系统,一般情况下,只读文件系统启动速度快于可读写的文件系统嵌入式相关的文件系统包括以下几种:只读文件系统 cramfs:压缩的只读文件系统特点:启动快,文件最大支持 256MB,单个文件最大 16MB squashfs:只读文件系统特点:压缩比最大,启动比 cramfs 慢案例:路由器,ubuntu 的发行光盘可结合 LZMA 压缩

15、算法可读写的文件系统:JFFS2:支持 NOR 和 NAND FLASH(对 NAND 的支持天生不足)特点:1.可读写 2.挂载慢(特别是在小文件很多的文件系统中,就更慢)3.当数据占到 JFFS2分区的 7580%左右时,性能会急剧下降 YAFFS2:只支持 NAND FLASH 特点:1.可读写 2.挂载快(特别是在小文件很多的文件系统中,优势更明显)3.它不是标准内核中的,需通过补丁添加 ubifs:起码支持 NAND FLASH 特点:1.可读写 2.挂载快 3.它的实现和其他的文件系统不一样,引进了一个 卷的概念在内存中的文件系统:ramdisk:描述的是功能,不是格式启动快,防止

16、用户修改 ramfs:在内存中的文件系统 tmpfs:临时文件系统名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 11 页 -实时反映系统状态:procfs,sysfs 另外,一些支持 SD卡,U盘功能的系统还需要支持 windows文件系统:fat:FAT32 另外,一些带硬盘的嵌入式系统(比如DVR)还需要支持硬盘的文件系统:EXT3/EXT4 另外,很重要很重要的一点,需要去总结文件过程中遇到的问题,总结比如文件体系挂不上的可能原因(给个提示,可能有比如网卡或FLASH 驱动没加载,内核启动参数传的不对,文件系统制作的步骤不对等好像原因)8.某外设寄存器 rGpioBase 的地址是 0 x56000000,寄存器的 015位有效,请写出给外设寄存器高八位(815 位)设置成 0 xc3 的代码 7 分 参考答案:#define rGpioBase(*(volatile unsigned int*)0 x56000000)rGpioBase&=0 xff00;rGpioBase|=0 xc300;9.根据时序图和说明编写程序:GPIO已经设置好,只需要调用函数g

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号