参考答案:
通常包括:init、libc库、驱动模块、必需的应用程序和系统配置脚本。(各1分)
16、在linux中如何编译C程序,使之成为可执行文件(4分)?如何调试(2分)? 答案:
[问题1](4分)
1)检查程序中.h文件所在的目录,将其加入系统PATH中; 2)执行C编译:#gcc [源文件名] -o [目标文件名]
3)改变目标文件为可执行文件:#chmod +x [目标文件名]
4)如需将多个可执行文件连续执行,可用vi生成批处理文件,最后记得将该批处理文件属性改为可执行(同上一步) [问题2](2 分)
调试:在编译时使用-g参数,就可以使用gdb进行调试。
17、Linux系统中线程的同步方式有互斥量、信号量和条件变量等。假设现在需要设计一个多线程的应用程序,试分析一下以上几种同步方式分别可在什么场合下使用(6分)。 参考答案:
Mutex互斥量,用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使用(2分)
Semophore信号灯,信号灯内有一计数器,可以用于对多个同类资源的分配。当资源用完时,申请资源的线程会在信号量上睡眠,有线程释放资源时,再将该线程唤醒继续运行。(2分)
Condition条件变量,条件变量用于等待信号。当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统会唤醒该线程继续运行。(2分)
18、简述嵌入式系统的几个重要特征?
答案要点:系统内核小 ;专用性强 ;系统精简 ;高实时性的系统软件 ;多任务的操作系统 ;需要专用的开发工具和环境。 答出上述4个并适当阐述的即可给满分。
19、从工程设计角度,简述嵌入式系统的开发流程。 参考答案:
需求分析阶段(1分) 体系结构设计(1分) 硬件/软件设计(1分) 系统集成与测试(1分) 代码固化(1分)
20、从工程设计角度,简述嵌入式系统设计过程。 答;每条1分
(1)需求分析 (4)设计硬件构件和软件构件 (2)规格说明 (5)系统集成 (3)体系结构设计 (6)系统测试 (7)代码固化
22、Linux作为嵌入式操作系统的优势? 答:
Linux作为嵌入式操作系统的优势主要有以下几点:
1). 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到 具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。(1 分)
2). Linux的高度模块化使添加部件非常容易。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。(1分) 3). Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大 部分芯片)等特性的一种通用操作系统。(1分)
4). Linux可以随意地配置,不需要任何的许可证或商家的合作关系。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。(1分)
5). Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。(分)
五、 论述题
1、在进行嵌入式开发中,编写了一个多文件的POS程序,其中包括pos_main.c,card.c,card.h,printer.c,
printer.h,gui.c,gui.h, 主函数在pos_main.c中;放在同一个文件夹中,并编写了Makefile。请解释该Makefile文件的每一行的含义,并论述输入make命令以及make clean命令后的执行结果:
MAIN = pos_main
OBJS = posm_main.o card.o printer.o gui.o CC = gcc
CFLAGS = -Wall -O LIBSLINK = -lpthread DEBUG_FLAG = -g $(MAIN): ${OBJS}
${CC} -o $@ $(CFLAGS) ${DEBUG_FLAG} ${OBJS} $(LIBSLINK) pos_main.o: pos_main.c
$(CC) $(CFLAGS) -c $< card.o: card.c card.h
$(CC) $(CFLAGS) -c $< printer.o: printer.c printer.h
$(CC) $(CFLAGS) -c $< gui.o: gui.c gui.h
$(CC) $(CFLAGS) -c $< clean:
/bin/rm -f pos_main *.o
六、 编程题:(多线程多进程编程)
#include
pthread_mutex_t mutex_id; pthread_cond_t cond_id; int number;
void* thread_fun(void *nothing) {
int i=0; while(1){
pthread_mutex_lock(&mutex_id); if(number>0)
pthread_cond_wait(&cond_id,&mutex_id);
number++;i++;
printf(\pthread_mutex_unlock(&mutex_id);
if(i>=5)break;} }
void *thread2_fun(void *nothing) {int i=0; while(1){
pthread_mutex_lock(&mutex_id); if(number>0){ number--;i++;
printf(\pthread_cond_signal(&cond_id); }else{ sleep(1);}
pthread_mutex_unlock(&mutex_id);
if(i>=5)break;}}
int main(int argc,char *argv[])
{pthread_mutex_init(&mutex_id,NULL);
pthread_cond_init(&cond_id,NULL);
pthread_t pthread1_id,pthread2_id; pthread_create(&pthread1_id,NULL,thread_fun,NULL); sleep(1);
pthread_create(&pthread2_id,NULL,thread2_fun,NULL); //sleep(10);
pthread_join(pthread1_id,NULL);
pthread_join(pthread2_id,NULL); pthread_mutex_destroy(&mutex_id);
pthread_cond_destroy(&cond_id); return 0;} 四、名词解释(写出下列缩略词的中
文和英文解释) RISC:
CISC: MCU: MPU: DSP:
SOC: ROM:
SWI: PC: IRQ:
FIQ: CPSR :
ICE: MMU: VFS: NFS:
IPC : IR: LKM: ROM: RAM:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库整理1203.陈福明 嵌入式系统试题库2015(5)在线全文阅读。
相关推荐: