嵌入式软件助理工程师认证考试试题题库

嵌入式软件助理工程师认证考试试题题库
嵌入式软件助理工程师认证考试试题题库

嵌入式软件助理工程师认证考试试题题库(一)

题库, 试题, 嵌入式, 工程师, 软件

https://www.360docs.net/doc/1514709354.html,/bbs/

一、单项选择题

1、如下哪一个命令可以帮助你知道shell命令的用法( A )

A. man

B. pwd

C. help

D. more

2、Linux分区类型默认的是:( B )

A. vfat

B. ext2/ext3

C. swap

D. dos

3、在大多数Linux发行版本中,以下哪个属于块设备( B )

A. 串行口

B. 硬盘

C. 虚拟终端

D. 打印机

4、下面哪个命令行可用来马上重新启动正在运行的Linux系统?( D )

A. restart --delay=0

B. reboot -w

C. halt -p

D. shutdown -r

now

5、在Linux系统,默认的shell是什么( A )

A.bash

B.ash

C.csh

D.gnush

6、下面哪条命令可用来确保文件“myfile”存在( B )

A. cp myfile /dev/null

B. touch myfile

C. create myfile

D. mkfile myfile

7、 LILO的配置文件是:( B )

A. /etc/conf

B. /etc/lilo.conf

C. /proc/kcore

D. /usr/local/

8、用“useradd jerry”命令添加一个用户,这个用户的主目录是什么( A )

A./home/jerry

B./bin/jerry

C./var/jerry

D./etc/jerry

9、Linux文件权限一共10位长度,分成四段,第三段表示的容是( D )

A.文件类型

B.文件所有者的权限

C.文件所有者所在组的权限

D.其他用户的权限

10、某文件的组外成员的权限为只读;所有者有全部权限;组的权限为读与写,则该文件的权限为( D )

A.467

B.674

C.476

D.764

11、不是shell具有的功能和特点的是( A )

A.管道

B.输入输出重定向

C.执行后台进程

D.处理程序命令

12、如何从当前系统中卸载一个已装载的文件系统( A )

A. umount

B. dismount

C. mount –u

D. 从/etc/fstab 中删除这个文件系统项

