嵌入式linux工程师常见笔试题内容摘要:

“ 辅助开发系统 ” 的角色。 PCLinux 系统。 在此系统上安装 armLinux 交叉编译器后,就可以对代码文本文件进行编译,生成可在armLinux 系统中运行可执行程序。 此系统被称为 “ Linux宿主机 ” ,我们对 Linux程序 的开发工作(包括代码编写、调试和编译生成可执行文件)基本上就是在此系统上进行的。 ArmLinux 系统。 ArmLinux 程序运行的平台。 此系统的硬件载体是一块小型的嵌入式 arm 板,我们在 Linux 宿主机上开发好程序并编译生成 armlinux 可执行程序后,将可执行程序文件传送到嵌入式 arm板中,然后就可以在 arm 板上直接运行此程序了。 18. 结合自己的学习或工作感受简述 Linux 与 Windows 编程的区别,嵌入式 Linux 与 Windows 的嵌入式 OS(如 XPE、 WinCE)的区别。 1. 尝试论述中断产生,到中断处理结束的详细过程 7’ 设备控制器或其他系统产生一个中断,处理器结束当前指令的执行,处理器发送中断应答信号,处理器将 PSW 和 PC 压入堆栈,根据中断,处理器加载新的 PC 值,保存剩余的处理状态,处理中断,恢复处理状态信息,恢复 PC 和 PSW 2. 试阐述何时可能会导致进程切换,以及进程切换的详细过程 839。 时钟中断,进程允许执行的时间片结束导致进程切换 IO 中断 内存失效 发生错误或异常,进程被转换到退出状态 系统调用,比如打开文件,通常导致进程为阻塞状态 ls a | more 具体含义 . ls a 是将当前目录下的文件名输出到终端,而加入后面的 | more 是将输出结果分页显示 中的管道指什么重定向又指什么 g o 的具体含义 将 文件编译输出为 带上调试信息,可以用 GDB 调试用 GCC 编译器在编译时都有哪几个过程 要经历四个相互关联的步骤:预处理 (也称预编译, Preprocessing)、编译 (Compilation)、汇编 (Assembly)和连接 (Linking)。 预处理 (Preprocessing):命令 gcc 首先调用 cpp 进行预处理,在预处理过程中,对源代码文件中的文件包含 (include)、预编译语句 (如宏定义 define等 )进行分析。 编译 (Compilation):接着调用 cc 进行编译,这个阶段根据输入文件生成以 .o为后缀的目标文件。 汇编 (Assembly):汇编过程是针对汇编语言的步骤,调用 as 进行工作,一般来讲, .s 为后缀的汇编语言源代码文件和汇编 .s 为后缀的汇编语言文件经过预编译和汇编之后都生成以 .o 为后缀的目标文件。 连 接 (Linking):当所有的目标文件都生成之后, gcc就调用 ld 来完成最后的关键性工作,这个阶段就是连接。 在连接阶段,所有的目标文件被安排在可执行程序中的恰当位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 uclinux 和 linux 的区别 uclinux 不具有的功能: 1) . 没有 存储 管理 单元 2) . 不能运行时增加进程栈 3) . 不支持分页 4) . 可执行程序不是 elf, 而是 flat 5) . 不能用 fork, 而是用 vfork 6) . RAMDISK 7 解释下面 一组 GDB 命令的含义 . break 94 设置断定,让程序在执行到第 94行之前停止 run 运行准备调试的程序 info line 121 查看第 121行设置的断点的信息 , 其作用是什么 请编写一个简单的链接脚本 链接脚本主要用于规定如何把输入文件内的 section 放入输出文件内 , 并控制输出文件内各部分在程序地址空间内的布局 . 实例:以下脚本将输出文件的 text section定位在 0 10000, data section定位在 0 8000000: SECTIONS { . = 0 10000。 .text : { *(.text) } . = 0 8000000。 .data : { *(.da。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。