2017嵌入式系统开发工程师考试仿真题
1、简答题。下面的题目必须全部答对才给分:(5分)
1、在UNIX环境中,编译流程是什么?
2、ABI,ELF的英文全称是什么
3、一般UNIX的程序有多少段,举一个实际的例子说明。
4、如何在kernel二进制代码中找一个字符串。
5、段地址F000:FFF0转换为线形地址的值是多少(16进制表达)。
6、在一个UNIX文件系统中,文件的`唯一性标志是什么?
2、问答题。
1、———————————————————–
写一些代码。如何用文件实现信号灯?要求如果程序崩溃了,这个文件也将自动被删除。
为什么可以这样实现信号灯?(5分)
传统的signal函数信号处理为什么是不可靠的,信号和系统调用有何关系?(5分)
在图形库系统中往往提供timer的功能,除了使用ALARM信号外,你还可以使用什么系统调用来实现timer?(5分)
2、———————————————————–
写一些代码,演示如何正确使用write系统调用。注意看好手册再回答。(2分)
如果一个文件以rw模式打开,在进行read/write操作转换时,需要进行什么操作。(2分)
3、———————————————————–
解释终端结构termios.c_cc的MIN/TIME数值变化的带来read/write的特性。(5分)
如何理解终端、控制终端、虚拟终端、控制台、tty等类同的概念?(5分)
4、———————————————————–
解释计算机中Copy-On-Write的概念。(2分)
调用fork之后,子进程没有继承父进程的属性有哪些?(5分)
解释为什么每个程序在装入执行之后,总是已经预先打开了stdout、stdin、stderr?(2分)
在fork之前,父进程打开了一个文件。在fork之后,如果子进程移动了文件指针,父进程的文件指针有什么变化;如果子进程关闭了文件,父进程有什么变化?为什么会这样?(5分)
标准输入、输出和错误输出分别是什么类型的缓冲,这些缓冲在用户空间还是在核心空间?
怎样关闭他们的缓冲?如果父进程关闭了缓冲,在fork之后建立的子进程是否也关闭了缓冲?(5分)
vfork和fork相比,有什么特色?(2分)
system函数是否等同于fork+exec?(2分)
wait系统调用有多少种条件可以退出?(2分)
5、———————————————————–
系统调用和库函数调用有什么区别。(2分)
在linux2.4.x上的glibc和newlib(一种嵌入式C库)的系统调用有什么不同?(2分)
在linux2.4.x上,对系统调用execve如果调用成功,它返回的值是多少。(2分)
6、———————————————————–
列出你所知道的2个内存跟踪库。(2分)
设计一个内存跟踪方案,为什么选择这个方案(5分)
3、分析题。
本题(各5分)。假设下面代码中的变量都是合法变量,调用外部的函数都是正确的。回答几个问题:
这些代码意图要干什么?
是否有问题?
如果有问题,该如何修改,或者如何避免类似错误发生?
如果没有问题,如果代码有输出,输出是什么?
1、———————————————————–
int isvowel (char c)
{
return c==’a’’’’’’’’||c==’e’’’’’’’’||c==’i’’’’’’’’||c==’o’’’’’’’’||c==’u’’’’
}
2、———————————————————–
while (c==’t’||c=’ ‘||c==’n’)
c=getc(f);
3、———————————————————–
/* 当x=2, y=3, z=? */
if (x==0)
if (y==0)
z=-1;
else
z=x+y;
4、———————————————————–
/* 处理网络事件 */
void process_network_code(int x, int y)
{
/* 选择modes_pointer资源 */
switch (line) {
case THING1:
/* 处理异常1#, 使用老的modes_pointer资源 */
doit1();
break;
case THING2:
/* 处理异常2#, 需要重新启动服务 */
if (x == STUFF) {
/* 重新申请modes_pointer资源,没有初始化 */
do_first_stuff();
/* 在这种条件下,有些资源不用重新申请 */
if (y == OTHER_STUFF)
break;
/* 申请剩下的资源,并初始化 */
do_later_stuff();
}
/* 初始化modes_pointer资源 */
initialize_modes_pointer();
break;
default:
/* 处理普通事件, 使用老的modes_pointer资源 */
processing();
}
/* 使用modes_pointer资源,处理事件 */
use_modes_pointer();
}
5、———————————————————–
int is_gb2312_char(char c1, char c2)
{
if (c1 >= 0xa1 && c2 >= 0xa1)
return 1;
else
return 0;
}
-
2017嵌入式系统就业前景
嵌入式系统开发工程师是嵌入式工程领域的专家,需要有一定的嵌入式软件开发经验和嵌入式硬件开发经验,熟悉ARM或其他微处理器架构或可编程逻辑器件的使用等,当然还要有软件项目的一般开发流程经验。工作内容:设计、开发嵌入式系统;构造嵌入式系统的框架结构、内核原...
-
嵌入式开发的物联网设计安全守则
互联网中充斥着大批游手好闲的人,他们以入侵网络设备为乐,这是不诤的事实。但许多嵌入式开发团队在之前从来没有处理过安全问题,且仍在试图决定什么是他们需要做的,如果有的话。在此,yjbys为大家推荐的是嵌入式开发的物联网设计安全守则,希望大家的互联网的认识有多...
-
2017年嵌入式和物联网技术发展趋势
回顾已经过去的2016年,嵌入式技术和物联网发展迅速,嵌入式技术在巩固传统应用的基础上,探索新兴市场,物联网(IoT)是其中最具有广泛性的应用市场。下面我们一起了解一些嵌入式和物联网技术发展趋势。在以创新推动的新技术革命中,物联网无疑将带给产业更大的变革性与...
-
嵌入式系统的分类
由于嵌入式系统由硬件和软件共同组成,所以分类也可以根据硬件和软件两个方面来划分。下面一起和小编来看看吧!1以硬件划分1.1嵌入式微控制器(MicrocontrollerUnit,也称MCU)单片机就属于嵌入式微控制器,单片机机心由ROM(或EPROM)、总线、总线逻辑、定时器(或计数器...