13、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh,下列命令( 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

14、在/home/stud1/wang目录下有一文件file,使用( D )可实现在后台执行命令,此命令将file文件中的容输出到file.copy文件中。

A. cat file >file.copy

B. cat file file.copy

C. &cat file file.copy

D. &cat file >file.copy

15、字符设备文件类型的标志是( B )

A. p

B. c

C. s

D. l

16、删除文件命令为( D )

A. mkdir

B. rmdir

C. mv

D. rm

17、( B )命令可更改一个文件的权限设置?

A. attrib

B. chmod

C. change

D. file

18、用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为( A )。

-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff

A. 普通文件

B. 硬

C. 目录

D. 符号19、系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有( B )权限。

A. 744

B. 664

C. 646

D. 746

20、在指令系统的各种寻址方式中,获取操作数最快的方式是( 1 -B );若操作数的地址包含在指令中,则属于(2-A )方式。(1) A、直接寻址 B、立即寻址 C、寄存器寻址D、间接寻址

(2) A、直接寻址 B、立即寻址 C、寄存器寻址D、间接寻址

21、在CPU和物理存之间进行地址转换时,( B )将地址从虚拟(逻辑)地址空间映射到物理地址空间。

A、TCB

B、MMU

C、CACHE

D、

DMA

22、Linux将存储设备和输入/输出设备均看做文件来操作,(C)不是以文件的形式出现。

A. 目录

B. 软

C. i节点表

D. 网络适配器

23、关于文件系统的安装和卸载,下面描述正确的是(A)。

A. 如果光盘未经卸载,光驱是打不开的

B. 安装文件系统的安装点只能是/mnt下

C. 不管光驱中是否有光盘,系统都可以安装CD-ROM设备

D. mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的

24、为了查看Linux启动信息,可以用(B)命令

A. cat /etc/lilo.conf

B.dmesg

C. cat/proc/cpuinfo

D.lilo

25、用下列(A)命令查看Linux使用了多少存

A.cat /proc/meminfo

B. cat /bin/meminfo

C.vi /proc/meminfo

D.vi /user/local/meminfo

26、下列(D)设备是字符设备。

A. hdc

B. fd0

C. hda1

D. tty1

27、下列说确的是(D)

A. ln -s a.txt b.txt,作用是制作文件b.txt的符号,其名称为a.txt

B. df命令可以查看当前目录占用磁盘空间的大小

C. comm命令打印两个文本文件中的相同的容

D. rm命令可以用来删除目录

28、有如下的命令:$dd if=f1 of=f2。其中if=f1表示(A)

A. 以f1作为源文件,代替标准输入

B. 以f1作为目标文件,代替标准输出

C. 当条件满足f1的时候,执行真正的拷贝

D. 拷贝的过程中,不转化文件

29、为了查找出当前用户运行的所有进程的信息,我们可以使用(B)命令:

A. ps -a

B. ps -u

C. ls -a

D. ls –l

30、为保证在启动服务器时自动启动DHCP进程,应对( B )文件进行编辑。

A、/etc/rc.d/rc.inet2

B、/etc/rc.d/rc.inet1

C、/etc/dhcpd.conf

D、

嵌入式硬件工程师与软件工程师的区别

嵌入式硬件工程师与软件工程师的区 别 嵌入式硬件工程师与软件工程师都有哪些不同呢?具体工作都包括什么?就业前景如何?工资待遇如何?这些都是大家十分关心的问题,尤其是对于即将走向工作岗位的学生来说,这些问题直接影响到他们的择业及将来的发展方向。 下面从几个方面来解答这些问题。 什么是嵌入式硬件工程师? 随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如:底层驱动的开发嵌入式操作系统的裁剪,移植;GUI、文件系统等软件的移植;基于嵌入式操作系统的底层驱动程序的设计等。 什么是嵌入式软件工程师? 嵌入式软件工程师与我们平常说的软件工程师不同。 我们平常说的软件工程师大部分指的是windows和linux操作系统下应用软件的开发人员,硬件平台是基于PC机的。而嵌入式软件工程师则是指在wince、linux等嵌入式操作系统下进行用户应用软件开发的人员,硬件平台则是基于嵌入式产品的(例如:手机、PDA等)。软件开发工具也有所区别,嵌入式软件开发一般使用的是嵌入式系统专用的开发工具,例如wince下的evc,和linux下的qt等。 嵌入式软、硬件工程师职能、工作性质的区别 嵌入式硬件工程师的主要工作包括: 方案设计 根据客户需要进行可行性分析、整体功能设计、硬件成本预算等,在完成功能的同时还必须考虑到产品的生产加工、后期维修等各方面问题。 元件的选型 选择元件时必须根据每个元件特性和电路板特性,成分考虑到性能,干扰,功耗等问题。

电路的设计 元件的位置,产品的功耗,各部分功能完整性,抗干扰等 电路板设计 要求设计出的电路板,安全可靠,美观,拆装方便。 系统集成及调试 产品样品的组装集成及硬件调试。 底层驱动程序设计 根据硬件资源进行驱动程序的设计。 操作系统的裁剪移植* 根据需要选择最优的操作系统进行裁剪和移植 GUI及文件系统等软件移植* 根据需要加入GUI及文件系统等软件。 注:*表示该工作有可能不需要。 嵌入式软件工程师的主要工作包括: 人机交互程序设计 图形用户界面(GUI)程序设计 用户应用软件设计 软件系统测试 举个简单的例子: 就拿手机的设计来说,硬件工程师需要根据要求完成以下工作: 1、根据用户的需求例如:直板还是翻盖的,尺寸多大,功能要求(MP3,GPRS,触摸屏等),成本要求等。对整个方案进行设计。 2、选择最优的元件,例如液晶屏、CPU等 3、进行电路的设计 4、集成和调试 5、底层驱动程序设计 6、移植wince、linux或者symbian等嵌入式操作系统 软件工程师需要完成以下工作

嵌入式工程师面试题--经典

1、将一个字符串逆序 2、将一个链表逆序 3、计算一个字节里(byte)里面有多少bit被置1 4、搜索给定的字节(byte) 5、在一个字符串中找到可能的最长的子字符串 6、字符串转换为整数 7、整数转换为字符串 style="MARGIN: 0px; COLOR: rgb(102,102,102); LINE-HEIGHT: 150%" wrap="break-word"1、char *strconv(char *p) { int i,length; char temp; length = strlen(p); for(i = 0;i < length/2;i++) { temp = *(p + i);

*(p + i) = *(p + length - 1 - i); *(p +length - 1 - i) = temp; } return p; } int main() { char src[100]; char *p; scanf("%s",src); p = strconv(src); printf("%s\n",p); return 0;

style="MARGIN: 0px; COLOR: rgb(102,102,102); LINE-HEIGHT: 150%" wrap="break-word"3、int cal(int data) //calculation the number of bit in one byte { int a; int count = 0; a = data % 100; while (a != 0) { count += a % 2; a /= 2; } return count;

嵌入式开发工程师简历模板

【个人信息】 姓名: 身高: 性别: 学历: 籍贯: 专业:电子信息工程 联系电话: E-mail: 【求职意向】 嵌入式开发工程师或相关工作,对LINUX驱动开发极感兴趣 【工作经验】 2009.3----2010.3 中山长宝GPS卫星导航有限公司 2009.1----2009.3 中山世博游艺有限公司 【教育背景】 2010.3——2010.7 广州粤嵌通信科技股份有限公司(简称粤嵌教育) ARM+Linux培训 2005.9——2009.6广州大学松田学院电子信息工程工学学士【项目经验】 GPS车载终端,GPS个人定位器(从事一年相关工作) 基于ARM9的嵌入式智能家居系统(QT图像界面,应用程序,驱动等)基于ARM9的嵌入式视频点播系统(包括本地播放,网络播放) ARM9(S3C2440)的嵌入式系统移植(Uboot,Kernel,Rootfs,Driver) LINUX简单聊天工具 【相关技能】 英语水平: 四级 掌握C、C++编程,有良好的编程风格 了解Linux内核机制,熟悉Linux驱动开发 熟练使用单片机(如STC系列,SST系列,INTEL系列) 熟悉ARM9的硬件结构 熟悉Linux操作系统、交叉编译环境,掌握常用脚本编写 熟悉BootLoader制作,内核的剪裁,驱动及根文件系统的移植 熟悉QT编程, TCP/IP协议,掌握Linux应用编程 了解SQL基础知识 熟悉GSM.GPS的使用 【语言水平】 粤语/国语流利;英语已通过CET-4,可阅读专业相关资料

项目简介 GPS车载终端,GPS个人定位器 软件环境:KEIL 51 硬件环境:BENQ M23,M33 通信模块,51单片机,和GPS模块 项目描述:通过MCU把GPS采集的数据处理后,通过串过发送AT指令使GSM 拨通GPRS网络,再把采集的GPS数据,按照定义好的协议上存到监 控平台 ARM9 (S3C2440) LED流水灯、LCD文字及图片显示设计 软件环境:ADS1.2 硬件环境:ARM9(2440)开发板 项目描述:将设计的程序移植到ARM9上,并成功驱动LED、LCD,完成LED 流水灯、LCD文字及图片显示项目 ARM9(S3C2440)嵌入式系统移植 软件环境:Linux2.6.24,U-boot,Qtopia 硬件环境:ARM9(2440)开发板 项目描述:在2440上成功完成了U-boot移植,Linux内核的剪裁与移植,根文件系统的制作,并完成了LED、LCD等驱动的移植。 基于ARM9的VOD点播系统 软件环境:Linux2.6.12,U-boot,Qtopia 硬件环境:GEC2440开发板 项目描述:培训实战项目,完成了S3C2440嵌入式系统的整体移植,它基于QT图形界面,移植了MPlayer播放器,实现了VOD(本地和网络) 多媒体点播, ARM9(S3C2440)嵌入式智能家居系统 软件环境:Linux2.6.12,U-boot,Qtopia 硬件环境:ARM9(2440)开发板 项目描述:本系统主要实现温度检测,红外检测,蜂鸣器报警,步进机转动(模拟控制家电),GSM短信通知等驱动,QT图形界面显示和应用编程. 把温 度传感器和红外线采集的数据,传给应用程序,应用程序把数据显示 在QT界面,当应用程序检测到温度过高或有人闯进时,应用程序就调 用蜂鸣器报警驱动,并发短信通知主人,主人也可以下发短信控制步 进机转动 本人做的LINUX驱动简介 ds18b20温度传感器Linux驱动 该驱动为字符型驱动程序,能从ds18b20芯片读取温度信息. ds18b20芯片采用了独特的 1-wire bus技术,只用一根数据线即可实现与cpu芯片的连接(利用了cpu gpio本身的弱上拉电阻)。本驱动程序的重点是实现字符驱动的读函数接口。由于硬件连线简单,对ds18b20的软件操作较为繁琐,每一个操作都要要经过以下三个步骤:(1)芯片初始化(2)芯片选择(因为一线总线上可挂载多个ds18b20, 所以必须通过一定的机制指明操作的对象) (3)发送功能命令(例如,温度查询命令)和读取数据。在初始化的步骤中,cpu拉低数据线,然后释放数

如何成为linux嵌入式工程师

如何成为linux嵌入式工程师 1、Linux开发工程师(每天学习6小时,用一个月时间) 首先成长为一名Linux开发工程师,这是最基本的目标,他应该具 备如下的素质: (1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,配置,操作,开发模式) (2)会使用Linux平台下的编辑器vi(默认安装,占内存小,方便 向嵌入式移植) (3)会使用Linux平台下的编译器GCC(相应的十几个命令行参 数) (4)会使用Linux平台下的管理工具Make(与Makefile相配合,尤其用于大项目中多平台移植的情况下) (5)会使用Linux平台下的调试器GDB(可以了解底层硬件,及 汇编指令) 2、嵌入式工程师 他更关心的是将来在哪一目标机上运行,不关心操作系统,进行的 更多与编程相关的工作

(1)合格的C程序的程序员(理解基本的控制结构:循环、分支、 数组、指针) (2)基本的编程思想(编程实践中总结算法) (3)程序的编译和链接 (4)可执行文件内部(段、起始地址、如何加载执行) (5)目标机处理器体系结构 (6)知道处理器的外设即System on Chip(内部存储结构及外设 驱动) (7)汇编语言及指令(主要是用在加载过程中) 3、系统工程师 系统工程师夹在驱动工程师及应用工程师这两个层次之间,他要对系统有一个整体的概念,系统主要是指操作系统,往往理论有余而实践 不足 (1)进程管理与调度(知道进程间的切换与调度,多任务)(2)内存管理(建立MMU页表,知道从虚地址到物理地址的映射)(3)驱动管理(管理设备,编写设备驱动,加载设备驱动)

(4)文件系统(制作文件系统,文件系统的读写,甚至驱动有时也 被当成文件系统来管理) (5)网络协议知识(协议实现作为上层应用与底层驱动之间的 衔接) (6)图形系统知识(支持多窗口及管理窗口,包括窗口切换,窗口 移动和覆盖) 4、嵌入式Linux系统工程师 (1)嵌入式Linux基本概念 (2)交叉编译 (3)Linux内核开发和调试工具 (4)启动代码移植(修改Uboot,Vivi等) (5)内核交叉编译(Linux不支持芯片时要芯片级的移植,支持芯 片时要板级的移植) (6)根文件系统制作 (7)设备驱动程序开发

嵌入式软件助理工程师认证考试复习题新

嵌入式软件助理工程师认证考试复习题2012.08. 一、单项选择题 1、如下哪一个命令可以帮助你知道shell命令的用法( A ) A. man B. pwd C. help D. more 2、在大多数Linux发行版本中,以下哪个属于块设备( B ) A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 3、下面哪个命令行可用来马上重新启动正在运行的Linux系统?( D ) A. restart --delay=0 B. reboot -w C. halt -p D. shutdown -r now 4、在Linux系统,默认的shell是什么( A ) A.bash B.ash C.csh D.gnush 5、下面哪条命令可用来确保文件“myfile”存在( B ) A. cp myfile /dev/null B. touch myfile C. create myfile D. mkfile myfile 6、 LILO的配置文件是:( B ) A. /etc/conf B. /etc/lilo.conf C. /proc/kcore D. /usr/local/ 7、用“useradd jerry”命令添加一个用户,这个用户的主目录是什么( A ) A./home/jerry B./bin/jerry C./var/jerry D./etc/jerry 8、Linux文件权限一共10位长度,分成四段,第三段表示的内容是( D ) A.文件类型 B.文件所有者的权限 C.文件所有者所在组的权限 D.其他用户的权限 9、在ARM系统结构中,MMU映射最小的单元空间是_D___ A、64KB B、16KB C、4KB D、1KB 10、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为( D ) A.467 B.674 C.476 D.764 11、不是shell具有的功能和特点的是( A ) A.管道 B.输入输出重定向 C.执行后台进程 D.处理程序命令 12、在ARM处理器的各种工作模式中,( A )模式无法访问一些被保护的系统资源。年徐远超 A. 用户模式(user) B.系统模式(system) C. 中断模式(IRQ) D.终止模式(Abort) 13、如何从当前系统中卸载一个已装载的文件系统( A ) A. umount B. dismount C. mount –u D. 从 /etc/fstab 中删除这个文件系统项 14、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh,下列命令( 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 15、在/home/stud1/wang目录下有一文件file,使用( D )可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。

第三套嵌入式软件工程师考试试题B卷

第三套嵌入式软件工程师 考试试题B卷 The document was prepared on January 2, 2021

嵌入式Linux软件工程师认证考试 B卷 20个小题,每小题1分,共20分) 1、在下列ARM处理器的各种模式中,()模式有自己独立的R8-R14寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ) 2、按照ARM过程调用标准(APCS),栈指针使用()寄存器, A、R0 B、R13 C、R14 D、R15 3、在ARM体系结构中,()寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;()寄存器作为处理器的程序计数器指针。 A、R0,R14 B、R13,R15 C、R14,R15 D、R14,R0 4、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法() A、直接修改CPU状态寄存器(CPSR)对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 5、下面关于MMU和Linux描述错误的是:() A、MMU是内存管理单元Memory Management Unit的缩写 B、uClinux可以运行在有MMU的处理器上 C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可 以通过软件实现地址映射。 D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间

嵌入式软件工程师笔试题

笔试题 1: 设 float a=2, b=4, c=3; ,以下 C 语言表达式与代数式 (a+b)+c 计算结果不一致的是 A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b) 参考答案: B,因为 a,b,c 三个变量都是浮点数,所以在 B 答案中其结果是 0,因为在计算 1/2 是就是 0,如果改成 1/2.0 就正确了。 2: 为了向二进制文件尾部增加数据,打开文件的方式应采用 A.″ab″ B.″rb+″ C.″wb″ D.″wb+″ 参考答案: D 3: 下述程序执行后的输出结果是 #include main() { int x= 'f'; printf( “%c n”, 'a'+(x - ‘a'+1)); } A.g B.h C.i D.j 参考答案: A 4:C 语言中,下列运算符优先级高的是 A.! B.% C.>> D.= = 参考答案: A 5:数组定义为“ int a [ 4 ] ; ”,表达式 ( ) 是错误的。 A.*a B. a [ 0 ] C. a D.a++ 参考答案: D

