08-嵌入式linux系统移植试题答案-1_第1页
08-嵌入式linux系统移植试题答案-1_第2页
08-嵌入式linux系统移植试题答案-1_第3页
08-嵌入式linux系统移植试题答案-1_第4页
08-嵌入式linux系统移植试题答案-1_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

08-嵌入式linux系统移植试题答案-1嵌入式Linux系统移植试题(时间:1个半小时)

一、选择题(每题2分,共50分,包括单选和多选,多选、少选均不得分)

1.嵌入式linux系统移植包括(ABC)

bootloaderlinux内核根文件系统应用程序

2.一般状况下,在搭建嵌入式linux开发环境时主机需要安装的软件有(ABC)

串口通信软件tftp服务器nfs服务器http服务器

3.下列选项中符合gcc的编译流程的是(A)

预处理->编译->汇编->连接预处理->汇编->编译->连接编译->预处

理->汇编->连接预处理->连接->汇编->编译

4.gcc使用下列哪个选项可以查看编译的具体过程(B)

-o-v-E-g

5.下列二进制工具哪个是丢弃目标文件的全部或者特定符号,削减文件体积的(D)

sizeasnmstrip

6.下列二进制工具哪个是用来反汇编的(B)

nmobjdumpobjcopystring

7.下列二进制工具哪个是用来进行目标格式转换的(C)

nmobjdumpobjcopystring

8.下列二进制工具哪个是用来把程序地址转换为文件名和行号的(D)

nmobjdumpobjcopyaddr2line

9.下列二进制工具哪个是用来将目标文件生成静态库的(A)

arnmobjcopyobjdump

10.FSC1000开发平台上,linux要求bootloader将内核参数存储在什么位置(B)

0x200080000x200001000x200040000x27e0000

11.linux要求bootloader将平台号保存在(B)

r0r1r2r3

12.linux要求bootloader在运行内核前,让系统进入何种模式(B)

usersvcsystem

13.bootloader向内核传参的方式有(AD)

param_structcmd_tbl_tchar*tag

14.u-boot的命令中,设置环境变量的命令是(A)

setenvprintenvtftpbootm

15.u-boot中存放内核启动参数的环境变量是(C)

bootcmdbootdelaybootargsipaddr

16.在内核配置时,哪个关键词是来包含下一级Kconfig(B)

menuendmenusourcechoiceendchoicedependson

17.内核启动过程中,假如终端消失”Error:a”错误,可能消失的缘由是(B)

内核不支持当前处理器

内核不支持当前开发平台

内核猎取不到bootloader传递来的参数

内核初始化终端消失错误

18.内核启动过程中,假如终端消失”Error:p”错误,可能消失的缘由是(A)

内核不支持当前处理器

内核不支持当前开发平台

内核猎取不到bootloader传递来的参数

内核初始化终端消失错误

19.下列函数适合在内核解压后,console初始化以前使用的是(B)

putsprintasciiprintkprintf

20.当console初始化以后,一般最为简洁的内核调试方式为(A)

printkputsbdi2000kgdb

21.下列哪些文件系统可以运行在nandflash上,并具有可读写特性(AB)

yaffs2jffs2cramfstmpfsios9660

22.下列哪些文件系统可以运行在nandflash上,并具只读特性(C)

yaffs2jffs2cramfstmpfs

23.下列不占用任何磁盘空间的文件系统是(D)

yaffs2jffs2cramfstmpfs

24.在命令mknod/dev/ttySAC0c464中,‘c’代表(A)

字符设备块设备网络设备

25.在用busybox制作根文件系统时,对inittab文件中的action,假如要求在程序执行前按enter键进行确认的是(A)

askfirstrespawnsysinitwait

二、简答题(前5题每题8分,最终一题10分,共50分)

1.简述嵌入式linux系统移植的主要内容有哪些?

1>搭建交叉开发环境

2>移植bootloader

3>移植linux内核

4>制作根文件系统

2.什么是bootloader,其作用是什么?列举三种ARM平台常用的bootloader

bootloader是系统加电或复位时首先运行的一段代码,其作用是对系统的软硬件做相应的初始化,为操作系统的加载运行做好预备。

u-bootredbootblobvivi

3.描述u-boot启动流程

u-boot启动分为两个阶段:

第一个阶段用汇编实现。设置中断向量表->设置SVC模式、中断和时钟->关闭看门狗、mmu和cache->初始化内存掌握器->自搬移->设置堆栈、清空bss段其次个阶段用C实现。调用一系列初始化函数->初始化Flash设备和环境变量->初始化网络设备->进入循环

4.分析以下代码段(逐行分析)。

intdisable_interrupts(void)

{

unsignedlongold,temp;定义变量old,temp

__asm____volatile__(声明内嵌汇编,通知编译器不用优化

"mrs%0,cpsr\n"读取cpsr寄存器的值到参数1

"orr%1,%0,#0xc0\n"参数1的值和0xc0按位或操作后保存到参数2

"msrcpsr_c,%1"参数2的值写入cpsr_c

:"=r"(old),"=r"(temp)定义内嵌汇编的输出部分:old是参数1,temp是参数2,均通过寄存器参加运算

:

:"memory");通知编译器内嵌汇编代码会修改内存

return(old推断在原先的状态寄存器中是否开启了中断

}

5.分析以下链接脚本内容,并大致画出内存分布图:

OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm")

指定输出的可执行文件是elf格式,32位ARM指令,小端

OUTPUT_ARCH(arm)指定输出的可执行文件的平台为ARM

ENTRY(_start)指定输出的可执行文件的入口为_start

SECTIONS

{

.=0x00000000;从0x0位置开头

.=ALIGN(4);以4字节对齐

.text:定义代码段

{

arch/arm/cpu/armv7/start.o(.text)代码段的第一部分

*(.text)其它代码部分

}

.=ALIGN(4);

.rodata:{*(.rodata*)}定义只读数据段

.=ALIGN(4);

.data:{*(.data)}定义数据段

.=ALIGN(4);

.=.;

__u_boot_cmd_start=.;把当前地址赋值给__u_boot_cmd_start

.u_boot_cmd:{*(.u_boot_cmd)}定义u_boot_cmd段,把全部的uboot命令放在该段

__u_boot_cmd_end=.;把当前地址赋值给__u_boot_cmd_end

.=ALIGN(4);

.bss:{

__bss_start=.;把当前地址赋值给__bss_start,即bss段的开头位置

*(.bss)}定义bss段

__bss_end__=.;把当前地址赋值给__bss_end__,即bss段的结束位置}

6.回答以下内核相关问题:

⑴分别编译内核镜像和模块的命令是什么?

makezImage

makemodules

⑵以SMDKC100平台为例,第一次配置内核时,应使用的缺省内核配置文件是什么?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论