ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:193.78KB ,
资源ID:3052604      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3052604.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(就业模拟测试题LINUX驱动系统底层工程师职位.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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

2、统的死循环的? 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(“an”);不能,当执行到语句 iindex-1 时,由于类型不匹配,右边的index和1相减时会发生隐式类型转换 ,即in

3、dex将被转换成有符号整型 ,转换之后的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将被转换成无符号长整型 ,因此程序片段B中的index-1的过程用十六进制数表示实

4、际上就是0x00000-0x0001=0xffff,此时再把左边的 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和short型写入上式,原因是他们可以被提升到int也可能被提

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

6、系统的ARM系统把bootloader烧录进去后,上电后串口上没有任何输出,硬件和软件各应该去检查什么? 提示: 1.跑LINUX的系统一般都需要外扩DRAM,一般的系统也经常有NOR或NAND FLASH2.bootloader一般是由汇编和C编写的裸奔程序5分参考答案:单片机系统:硬件上:1.确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。2.检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。3.检查晶振是否起振了,一般用示波器来看晶振引脚的波形,另一个办法是测量复位状态下的IO口电平,按住复位键不放,然后测

7、量IO口(没接外部上拉的IO口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。4.检查基本的外扩设备(这里主要是DRAM,特别是DDR/DDR2/DDR3)的pcb layout的走线是否符合要求软件上: 如果软件代码中: 1.检查CPU和DRAM是否正确初始化(CPU的初始化包括一些典型步骤如: 关闭看门狗,关键FIQ,IRQ中断,关闭MMU和CACHE,调整CPU的频率) 2.检查堆栈指针是否正确设置了 2. 若如NAND FLASH做系统启动部分,则需注意一般需要的从NAND FLASH中拷贝代码到DRAM中的步骤是否能正常完成5.列举最少3种你所知道的嵌入式的体

8、系结构,并请说明什么是ARM体系结构。7分参考答案:嵌入式的体系结构包括ARM,MIPS,POWERPC,X86,AVR32,SH等 这个没有非常标准的答案,但由经常面试的时候会问到,关于什么是ARM体系结构主要请参考讲义的ARM相关章节去总结,下面是我的总结,仅供参考:什么是ARM体系结构?答: 首先,ARM体系结构是ARM公司设计,并授权其合作伙伴生产的占嵌入式市场份额最大的一种RISC(精简指令集)的CPU,它具有高性能、低功耗、低成本的特点。ARM体系结构从工作模式、工作状态,指令集几个方面简述以下ARM:ARM体系支持7种工作模式,包括系统(Sys)、未定义指令(und)、数据存取异

9、常(abt)、管理(SVC)、中断(IRQ)、快速中断(FIQ)、用户模式(usr).其中,除了用户模式以外的其它模式,我们称之为特权模式.它们之间的区别在于有些操作只能在特权模式下才被允许,如直接改变模式和中断使能等.除了用户模式和系统模式以外的其它5种模式,我们又称之为异常模式。当特定的异常出现的时候,程序就会进入到相应的异常模式中。备注: 在LINUX系统中,Linux的应用程序工作在usr模式,而内核 在正常情况下工作在svc模式,当中断或异常时工作在异常模式ARM体系结构中CPU有2种工作状态,thumb(指令为16位)和ARM状态(指令为32位),相对寄存器不多,总共37个,它包括

10、通用寄存器r0r12(FIQ 有自己的r8 r12),栈指针寄存器SP(r13),链接寄存器lr(r14),PC指针寄存器PC(r15),程序状态寄存器CPSR和保存程序状态寄存器SPSR,在上面提到几种异常中,用户(usr)和系统模式(sys)使用相同寄存器,而其他异常模式有自己独立的SP,LR,SPSR寄存器。当异常产生时, 硬件上(ARM core)会完成以下动作: 拷贝 CPSR 到 SPSR_ 设置适当的 CPSR 位: 改变处理器状态进入 ARM 态 改变处理器模式进入相应的异常模式 设置中断禁止位禁止相应中断 (如果需要)保存返回地址到 LR_ 设置 PC 为相应的异常向量 返回

11、时, 软件的异常处理程序需要: 从 SPSR_恢复CPSR 从LR_恢复PCNote:这些操作只能在 ARM 态执行. ARM处理器是基于精简指令集计算机(RISC)原理设计的,发展过程中商用的指令集经过了v4,v5,v6,v7(cortex系列)4个系列,ARM内核的通用处理器型号比较常见的有arm7tdmi(v4), arm920/arm920t/arm926ejs,arm10,arm11,cortex-a8。 为了提高指令执行效率,大部分的ARM指令为单周期指令,并从软件设计角度看,ARM处理器的指令流水线采用3级流水线模型,并提供了LDM/STM类似的批量数据操作指令。 为了提高CPU

12、访问外部设备数据效率,ARM处理器除部分ARM7采用冯.洛伊曼结构外,其他得都采用哈佛架构,从而实现了对指令和数据存储器的同时访问。并且,ARM CPU提供了现代操作系统所需的虚拟内存管理机制(MMU)和指令、数据cache,并提供了协议处理器(cp15)来协助管理CPU的MMU和CACHE。 扩展概念:以上叙述里面提及的概念也要稍微去总结一下,比如:1.什么是RISC? 2.ARM中断在ARM9,CORTEX-A8是怎么处理的?LINUX中为什么需要把中断分为上半部分,下半部分 3.MMU和CACHE的一些基本原理和知识 6.请简述下面这段代码的功能mov r12, #0x0 ldr r13

13、, =0x30100000mov r14, #4096loop: ldmia r12!, r0-r11stmia r13!, r0-r11 cmp r12, r14 blo loop2分参考答案:借助r0r11,将内存地址0x0开始的4KB数据拷贝到0x301000007.嵌入式中常用的文件系统有哪些?说出它们的主要特点和应用场合?5分参考答案:嵌入式相关的文件系统:嵌入式文件系统包括只读和可读写文件系统,一般情况下,只读文件系统启动速度快于可读写的文件系统嵌入式相关的文件系统包括以下几种:只读文件系统 cramfs:压缩的只读文件系统 特点:启动快,文件最大支持256MB,单个文件最大16MB squashfs: 只读文件系统 特点: 压缩比最大,启动比cramfs慢 案例:路由器,ubuntu的发行光盘可结合LZMA压缩算法可读写的文件系统: JFFS2:支持NOR 和NAND FLASH (对NAND的支持天生不足) 特点: 1.可读写 2. 挂载慢(特别是在小文件很多的文件系统中,就更慢) 3. 当数据占到JFFS2分区的7580%左右时,性能会急剧下降 YAFFS2: 只支持NAND FLASH 特点: 1.可读写2. 挂载快(特别是在小文件很多的文件系统中,优势更明显)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1