6: 执行语句“ k=7>>1; ”后,变量 k 的当前值是 A.15 B.31 C. 3 D. 1 参考答案: C 7: 定义函数时,缺省函数的类型声明,则函数类型取缺省类型 A.void B.char C.float D.int 参考答案: D 8: 若 main() 函数带参数,参数个数多是 A.0 B. 1 C. 2 D. 3 参考答案: C 只知道有定义形式 main(int argc,char* argv[])) 9: 若有宏定义: #define MOD(x , y) x%y 则执行以下语句后的输出结果是 int a=13 ,b=94; printf( ″%d n″, MOD(b, a+4)); A. 5 B.7 C.9 D.11 参考答案: B 10: 下列各个错误中,哪一个不属于编译错误 A.改变 x 原值 3 为 5 ,写作“ x==5 ; ” B.花括号不配对 C.复合语句中的后一条语句后未加分号 D.变量有引用、无定义参考答案: A 11: 下列程序段运行后, x 的值是 ( ) a=1;b=2;x=0; if(!( — a))x — ; if(!b)x=7;else ++x; A.0 B. 3 C. 6 D.7 参考答案: A

嵌入式软件工程师个人简历

嵌入式软件工程师 个人信息: 姓名:董国杰性别:男 学历:本科专业:电子信息工程 现居住地:上海市浦东新区出生日期:1991.1.1 手机:电子邮件: 自我评价: 性格乐观严谨,行为处事态度认真,力求完美,喜欢钻研,尤爱软件开发等科研性知识学习。喜欢团队合作,善于观察身边人事,发现各人特点,利于团队交流。不喜欢个性张扬,追求更多不断提升自己,锻炼自己的机会。 求职意向: Linux系统开发、C语言、C++、数据结构、驱动、ARM、Linux系统移植 技术方面: 熟练使用C、C++语言编程及程序调试工具,充分理解面对过程与面对对象的编程思想。 熟悉TCP/IP、UDP网络协议等Linux操作系统知识,有Linux下OICQ局域网聊天项目编程经验。 掌握使用QT进行界面化编程的基本方法。 了解Linux内核裁减和移植的基本知识。 基本了解驱动程序基础知识,能够编写基础的驱动程序。 了解基本硬件知识。 学习经验: 熟练掌握C语言、C++语言编程,对Linux操作系统下的程序编写基本熟练,能够使用gdb、gcc进行程序调试,了解arm等底层以及硬件相关的基础知识,能够完成基本的驱动程序编写以及掌握基本的内核裁剪、移植等相关知识。 运用所学知识独立完成相关项目如下: 1.火车订票系统

