嵌入式linux系统移植试题 - 答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式Linux系统移植试题(时间:60分钟)
一、单项选择题(每题2分,共40分)
1.嵌入式linux系统移植不包括(D)
[A] bootloader[B] linux内核[C] 根文件系统[D] 应用程序
2.下列选项中符合gcc的编译流程的是(A )
[A] 预处理->编译->汇编->连接[B] 预处理->汇编->编译->连接[C] 编译->预处
理->汇编->连接[D] 预处理->连接->汇编->编译
3.下列二进制工具哪个是丢弃目标文件的全部或者特定符号,减少文件体积的(D )
[A] size[B] as [C] nm [D] strip
4.下列二进制工具哪个是用来反汇编的(B)
[A] nm[B] objdump [C] objcopy [D] string
5.下列二进制工具哪个是用来进行目标格式转换的(C )
[A] nm[B] objdump [C] objcopy [D] string
6.下列二进制工具哪个是用来把程序地址转换为文件名和行号的(D)
[A] nm[B] objdump [C] objcopy [D] addr2line
7.FS4412开发平台上,uImage被解压到什么地址(B)
[A] 0x40000000 [B] 0x40008000 [C] 0x41000000 [D] 0x43e00000
8.编译Linux内核设备树文件使用什么命令(D)
[A] make dtbi[B] make tags [C] make dtb [D] make dtbs
9.linux要求bootloader在运行内核前,让系统进入何种模式(B)
[A] user[B] svc [C] system
10.u-boot的命令中存放自启动命令的环境变量是(D)
[A] ipaddr [B] bootargs [C] bootm [D] bootcmd
11.u-boot的命令中,设置环境变量的命令是(A)
[A] setenv [B] printenv [C] tftp [D] bootm
12.u-boot中存放内核启动参数的环境变量是(C)
[A] bootcmd[B] bootdelay [C] bootargs [D] ipaddr
13.在内核配置时,哪个关键词是来包含下一级Kconfig (B)
[A] menu endmenu[B] source [C] choice endchoice [D] depends on
14. 在内核配置时,哪个关键词是来创建一个选项菜单(D)
[A] menu endmenu[B] source [C] choice endchoice [D] config
15. 内核配置的结果保存在哪个文件中(C)
[A] Kconfig[B] Makefile [C] .config [D] System.map
16.下列函数适合在内核解压后,console初始化以前使用的是(B)
[A] puts[B] printascii [C] printk [D] printf
17.当console初始化以后,一般最为简单的内核调试方式为(A)
[A] printk[B] puts [C] bdi2000 [D] kgdb
18.下列哪些文件系统可以运行在eMMC上(C)
[A] yaffs2[B] ios9660 [C] ext3 [D] tmpfs
19.下列哪些文件系统是只读的(D)
[A] ext2[B] yaffs2 [C] ext2 [D] cramfs
20.下列不占用任何磁盘空间的文件系统是(D)
[A] yaffs2[B] jffs2 [C ] cramfs [D] tmpfs
二、简答题(前5题每题8分,最后一题10分,共60分)
1. 简述嵌入式linux系统移植的主要内容有哪些?(4分)
交叉开发环境 Bootloader kernel rootfs
2. 如何定位下边oops信息错误位置?( 6分)
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1]
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.35 #21)
PC is at s3c_fb_probe+0xc/0x67c
LR is at platform_drv_probe+0x1c/0x24
pc : [
sp : cfc29f0c ip : cfc457c0 fp : 00000000
r10: 00000000 r9 : 00000000 r8 : c03bbb40
r7 : c03b7a18 r6 : c03b7a18 r5 : c03a3310 r4 : 00000000
r3 : 000000ff r2 : cfc28000 r1 : 00000000 r0 : c03a3308
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
arm-none-linux-gnueabi-addr2line 0xc029b66c -e vmlinux -f
或
arm-none-linux-gnueabi-objdump -D vmlinux > vmlinux.dis 然后通过阅读汇编代码定位
3.描述u-boot启动流程( 10分)
第一阶段汇编实现。设置CPU模式,屏蔽中断,关闭MMU和cache,
初始化内存控制器,搬运u-boot到内存,设置堆栈(sp),清空BSS段
第二阶段C实现。填充板级信息,初始化外设,执行命令
4. 设置u-boot中环境变量(10分 )
(1)u-boot使用网络需设置哪些环境变量,且需要注意哪些问题(3分)
主要是下边两个:
ipaddr
serverip
需要注意的为:ipaddr 和 serverip 需在同意网段,器serverip和 Ubuntuip一直
(2)通过网络加载内核并启动内核、让内核使用网络挂载文件系统,如何设置(3分) setenv bootcmd tftp 41000000 uImage \; tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000
setenv bootargs root=nfs nfsroot=192.168.1.27:/source/rootfs ip=192.168.1.200