嵌入式软件设计期末试题样题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题:(本题共15小题,每题2分,共30分)
1.Makefile 中自动变量“$@”表示()
A. 目标文件的完整名称
B. 所有不重复的依赖文件,以空格分开
C. 不包含扩展名的目标文件名称
D. 第一个依赖文件的名称
2.为确保宿主机与目标机的网络通信,需要在宿主机上配置网络,以下哪一项
不是必须的()
A. 配置IP,并激活网络
B. 禁用防火墙
C. 禁用iptables 服务
D. 配置minicom
3.以下哪个API用于取消一个线程的执行()
A. pthread_join
B. pthread_cancel
C. pthread_cond_destroy
D. pthread_exit
4.把 32 位值从主机字节序转换成网络字节序的函数是()
A. htonl
B. htons
C. ntohl
D. ntohs
5.嵌入式linux软件开发主要包括四部分,即:()
A. bootloader、内核、根文件系统、应用程序
B. bootloader、驱动程序、GUI程序、应用程序
C. 内核、驱动程序、系统软件、GUI程序
D. 内核、根文件系统、数据库程序、GUI程序
6.以下哪项不属于基于flash的嵌入式文件系统()
A. JFFS
B. yaffs
C. Cramfs
D. ramfs
7.以下哪个目录是嵌入式根文件系统的可选目录()
A.home B. lib C.etc D.dev
8.以下关于BLOB描述错误的是()
A. BLOB是按照Linux的通常规则设计的BootLoader
B. BLOB第一阶段的程序在flash中执行,第二阶段在内存中执行
C.BLOB通过两个阶段的链接脚本文件进行BLOB的编译和连接
D. BLOB只能使用JTAG进行烧写
9. 以下关于嵌入式系统中GUI的特点的描述错误的是()
A. 系统开销少:体积小,占用的存储空间少、运行时耗用的系统资源小
B. 具有较高的可移植性
C. 功能强大,接口完善
D. 要求具有较好的可裁减性,以适应不同的功能需求
二、填空题:(本题共15小题,每题2分,共30分)
10.将main.c编译成基于ARM的目标机应用程序message,该程序需要动态库
libmessage.so的支持(main.c和libmessage.so都在当前目录下,如下图)。
请写出该编译命令:。
11.将宿主机(ip地址为:192.168.0.110)下的nfs服务器/up-techpxa270挂载到
目标机/mnt/nfs下的命令是。
12.Linux系统的设备文件分主要有三类:字符设备文件、块设备文件
和。另外也有其他的无法归为这三类的杂项设备。
13.填空完成程序,使得程序运行到该段程序时弹出如下消息框。
switch( (this,"Warning",
tr("The document has been modified.\n" "Do you want to save your changes?"),
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel, ))
{
case QMessageBox::Save:
…
break;
case QMessageBox::Discard:
…
break;
case QMessageBox::Cancel:
…
break;
}
14.使用qt designer设计了一个界面文件test-designer.ui,使用uic将它生成头
文件ui_test-designer.h。以下主函数main.cpp的目的是将该界面显示出来。
请在空格上填上正确的语句。
#include "ui_test-designer.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *widget = new QWidget;
Ui::Form ui;
;
widget->show();
return app.exec();
}
三、简答题:(本题共4小题,每题4分,共16分)
15.Qt有哪些常用的工具?每种工具的作用是什么?
16.根据如下图,简述Linux设备驱动在内核中的加载、卸载和系统调用过程。
四、程序设计、分析(本题共4小题,每题6分,共24分)
17.请写出以下两个程序的执行结果。
(1)多线程程序设计
#include
#include
#include
void* thread_func(void *arg)
{
int *val = arg;
printf("123!\n");
if (NULL!=arg) {
printf("num=%d\n", *val);
}
int main()
{
pthread_t tid;
int para= 100;
pthread_create(&tid, NULL, thread_func, ¶)
sleep(1);
printf("abc!\n");
return 0;
}
(2)arm汇编与c语言的混合编程
18.以下程序使用qt布局管理器设计界面,程序运行的结果如下图,请在提示
处填写完成程序。