平台和开发环境: linux系统+Gcc+Gdb 项目功能: 使用终端命令界面,作为系统的输入输出界面。系统运行时把信息保存在内存中,系统退出后保存至文件。实现对列车车次、车站以及用户信息、和订票、预订票信息增加、删除、修改、查看等功能。设计管理员权限以实现对车次、车站的增删修改和对用户信息的管理。 模块化设计: 分为车站、车次、乘客、管理员等模块实现各自功能,使程序清晰易读。 2.基于linux的局域网OICQ聊天系统 平台和开发环境: Linux系统+Gcc+Gdb 功能描述: 基于linux系统实现多客户端局域网的通讯功能。系统包含客户端和服务端。 服务端功能: 1、接受用户注册、并实时保存信息至数据库中。 2、对登录用户进行认 证。3、动态维护在线用户列表。4、及时为每个在线客户端更新在在线好友列表。5、非在线用户的消息数据缓冲。 客户端功能: 1、客户端注册登录功能。 2、客户端使用心跳机制维持与服务端的连接, 并随时更新客户端基本信息。3、客户端与其他的客户端之间的消息数据的封包和收发。4、保存聊天信息及通信时间。 使用技术: 完成配置文件读写规则,服务端和客户端日志记录,使用TCP协议完成客户端与服务端的通讯,使用I/O复用机制完成服务端一对多链接,完成应用数据协议的封包解包、使用心跳机制维护客户端与服务端得链接,使用TCP协议实现客户端的通信。 3.英汉词典(c++项目,QT界面) 平台和开发环境: windows系统,QT 项目描述: 在QT界面下,基于C++面对对象的封装、继承、多态特性实现英语单词查询,添加生词本,增加、删除、修改生词功能。 功能实现: 1、根据单词查询输入框中用户用户输入的单词的变化动态的从单词库中

