第一篇:嵌入式工程师考试题目
笔试题(60分钟)
姓名:
成绩:
嵌入式系统
1.
2.
3.
4.
5.
简述什么是嵌入式系统。简述ARM的版本及特点。简述INTEL XSCALE架构的主要组成。简述INTEL PXA255的逻辑结构。简述你了解的嵌入式操作系统有哪些,各有何特点。
WinCE
1. 简述WinCE系统的完整开发流程。
2. 简述Platform Builder的功能。
3. 简述WinCE内核的构成及各模块的主要功能。
4. 简述Eboot和NK下载到目标板的基本流程及工具。
5. 简述你在WinCE平台上所开发的一个软件项目的(a)功能,(b)软件逻辑结构,(c)所使用的开发工具的情况。
Symbian
1. 简述在进行Symbian OS C++应用开发过程中,你使用哪些技巧以提高你的代码质量。
2. 解释Symbian操作系统手机上构成Java平台的MIDP和CLDC特性。3. 简述Symbian OS上对象如何创建和销毁。
4. 解释Symbian OS上活动对象的概念。
5. 简述你在Symbian OS上所开发的一个软件项目的(a)功能,(b)软件逻辑结构,(c)所使用的开发工具的情况。
Linux
1. 简述BOOTP协议的功能及工作流程。
2. 简述Linux Bootloader的功能及工作流程。
3. 简述Linux的完整启动流程及所需的软件模块。
4. 简述嵌入式Linux上经常使用的文件系统类型及各自的特点。
5. 简述你在嵌入式Linux平台上所开发的一个软件项目的(a)功能,(b)软件逻辑结构,(c)所使用的开发工具的情况。
第二篇:嵌入式软件工程师评估题目
1.计算下列C语言表达式的值
0x34 & 0x78值为______
= = 0x64值为______
0x8 | 0x70值为______
0x55 ^ 0x88值为______&& 2值为______
strlen(“Hello!”)值为______
sizeof(char)值为______
32位系统上, sizeof(long)值为______
0x20 < 30? 1:2 值为______
!99值为______
2.用C语言预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)3.ARM指令是多少位的?
4.关键字volatile在C语言中有什么意义?
5.关键字const在C语言中有什么意义?
6.关键字static在C语言中有什么意义?
7.写一段C语言代码,动态申请128K内存,并将前面100个字节初始化为00xFF.8.写一段C语言代码,用递归的方式实现阶乘函数
阶乘的定义: n的阶乘 = 1 * 2 * 3 *„ „ *(n-1)* n
9.写出下面C语言代码段的输出
#include “stdio.h”
#include “stdlib.h”
void main(void)
{
int a, b, c = 3;
int *p;
p = &a;
*p =1;
b = a+1;
printf(“a=%d, b=%d, c=%d”, a, b,c);
}
10.翻译下面英文为中文
i.MX31L is a high performance embedded RISC processor based on ARM11 core from Freescale.It is a high-speed, low power consumption processor.Windows CE is a generic OS for embedded system by Microsoft, which is a small footprint, modulized, customizable and reliable OS.In this paper, an embedded system using i.MX31L as hardware platform, Windows CE as operating system, NAND Flash as storage medium is described.The memory access for RAM and NAND Flash was designed to be flexible and extendible.The Flash bad-block management,Flash access control, mutually exclusive access, storage of OS image, OS loading, NAND Flash driver, FAT file system were implemented.A two-level OS loader, a USB upgrade tool and a selftest for manufacturing check were implemented.The performance of file system was extensively evaluated, and being further optimized.Moreover, the defect of NAND Flash controller of i.MX31L was discovered during implementation stage.The defect was solved successfully with software workaround.A mature solution for mass production was resulted.
第三篇:嵌入式linux工程师笔试题目
北京航天泰睿科技有限公司
嵌入式linux笔试题目
一、简答题:
1. 请写出实现后面几个功能的Linux命令:显示文件,拷贝,删除
Ls cp rm 2. do„„while和while„„do有什么区别?
Do„while是先执行一次循环体内的代码然后在判断,而while„.do则是先判断一下条件,然后在执行。Do„„.while如果是不满足条件也会执行,一定会执行一次。
3. Linux系统下.ko文件是什么文件?.so文件是什么文件?
Linux系统下.ko是模块文件,比如驱动之类的。.so是动态链接库文件 4. 如何使用vi进行块拷贝、粘贴、删除的操作
5. 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是。
/etc 这个目录用来存放系统管理所需要的配置文件和子目录
6. 如何使用gcc得到宏展开的中间代码
gcc –E –P xxfile 7. 如何使用gdb调试多进程
先ps出进程id,再gdb-a attach上去,b设一个断点,c继续运行就可以了
8. 用户进程间通信主要哪几种方式
管道,信号量,消息队列,有名管道 9. 解释命令ls-amore具体含义。
-a 输出目录下的所有文件,包括隐藏文件-m 横向输出文件名,并以’,’隔开-o 显示文件除组外的详细信息-r 对目录反向排序
-e 输出时间的全部信息,而不是简要信息
10. LINUX中的管道指什么,重定向又指什么
管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称为半双工管道。数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道);如果要进行双工通信,需要建 立两个管道。管道只能用于父子进程或者兄弟进程间通信。,也就是说管道只能用于具有亲缘关系的进程间通信。
11. 请写出下列代码的输出内容 #include “stdio.h” main(){ int a,b,c,d;a=10;
第1页/共3页
北京航天泰睿科技有限公司
b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;
12. 编写一个函数intcharnum(charfn[10]),该函数以只读方式打开文件fn,,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。
文件kt7_2.cpp的内容如下:
#include
#include
#include
intcharnum(charfn[10]);
voidmain(){ intnum;
num=charnum(“abc.txt”);} cout<<“num=”<
intcharnum(charfn[10]){
}
二、编程题
13. 如果有一个简单的Test项目目录如下:
# tree Test Test |--common.h |--main.cpp |--test.cpp `--test.h
1)使用wildcard、patsubst函数编写一个C++项目的Makefile文件 2)使用automake、autoconfig编写一个支持configure选项的configure.in脚本
14. 编写一个hello world程序,要求以创建进程的方式打印Hello World!
15. 打开一个文件,并读取从第100字节开始的50字节数据。
第2页/共3页
北京航天泰睿科技有限公司
16. 编写一对socket程序,要求类似于network echo procotol。
Client每隔1秒把自己的IP地址轮流循环发送给一个Server.Server接到IP后,在屏幕上打印对方IP;然后把自己的IP发送回去。Client收到回复后,在屏幕上打印对方IP。
程序一直运行,直到用户退出。各自分类统计接收到的各IP的数据包的个数。
注意:Client可以向多个Server发送请求,Server也可以接收多个Client请求。
17.请描述Linux下程序开发到执行的工作流程(结合自己的项目经历)。
18.结合自己的学习或工作感受简述Linux与Windows编程的区别,嵌入式Linux与Windows的嵌入式OS(如XPE、WinCE)的区别。
第3页/共3页
第四篇:嵌入式linux工程师笔试题目[推荐]
北京航天泰睿科技有限公司
嵌入式linux笔试题目
一、简答题:
1. 请写出实现后面几个功能的Linux命令:显示文件,拷贝,删除
2. do„„while和while„„do有什么区别?
3. Linux系统下.ko文件是什么文件?.so文件是什么文件?
4. 如何使用vi进行块拷贝、粘贴、删除的操作
5. 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是。
6. 如何使用gcc得到宏展开的中间代码
7. 如何使用gdb调试多进程
8. 用户进程间通信主要哪几种方式
9. 解释命令ls-amore具体含义。
10. LINUX中的管道指什么,重定向又指什么
11. 请写出下列代码的输出内容 #include “stdio.h” main(){ int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;
12. 编写一个函数intcharnum(charfn[10]),该函数以只读方式打开文件fn,,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。
文件kt7_2.cpp的内容如下:
#include
第1页/共2页
北京航天泰睿科技有限公司
#include #include intcharnum(charfn[10]);voidmain(){ intnum;
num=charnum(“abc.txt”);} cout<<“num=”<
intcharnum(charfn[10]){
}
二、编程题
13. 如果有一个简单的Test项目目录如下:
# tree Test Test |--common.h |--main.cpp |--test.cpp `--test.h
1)使用wildcard、patsubst函数编写一个C++项目的Makefile文件 2)使用automake、autoconfig编写一个支持configure选项的configure.in脚本
14. 编写一个hello world程序,要求以创建进程的方式打印Hello World!
15. 打开一个文件,并读取从第100字节开始的50字节数据。
16. 编写一对socket程序,要求类似于network echo procotol。
Client每隔1秒把自己的IP地址轮流循环发送给一个Server.Server接到IP后,在屏幕上打印对方IP;然后把自己的IP发送回去。Client收到回复后,在屏幕上打印对方IP。
程序一直运行,直到用户退出。各自分类统计接收到的各IP的数据包的个数。
注意:Client可以向多个Server发送请求,Server也可以接收多个Client请求。
17.请描述Linux下程序开发到执行的工作流程(结合自己的项目经历)。
18.结合自己的学习或工作感受简述Linux与Windows编程的区别,嵌入式Linux与Windows的嵌入式OS(如XPE、WinCE)的区别。
第2页/共2页
第五篇:嵌入式软件工程师
嵌入式软件工程师
目录 简介 2 待遇 3 职业要求 4 发展前景 5 职业发展 简介 2 待遇 3 职业要求 4 发展前景 职业发展 简介
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式软件工程师就是编写嵌入式系统的工程师。2 待遇
IBM、微软、华为、Yahoo、联想、搜狐、亚信、花旗...2010'应届毕业生就业安置计划火热启动:先实训后上岗,转正年薪50000元。3 职业要求
应具备哪些能力
最直接的方法,就是去根据各公司,招聘网站的嵌入式软件工程师的应聘要求来分析
我帮你总结下:
1.最重要的是C语言编程,以及C++,这个与你读程,应用,开发项目,做系统移植息息相关;
2.操作系统: LINUX,WINCE等,至少学习过一种,(目前主流的还是Linux)并且还需要对些基础知识有蛮多的了解;
3.对ARM,FPGA,DSP等这些硬件比较了解。(目前主流的是ARM,像三星,华为,小米等大型的生产厂商最底层的硬件用的都是ARM)
这是最常规的条件
当然,最主流的一般就是LIUNX.同时具备一些基本素质,像英语能力,有相关的项目经验,也很重要
推荐: 你可以去按照招聘要求分析,也可以按照培训机构的培训目的,方向,内容来分析得知,像海同科技就是蛮不错的.算得上是业内的领军企业.4 发展前景
嵌入式领域较新,发展非常快,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的调查报告,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也达到了3000—5000元,中高级的嵌入式工程师月薪平均超过10000元。做软件实际上有高下之分,开发语言从机器语言、汇编到C、C++,再到红透半边天的Java、C#等,该学哪种呢?为什么有些开发者工资低,而有些开发者千金难求?为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水?
还是门槛,比如月薪15k的Linux嵌入式开发职位,门槛就有 Linux系统、Shell编程、Linux开发环境、C语言、ARM硬件平台、数据结构、Linux内核、驱动程序等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,能做出实际的产品,而Java的开发者却仅仅是会使用名叫Java的语言工具,始终高高飘在众多层次之上,开发项目非常快,甚至可以不知道OSI模型,很可能自始至终都是软件蓝领。
嵌入式开发本身也有高下之分,至少包含嵌入式应用程序工程师和底层的驱动内核工程师两种。前者同样是使用现成工具进行简单劳动,比如使用J2ME开发小游戏或者进行一些界面开发,而后者是根据芯片具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码。很显然后者是一个公司真正的技术核心。而技术核心的工资很可能是其他开发者的数倍。
嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的知识体系。比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,汇编,Linux内核、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。为进入外企或者出国做准备。
未来的几年内,随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑)工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。5 职业发展
从个人整体发展来说,如果想创业,做自已的产品,嵌入式软件开发可以开发出专利产品。
另一个发展路径是:积累丰富开发经验的嵌入式软件开发工程师可以向嵌入式系统开发工程师发展,从而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作嵌入式系统测试工程师,最终也可发展为IT项目经理