1、嵌入式Linux软件开发工程师职业资格认证考卷 注: 一般教室 考试时间:120分钟 题 号 一 二 三 四 五 六 七 九 十 合 分 评卷人 应得分 20 15 15 10 20 20 实得分 一、填空题(每题1分,共20分) 1、在linux系统中,以 文献 方式访问设备 。 2、安装linux系统对硬盘分区时,必须有两种分区类型
2、 文献系统分区 和 互换分区 。 3、在Linux系统中,用来存储系统所需要的配备文献和子目录的目录是 /etc 。 4、进行远程登录的命令是 telnet 。 5、利用gdb进行调试时,可通过 step 或 next 命令进行单步执行。 6、gcc的编译可分为__预处理__、编译、汇编和_ ___链接 __等四个阶段。 7、卸载Linux内核模块使用命令___ rmmod ___。 8、 ARM处理器的中断有两种处理模式,分别为___迅速中断_ ___模式和的___迅速中断_ ___模式。 9、 Linux文献的链接可分为符
3、号链接和___ _硬链接__两种。 10、 Qt/Embedded使用___ 信号 ___和___ _插槽_ ___的机制实现函数的回调。 11、 ARM处理器有多个运行模式,用户程序运行在其中的__ _用户___模式。 12、 Linux系统在开启init进程时使用的配备文献是_ _/etc/inittab ____。 13、 交叉编译是指___ 在一个平台上生成能够在另一个平台上执行的代码 ___。 14、 在linux系统中,以 文献 方式访问设备 。 15、 利用gdb进行调试时,可通过step或 next 命令进行
4、单步执行。 16、 Qt/Embedded的底层图形引擎基于 FrameBuffer 接口技术。 17、 Linux操作系统的系统管理员(也就是超级用户)帐号是 root 。 18、 编写的shell程序运行前必须赋予该脚本文献 执行 权限 。 19、 使用gcc编译c程序生成可执行文献有时似乎是一步完成的,但实际要经历如下四步:预处理、编译、 汇编 和连接。 20、 内核分为 进程管理系统 、 内存管理系统 、 IO管理系统 和文献管理系统 等四个子系统。 二、单项选择题。(每题1分,共15分
5、 1、如下哪一个命令能够协助你懂得shell命令的使用方法( A) A. man B. pwd C. help D. more 2、在大多数Linux发行版本中,如下哪个属于块设备 ( B ) A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 3、在Linux系统,默认的shell是什么( A ) A.bash B.ash C.csh D.gnush 4、LILO的配备文献是:( B ) A. /etc/conf B. /etc/l
6、ilo.conf C. /proc/kcore D. /usr/local/ 5、Linux文献权限一共10位长度,提成四段,第三段表示的内容是( D ) A.文献类型 B.文献所有者的权限 C.文献所有者所在组的权限 D.其他用户的权限 6、不是shell具备的功效和特点的是 ( A ) A.管道 B.输入输出重定向 C.执行后台进程 D.处理程序命令 7、你用vi编辑器编写了一个脚本文献shell.sh,你想将改文献名称修改为shell2.sh,下列命令(
7、B )能够实现。 A. cp shell.sh shell2.sh B. mv shell.sh shell2.sh C. ls shell.sh >shell2.sh D. ll shell.sh >shell2.sh 8、字符设备文献类型的标志是 ( B ) A. p B. c C. s D. l 9、( B )命令可更改一个文献的权限设置? A. attrib B. chmod C. change D. file 10、系统中有用户user1和user2,同属于users组。在user1用户目录下有一文献f
8、ile1,它拥有644的权限,假如user2用户想修改user1用户目录下的file1文献,应拥有( B )权限。 A. 744 B. 664 C. 646 D. 746 11、在CPU和物理内存之间进行地址转换时,( B )将地址从虚拟(逻辑)地址空间映射到物理地址空间。 A、TCB B、MMU C、CACHE D、DMA 12、有关文献系统的安装和卸载,下面描述正确的是( A )。 A. 假如光盘未经卸载,光驱是打不开的 B. 安装文献系统的安装点只能是/mnt下 C. 无论光驱中是否有光盘,系统都能够安装CD-ROM设
9、备 D. mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的 13、用下列( A )命令查看Linux使用了多少内存 A.cat /proc/meminfo B. cat /bin/meminfo C.vi /proc/meminfo D.vi /user/local/meminfo 14、下列( D )设备是字符设备。 A. hdc B. fd0 C. hda1 D. tty1 15、有如下的命令:$dd if=f1 of=f2。其中if=f1表示( A ) A. 以f1作为源文献,替代标
10、准输入 B. 以f1作为目标文献,替代标准输出 C. 当条件满足f1的时候,执行真正的拷贝 D. 拷贝的过程中,不转化文献 三、多项选择题。(每题3分,共15分) 1. 嵌入式操作系统不一样于通用操作系统的功效是( BC ) A、任务调度 B、可裁减性 C、 强实时 D、设备管理 E、存储器管理 2. Linux系统中的设备文献一般有如下分类( BCD ) A、虚拟设备 B、字符设备 C、网络设备 D、块设备 E、存储设备 3. 常用的软件开发模型有( BCD )
11、A、结构型 B、 原型模型 C、 迭代型 D、瀑布型 E、综合型 4. ARM处理器的工作模式中属于异常模式的有( CDE ) A、用户模式usr B、系统模式sys C、 外部中断模式irq D、中断模式abt E、迅速中断模式fiq 5. 芯片总线又称元件级总线,它是指系统内或插件板内各元件之间所使用的总线,下列属于芯片总线的有( ACD ) A、I2C总线 B、ISA总线 C、SPI总线 D、SCI总线 E、PCI总线 四、判断题。(每题1分,共10
12、分) 1、在gdb调试过程中,不退出gdb也能够执行UNIX shell命令。( 对 ) 2、Linux文献系统的文献都按其作用分门别类地放在有关的目录中,对于外部设备文献,一般应将其放在/etc目录中。( 错 ) 3、 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。( 对 ) 4、 激活网卡需要编译内核。( 错 ) 5、 在gdb调试过程中,用make命令能够不用退出gdb就能够重新产生可执行文献。( 对 ) 6、 在重新开启Linux系统的同时把内存中的信息写入硬盘,应使用sh
13、utdown –r now命令实现。( 对 ) 7、 ARM处理器的运行模式可通过中断或异常处理变化。( 对 ) 8、 BootLoader属于嵌入式操作系统的一部分。( 错 ) 9、 Busybox常用于替代桌面系统中的init和shell等程序,为嵌入式用户提供使用环境。( 对 ) 10、 在嵌入式系统中,整个系统的加载开启任务就完全由 Boot Loader 来完成。( 对 ) 五、综合题。(每题5分,共20分) 1、已知C语言程序有主程序模块prog.c,prog.h,其中调用了另一模块subr.c, subr.h中的功效。试写
14、出一个可将这两个模块编译成可执行文献pr1的makefile。(5分) pr1: prog.o subr.o gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h gcc –c –o prog.o prog.c subr.o: subr.c subr.h gcc –c –o subr.o subr.c 2、下面几条宏定义语句的GPBCON 、GPBDAT、GPBUP地址分别是多少? #define GPIO_CTL_BASE 0x56000000 #define bGPIO(p) __REG(
15、GPIO_CTL_BASE + (p)) #define GPBCON bGPIO(0x10) #define GPBDAT bGPIO(0x14) #define GPBUP bGPIO(0x18) GPBCON存储器地址0X56000010 GPBDAT存储器地址0X56000014 GPBUP 存储器地址0X56000018 3、简述阐明字符设备注册函数register_chrdev和注销函数unregister_chrdev中参数的意义。
16、 int register_chrdev(unsigned int major, const char *name, struct file_ operations *fops); 其中,major是为设备驱动程序向系统申请的主设备号,假如为0,则系统为此驱动程序动态分派一个主设备号。name是设备名,fops是对各个调用的入口点阐明。此函数返回0时表示成功;返回-EINVAL,表示申请的主设备号非法。假如动态分派主设备号成功,此函数将返回所分派的主设备号。假如register_chrdev()操作成功,设备名就会出目前/proc/dvices文献中。 当设备驱动模块从Linux内核中卸
17、载,对应的主设备号必须被释放。字符设备在cleanup_ module()函数中调用unregister_chrdev()来完成设备的注销。unregister_chrdev()的定义为: int unregister_chrdev(unsigned int major, const char *name); 此函数的参数为主设备号major和设备名name。Linux内核把name和major在内核注册的名称对比,假如不相等,卸载失败,并返回-EINVAL;假如major不小于最大的设备号,也返回-EINVAL。 4、Linux设备驱动程序通过调用reque
18、st_irq函数来申请中断,通过free_irq来释放中断。它们在linux/sched.h中的定义如下: int request_irq(unsigned int irq, void (*handler)(int irq,void dev_id,struct pt_regs *regs),unsigned long flags, const char *device, void *dev_id ); void free_irq(unsigned int irq, void *dev_id); 试简述request_irq函数。 Linux设备驱动程序通过调用request_irq
19、函数来申请中断,从request_irq函数返回的值为0时,表示申请成功;负值表示出现错误。 该函数中的参数为: irq表示所要申请的硬件中断号。 handler为向系统登记的中断处理子程序,中断产生时由系统来调用,调用时所带参数irq为中断号,dev_id为申请时告诉系统的设备标识,regs为中断发生时存储器内容。 device为设备名,将会出目前/proc/interrupts文献里。 flag是申请时的选项,它决定中断处理程序的某些特性,其中最重要的是决定中断处理程序是迅速处理程序(flag里设置了SA_INTERRUPT)还是慢速处理程序(不设置SA_INTERRUPT)。
20、
六、应用实践题(每题10分,共20分)
1、Qt/Embedded对嵌入式GUI提供了强大的支持,信号和插槽机制是QT的核心机制,使用QT实现如下界面的登陆程序,其原代码如下所示,请回答如下问题:
1)什么是Qt中的信号插槽机制?(3分)
2)应用程序中用到了哪些控件,列举2个并阐明该控件的特点?(4分)
3)依照注释完成程序中对应的语句?(4分)
#include
21、ndowTitle("Example"); /*设置窗口的标题*/ Edit1 = new QLineEdit; /*创建一个Edit1和一个Buttion1*/ Button1 = new QPushButton("OK"); Edit1->setEchoMode(QLineEdit::Password); QVBoxLayout* Layout1 = new QVBoxLayout; /*创建一个布局对像Layout1*/ Layout1->addWidget(Edit1); /*把Edit1加入到Layout1*/ Lay
22、out1->addWidget(Button1); /*把Button1加入到Layout1*/ (1) ; /*应用Layout1布局*/ (2) ; /*建立Signal-Slot,使button1与function()有关联*/ } CWinDlg::~CWinDlg() { delete Edit1; /*删除Edit1与Button1对象*/ delete Button1; } void CWinDlg::functio
23、n() { if(Edit1->text() == "example") /*假如Edit1输入"example"*/ { /*显示"Pass!"消息框*/ QMessageBox::warning(this, "warning", "Pass!", QMessageBox::Yes); } else { /*显示"Error!"消息框*/ QMessageBox::warning(this, "warning", "Error!", QMessa
24、geBox::Yes);
}
}
#include
25、针传递给一个处理过程,当这个处理过程得到执行时,回调预先定义好的回调函数以期实现激活其他处理程序的目标。不一样与回调函数机制,Qt提供了信号和插槽机制,信号是一个特定的标识;一个槽就是一个函数,与一般函数不一样,槽函数既能和信号关联,当某个事件出现时,通过发送信号,能够将与之有关联的槽函数激活,执行对应代码。 2)应用程序中用到了哪些控件,列举2个并阐明该控件的特点?(4分) 答案要点:应用程序中用到的控件有(1)文本框控件Edit,文本框控件重要用来显示或接收用户的输入信息。(2)按钮控件Button,按钮控件重要响应用户单击功效。 3)依照注释完成程序中对应的语句?(4分)
26、 (1)setLayout(Layout1); (2) connect(Button1, SIGNAL(clicked()), this, SLOT(function())); 2、假定你在目录/home/arm下有一个C程序,他由几个单独的文献组成,而这几个文献又分为包括了其他文献,如下图所示: 文献 包括文献 main.c stdio.h, table.h list.c list.h symbol.c symbol.h table.c table.h table.h symbol.h, list.h 完成下列任务: 1)编写makef
27、ile文献,最后的目标文献为hello(交叉编译器为arm-linux-gcc)。 2)在目标机上通过网络文献系统挂载/mnt 到宿主机上的/home/arm目录。 hello: main.o list.o symbol.o table.o arm-linux-gcc -o prog main.o list.o symbol.o table.o main.o: main.c table.h symbol.h list.h arm-linux-gcc -c -o main.o main.c list.o: list.c list.h arm-lin
28、ux-gcc -c -o list.o list.c symbol.o: symbol.c symbol.h arm-linux-gcc -c -o symbol.o symbol.c table.o: table.c table.h symbol.h list.h arm-linux-gcc -c -o table.o table.c clean: rm hello *.o 2)Mount –t nfs –o noclock 192.168.0.10:/home/armtest/hello /mnt 试题 第6页(共 6 页)