应聘硬件工程师或研发类工作资料集锦_硬件工程师_电子工程师_嵌入式工程师_单片机_笔试题目_面试题目

用一个宏定义FIND求一个结构体CTYPE里某个变量CNUM相对了CTYPE的编移量。 如:stuct student { int a; char b[20]; double ccc; } 则: FIND(student,a); //等于0 FIND(student,b);//等于4 二楼的可以。 #define FIND(type,member) (int)(&( ((type*)0)->member) ) struct student { int a; char b[20]; double ccc; }; int main(int argc,char* argv[]) { int i=FIND(student,a); //等于0 i=FIND(student,b);//等于4 return 0; } 调试结果是对的。 题目出得很好: 其实就是考下这个宏offsetof ,定义在文件stddef.h 中. #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) TYPE是某struct的类型0是一个假想TYPE类型struct,MEMBER是该struct中的一个成员. 由于该struct的基地址为0, MEMBER的地址就是该成员相对与struct头地址的偏移量. 再往深处,接触过Linux Kernel的会知道这个宏container_of,就嵌套了宏offsetof ,其在Linux Kernel中的应用非常广泛,它用于获得某结构中某成员的入口地址. 1.运放求放大倍数的 2.三极管基础知识(放大区,截至区,饱和区) 3.并联RC变换成串联RC 4.运放求反馈的 5.单片机和74hc595硬件连接和编程 6。数据结构-----队列,建立一个队列,写数,读数。 一简答题

嵌入式软件工程师笔试题

(一) 1什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2 char * const p char const * p const char *p 上述三个有什么区别? 答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p 3 char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; out < < ( str7 == str8 ) < < endl; 结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。 4以下代码中的两个sizeof用法有问题吗? [C易] void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母 { for( size_t i=0; i

硬件、嵌入式工程师笔面试

笔面试题 1、技术类 (1)描述一下你的项目 (2)单片机I/O口需要注意的问题 驱动能力不强,高电平驱动时需要加上拉电阻; 电平匹配,上拉或分组。 51单片机的P0口常用作数据线和低8位地址线、P2常用作高8位地址线。 (3)单片机不能启动的原因 1)晶振没有振荡,测量晶振是否起振; 2)一直在复位状态,检查复位电路; 3)程序飞了,检查程序; 4)程序编制错误,检查程序; 5)单片机坏了,更换单片机芯片; 6)硬件电路错误。 (4)单片机最小系统 1)复位电路: 当引脚9出现2个机器周期以上高电平时,单片机复位,程序从头开始运行。

2)时钟电路:有振荡器电路产生频率等于晶振频率,这时用的是外界晶振。 也可以又外部单独输入,此时XTAL2脚接地,时钟信号由XTAL1输入。 3)电源电路:VCC和GND引脚。 4)程序下载电路。(并不严格包含) (5)哈弗结构和冯洛伊曼结构 哈佛结构:是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点: 1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存; 2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。 改进的哈佛结构,其结构特点为: 1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理; 2、具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输; 哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的A VR系列和安谋公司的ARM9、ARM10和ARM11。 冯·诺伊曼结构:也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的

嵌入式软件工程师笔试题华为优选稿

嵌入式软件工程师笔试 题华为 集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

(一)1什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2char*constpcharconst*pconstchar*p上述三个有什么区别 答案: char*constp;//常量指针,p的值不可以修改 charconst*p;//指向常量的指针,指向的常量值不可以改 constchar*p;//和charconst*p 3 charstr1[]="abc"; charstr2[]="abc"; constcharstr3[]="abc"; constcharstr4[]="abc"; constchar*str5="abc"; constchar*str6="abc"; char*str7="abc"; char*str8="abc";

cout<<(str1==str2)<

嵌入式软件工程师简历

简历 姓名: 性别: 年龄: 电话: E-mail: 学历: 学校: 专业: 嵌入式软件工程师 本人性格开朗,容易与人相处,对Linux有浓厚兴趣,较强的学习能力。 1. 熟练使用C语言,能进行C++开发,对汇编有一定了解,有数据结构基础。 2. 有多种单片机AVR、FreeScale、NEC,ARM等开发编程经验。 3. 熟悉Linux常用命令,掌握GCC编译器、GDB调试工具、MakeFile及Shell 脚本。 4. 熟悉嵌入式Linux开发,内核裁剪及配置、交叉编译、根文件系统制作等。 5. 掌握Linux系统编程,如进程、多线程,文件IO,及基本Socket网络编程,Sqlite数据库编程。 6. 掌握Linux设备驱动原理,了解平台设备驱动框架,linux模块子系统的构建,设备驱动开发过程,进行过ARM片上资源外设(Key、Led、EEprom等)驱动编写。 7. 掌握Uboot的移植,了解Uboot各资源模块的驱动过程。 8. 深入研读过uCOS微内核源码,熟悉微操作系统原理,进行过ucGUI界面开发。 9. 能够阅读英文技术文档,有持续的探索精神。

2011 /9--2012 /3:ARM9无线点餐机 软件环境:C语言 硬件环境:S3C2440 开发工具:ADS1.2 项目描述:基于ucos/ucgui无线点餐机基于触屏的菜单操作,实现点菜,退订,提交,结账,重选,预览菜品等多种功能。 责任描述:主要负责ARM9软件的开发,硬件平台是GT2440开发板。 2011 /7--2011 /9:电子设计大赛 软件环境:C语言 硬件环境:AVR-MEGA16 开发工具:GCC(winavr) 项目描述:并联电源实现智能分流控制,直流24V转化为8V,两路电源的电流可随意控制。DC-DC斩波电路,电流电压高精度采样,数模转换,运放等。 责任描述:方案原理图的绘制,单片机软件程序编写。 2011 /5--2011 /7:飞思卡尔智能车大赛 软件环境:C语言 硬件环境:飞思卡尔16位单片机-HC9S12XS128 开发工具:CODEWARRIOR 项目描述:荣获二等奖,按照预定的赛道自动识别路径,自动完成发车,停车,转向,跟踪,识别最佳路线的功能,用SD卡记录赛道信息,对电机舵机进行控制,并用编码器测速构成闭环回路。最终速度可达到2.5m。涉及SD卡读写,舵机,电机控制,摄像头信号采集,图像滤波、路径识别,PID算法等。 责任描述:软件编写 2010 /5--2010 /7:中国机器人大赛 软件环境:C 硬件环境:AVR—MEGA1280 开发工具:ARDUUINO 项目描述:荣获二等奖。巡线机器人,用红外接近开关,灰度传感器等构成小车系统,按照预定的线路规划,自主巡线并完成指定任务。涉及红外接近开关,电机,舵机控制,PID算法。 责任描述:软件编写 计算机(二级)

嵌入式工程师工作要求

嵌入式软件工程师 职位名称:嵌入式软件工程师性别:男 待遇: 6000-10000人数: 5 2011-1-24 人气: 2306时间: 2:52:01工作方式:全职 职位描述及要求: 1. 基于ARM平台编写linux底层驱动程序以及应用层程序的开发; 2. 本科及以上学历,计算机、自动化或相关专业,三年以上嵌入式系统软件开发经验优先; 3. 精通嵌入式linux C/C++语言程序开发,熟悉至少一种处理器架构及其汇编; 4. 掌握嵌入式驱动程序的开发及调试,熟悉板级调试及相关仪器使用; 5. 掌握嵌入式应用层程序的开发,熟悉QT编程者优先; 6. 有硬件设计能力者优先; 7. 具备良好的文档编写能力和习惯,能够编写规范的概要和详细设计文档; 8. 对程序设计有精益求精的态度,良好的团队合作精神和沟通能力。

熟悉TCP/IP,FTP, TFTP,TELNET, Radius等协议 职位描述: 1、熟悉ARM体系架构、熟悉相应外围接口电路 2、三年以上linux驱动开发经验; 3、有bootloader、嵌入式系统移植经验; 具有嵌入式下的 USB、Audio、LCD、Camera、Flash、bootloader ,电源管理等驱动程序的开发经验; 嵌入式硬件工程师 职位名称:嵌入式硬件工程师性别:男 待遇: 6000-10000人数: 5 2009-2-22 人气: 3180时间: 21:08:09工作方式:全职 职位描述及要求: 必须两年以上工作经验。 1、熟悉51系列单片机、熟悉嵌入式系统硬件电路设计; 2、Cadence、Pads、Altium Designer(protel)三种软件中熟练掌握一种用法,能够轻松绘制4层及4层以下PCB板。 2、单片机、嵌入式系统的产品样机焊接、调试及测试。 3、有扎实的模拟电路、数字电路设计及分析能力。 4、有大量的项目开发经验者优先、3年以上工作经验者优先。

嵌入式助理工程师硬件试题

嵌入式硬件助理工程师认证考试试题题库 一、选择题 1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2、用图形点阵的方式显示一个16*16点阵汉字需要(B )字节。 A、8 B、32 C、16 D、64 3、下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。 B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 4、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端 模式存储,则2000H存储单元的内容为( D)。 A、0x21 B、0x68 C、0x65 D、0x02 5、μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D) A. 先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 6、RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v

7、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。 A. R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 8、IRQ中断的入口地址是( C)。 A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 9、S3C2420X I/O口常用的控制器是(D)。 (1)端口控制寄存器(GPACON-GPHCON)。 (2)端口数据寄存器(GPADAT-GPHDAT)。 (3)外部中断控制寄存器(EXTINTN)。 (4)以上都是。 10、实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。 A. 同步 B. 互斥 C. 调度 D. 执行 11、和PC系统机相比嵌入式系统不具备以下哪个特点( C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 12、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 13、GET伪指令的含义是( A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 14、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为( C)。

嵌入式软件工程师经典笔试题

预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编 译器这个常数是的长整型数。 4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。 记住,第一印象很重要。 2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B) ((A) <= (B) (A) : (B)) 这个测试是为下面的目的而设的: 1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变 为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到 要求的性能,嵌入代码经常是必须的方法。 2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if- then-else更优化的代码,了解这个用法是很重要的。 3). 懂得在宏中小心地把参数用括号括起来 4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3. 预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种 问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) {

嵌入式软件开发个人简历

嵌入式软件开发个人简历 【篇一】 姓名: 性别: 出生日期: 民族:汉 户籍:黑龙江省饶河县 现居住地:北京海淀区 邮箱: 电话: 教育/培训 2011年8月—2011年11月凌阳(北京)爱普公司嵌入式软件工程师每日在公司学习时间:朝八晚十(周一~周六) 学习内容: 求职意向: 嵌入式软件工程师(应用程序开发)(无锡+苏州) 个人技能 掌握C/C++编程语言,以及常用的数据结构和基本算法。 掌握Linux下应用程序的开发过程,具有良好的编程风格。 掌握QT图形开发技术。 掌握TCP/IP协议,掌握socket网络编程。 掌握vi、gcc、VC++6.0、QTCreator等开发工具的使用。 了解ARM体系结构,掌握三星公司2410、2440系列处理器。 初步了解嵌入式平台搭建过程

项目经验 ①黑白棋 项目描述:基于QT的GUI界面,独立完成项目的整体构架机功能模块的划分,整体界面的设计,游戏规则算法及各模块功能的实现。能够实现双人对战, 人机对战,悔棋,计时等功能。 心得体会: 1、掌握了QT/C++编程的核心思想和技巧。 2、掌握了QT基本框架,常用的部件外观及其基本功能。 3、熟悉了QT的信号与槽、事件机制。 ②歌词解析器 项目描述:本项目在C语言阶段是非常具有代表性的,通过本项目对C语言 的重点知识灵活运用,完成lrc格式歌词的文件读取、解析、存入链表等,并通 过屏幕与歌曲同步实时显示。 心得体会:通过该项目能熟练掌握C语言字符切割操作、基本数据结构,培 养良 好的编程规范。 ③MPlayer播放器 项目描述:基于三星S3C2440开发板的Mplayer播放器。利用TFT图形库实 现MplayerUI 界面的设计。实现Mplayer播放、暂停、上一首、下一首、静音、音量调节、播放列表、歌曲信息、播放进度等功能。 心得体会:该项目中涉及到多进程、多线程以及进行间通信、重定向等系统 编程知识,是对所学知识点的强化和提升。 ④基于Linux的信息交换系统(飞鸽传书) 项目描述:运用TCP、UDP网络通信协议,实现局域网内多人聊天与文件传 输等功能,具备用户上下线动态识别机制。 心得体会:基本熟悉了TCP/IP协议、Socket、TCP、UDP的网络编程。

相关文档
最新文档