嵌入式工程师

嵌入式工程师

一文读懂不同等级嵌入式工程师的发展路线

最近遇到很多处于迷茫中的新手,在纠结要不要去学嵌入式,主要问题在于

嵌入式的门槛非常高,经验少、或者非电子专业投身嵌入式行业能否发展下去。现在嵌入

式开发行业的确发展很好,大多数从业者都是科班出身,但我们也看到很多非科班的人分

享了自己的从业过程,也许起初知识不如科班的多,但他们经过持续数年学习实践,也成

为了行业中的大咖。其实学习技术更多的是一种执着与刻苦,非科班无非要下更多的功夫。嵌入式可以简单分为硬件与软件,然而其中的知识体系却是异常的庞大,这也是众多新手

望而却步的一个原因,那究竟要如何才能成为一名嵌入式大咖呢?今天和大家聊一聊嵌入

式学习路线,这里觉得有帮助的也可以企鹅。

入门嵌入式工程师

此阶段主要是前期的入门过程,主要针对入行没多久的新人。其实成功没有捷径,所以打

好基础才是关键。主要包含以下4个方面的内容:

1.电路知识首先你要学习电路、模电、数电,认识电阻、电容、三极管,基础器件要知道,

放大电路、集成运放、时序电路基本电路能看懂,不然看电路图一定是云里雾里,也就无

法进行后续的工作。硬件产品的设计实现,包括器件选型、原理图和PCB设计、电路调试,都需要过硬的电路基础。

2.C语言

C语言是嵌入式开发中最重要的编程语言,要对这门语言有深入的理解,毕竟不仅仅要会

写程序,看懂他人程序也很重要。最基本的数据类型、数组、指针、结构体,链表、文件

操作等都要会,掌握基本语法和语句,不然你要能区分指针数组与数组指针吗?

3.单片机单片机入门相对简单,通过单片机的学习可以熟悉单片机的硬件结构,包括I/O 口、AD转换、通信(串口、并口、I2C、CAN、USB、以太网、ZigBee技术等)、显示(LED、LCD等)、控制(PWM等控制技术)、数据处理(图形、图像、语音、视频等的处理或识别)等,学好单片机可以为采用嵌入式系统奠定良好的基础。

嵌入式软件工程师工作要求

嵌入式软件工程师工作要求 无锡市瑞丰精密机电技术有限公司 任职要求: 1、电子、计算机、自动化相关专业本科以上学历。 2、掌握电子行业专业英语,能够熟练阅读相关器件英文数据文档。 3、熟悉C/C++编程语言。 4、对力学、温湿度知识有一定基础。 5、欢迎应届毕业生。 薪水范围:1500-1999 北京江河瑞通技术发展有限公司 岗位要求: 1.计算机科学与技术及相关专业,获得硕士或学士学位的优秀毕业生; 2.熟悉掌握RTOS(WINCE、Linux等)之上的嵌入式软件开发; 3.熟悉数据通信原理,熟悉VLAN,STP等相关二层协议; 4.有一定的水利或软件行业相关专业知识背景; 5.有通信、计算机网络协议开发经验者优先; 6.有强烈的责任心和团队合作精神,具有较强的沟通及协调能力。上海华虹集成电路有限责任公司 职位描述 1、负责公司软件产品的设计/实现/编码/维护/文档编制/公共模块积累等工作,为客户提供应用技术支持。

2、协助产品应用方案的推广,反馈客户信息。 技能描述 1、有一定的软件开发经验 2、熟悉C语言、汇编语言,有单片机软件设计经验;熟悉C++、C#、Java等; 3、具有良好的逻辑思维能力、创新能力和团队协作精神;良好的沟通协调能力和服务意识; 4、熟悉智能卡的相关知识的优先; 应聘人员条件 1、熟练使用KEIL,ADS,IAR,https://www.360docs.net/doc/f19271709.html,,Eclipse等开发环境。 2、熟悉51和ARM7架构及其软件开发和仿真调试。 北京北科亿力科技有限公司 职位描述: 电子或嵌入式软件工程师 一、岗位职责: 1、负责公司电子、工控、仪表等硬件产品的研发、优化及相关技术文档的编写; 2、负责嵌入式软件的设计、编程、测试及技术文档的编写; 3、负责公司新产品知识产权文档的编写和申报; 4、完成上级领导交办的其它工作任务。

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

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;

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

嵌入式软件助理工程师认证考试复习题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文件中。

嵌入式软件工程师应该知道的16个问题

嵌入式软件工程师应知道的0x10个基本问题(经典收藏版) C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。 从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者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更优化的代码,了解这个用法是很重要的。

嵌入式软件工程师笔试题

笔试题 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

杭州嵌入式开发工程师薪资待遇好不好_华清远见

靠谱!杭州嵌入式开发工程师薪资待遇好不好大家对于计算机技术培训一定有所了解吧,今天,小编就为大家收集和整理了有关的信息,希望能让到家有更深一步的了解! 杭州人文古迹众多,西湖及其周边有大量的自然及人文景观遗迹。其中主要代表性的独特文化有西湖文化、良渚文化、丝绸文化、茶文化,以及流传下来的许多故事传说成为杭州文化代表。这座繁华的城市,想了解计算机技术培训的,必定不在少数,当然,在网络的海量数据库中搜索肯定是不二选择。 网上这么多的相关文章,大家一定挑花眼了吧,下面看看小编为大家总结的超实用福利吧! 这几年嵌入式发展很快,嵌入式也成为很多人想从事的高薪工作。对于大多数人而言,学完嵌入式还是要面临着就业这个问题,也可能只有极少的人选择创业,想做嵌入式开发吗?不要道听途说,还是先了解一下知识情况吧,IT人士都知道这是个待遇不错的岗位。但高到什么程度?难道菜鸟也高?这些你都知道吗应届毕业生:基本只要能从事基本的开发工作,然后有人带你,月薪 是6-10K,不同公司,不同城市,月薪也就不一样,像是阿里巴巴,和北上广,自然工资会偏高,差2000左右,最后是学历,一些公司就是很四班,本科就比专科贵,硕士就比本科贵(无法承担项目开发的情况下,会看这些)。但整体月薪平均会维持在6-10K这个标准,当然也有特别情况。其次还有一些培训机构,会改变学生的建立来达到高新目的。在嵌入式行业相对少,但是andrid、ios这些应用层开发岗位比较多,大多数培训机构把应届生学历改成几年工作经验。结局是企业期望高,而他们又无法独立承担开发任务,最后导致无法通过试用期。这种求高薪的方法是不靠谱的,不建议应届生这样做有经验的嵌入式工程师:目前一般一些小公司更愿意去找能直接创造价值的有经验的工程师,月薪至少是2W起,甚至为了挖人,开的更高,否则根本留不住人。如今到处都是猎头,有能力的,只要你把简历挂在网上,隔三差五就会有猎头给你推荐工作。人往往是经受不了诱惑的,如果这样的话对企业来讲损失很大,毕竟招人到磨合要成本,耽误项目进展就更不值 当了。但一些大公司由于名气在,不怕好手不来,月薪相对固定,企业都有自己的标准,例如阿里、百度、乐视、小米、TCL、美的等等,他们也都在做智能产品。嵌入式软件工程师据了解是20-30K,15薪是最基本的行情,还有就是一些老牌的嵌入式产品的企业,月薪也相对可观,整体月薪位于20K-40K之间吧。要说嵌入式工程师工资,比较差的往往是外包公司,一些公司不愿意高薪养人,有项目直接给一些外包公司做。外包公司一般就比较便宜些,招人要求也不是太高,能干活通通都要,并且上班时间比较长,月薪水平相对行业来说严重拖后腿,但比较锻炼人,连续开发几个项目能跳就跳吧!除非有上升管理岗的可能(个人之见)。从上边小编的描述不难看出其实嵌入式行业也没有“天上掉馅饼”的,最终的薪资水平还是跟你的能力有着直接的关系,这也正是很大学生来华清远见培训的原因,对嵌入式感兴趣的你,还等什么呢? 华清远见教育集团是国内一家知名的高端IT就业品牌,从成立至今连续13年来源源不断的向IT 行业输送优秀的开发人才,每年有上万名技术人员受益于华清远见举办的长期及短期就业培训课程、技术研讨会及企业内训等。品牌的积累靠多方的力量,而教学的核心是教材,这也是我们最重要的竞争力,华清远见的所有教材均是自己编写,目前清远见凭借研发中心雄厚的实力,自主研发实训项目及平台50多套,原创图书教材90余本,成为业内的一枝独秀。我们的品牌与实力是业

第三套嵌入式软件工程师考试试题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,才能使得各个进程有独立的寻址空间

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

嵌入式硬件工程师与软件工程师的区 别 嵌入式硬件工程师与软件工程师都有哪些不同呢?具体工作都包括什么?就业前景如何?工资待遇如何?这些都是大家十分关心的问题,尤其是对于即将走向工作岗位的学生来说,这些问题直接影响到他们的择业及将来的发展方向。 下面从几个方面来解答这些问题。 什么是嵌入式硬件工程师? 随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如:底层驱动的开发嵌入式操作系统的裁剪,移植;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等嵌入式操作系统 软件工程师需要完成以下工作

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

嵌入式软件工程师笔试 题华为 集团公司文件内部编码:(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)<

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

嵌入式硬件助理工程师认证考试试题题库 一、选择题 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)。

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

嵌入式软件工程师 个人信息: 姓名:董国杰性别:男 学历:本科专业:电子信息工程 现居住地:上海市浦东新区出生日期: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、根据单词查询输入框中用户用户输入的单词的变化动态的从单词库中

嵌入式软件工程师简历

简历 姓名: 性别: 年龄: 电话: 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算法。 责任描述:软件编写 计算机(二级)

嵌入式工程师笔试题

1、C语言中,修饰符volatile含义就是什么?其应用场合有哪些? volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取与存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。 2、请问TCP/IP协议分为哪几层?FTP协议在哪一层? ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 物理层:在物理媒体上传输原始的数据比特流。 数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。 网络层:将数据分成一定长度的分组,将分组穿过通信子网。 传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。 会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话。 表示层: 为应用层进程提供格式化的表示与转换数据服务。 应用层:提供应用程序访问OSI环境的手段。 应用层:TELNET、、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS 表示层: 文本:ASCII,EBCDIC 图形:TIFF,JPEG,GIF,PICT 声音:MIDI,MPEG,QUICKTIME 会话层:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK会话协议)、SCP 传输层:TCP、UDP、SPX 网络层:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先) 数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继 物理层:EIA/TIA RS-232、EIA/TIA RS-449、V、35、RJ-45 3、在网络应用中,函数htons,htonl,ntohs,ntohl的作用就是什么?

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

预处理器(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) {

嵌入式工程师薪资待遇为何高低不等_华清远见

嵌入式工程师薪资待遇为何高低不等 有网友曾质疑嵌入式工程师薪资如何呢,嵌入式工程师薪资待遇为何高低不等?他提到看到当前培训的学员就业薪资并不逆天呀。为啥还说嵌入式开发人才奇缺?这肯定是培训机构虚张声势。 那么嵌入式工程师薪资究竟如何呢?对此一个工作七年的华清远见星创客讲师道出了自己的心声 缺人跟工资高没有必然联系。公司缺高级工程师,迫不得已招了十个实习生来干高级工程师的活,能说这十个实习生的工资高吗? 现在嵌入式专业的泛滥和培训的乱象和十几年前计算机专业的扩张是一样的。那时候也是满大街计算机专业的培训,各个高校大肆扩招计算机专业的学生。我听说有的二本学校当时计算机专业有500人。而那时候也是所谓的“计算机人才大量缺口”,如今嵌入式也只不过是换了个说法而已。 嵌入式人才确实缺,而且缺的很厉害。可是呢,就算是对于一个本科或者研究生毕业的应届生来说,要想直接上手做嵌入式开发基本上不可能,几乎所有公司都要对应届生进行培训。 你以为上了几年大学就了解什么是软件开发了?能写几千行代码的模块不?能掌握上万行代码的逻辑不?真要从软件开发工程师的角度来考察计算机相关专业的应届生,一半以上都是不合格的。所以为什么缺口这么大,工资又不高,因为招不到合适的人。所以原来需要一个合格的工程师做的事情,只好交给几个不合格的毕业生去做,那平摊到几个毕业生头上的工资自然就少了。如果想要高薪,必须要有一定的知识储备,还要有项目经验,在华清远见星创客进行培训,能学到很新的嵌入式技术和丰富的项目经验,找工作有非常大的帮助,学完还有推荐工作。 大学生早就不是什么天之骄子了,放低心态吧,每年大学生毕业的有几百万上千万,在中关村的马路上扔个砖头砸中十个人里能有七八个都是大学生。大学生读几年书算什么,连农民工都不一定比的上,人家农民工是几年工作经验。 中国高校里确实有一些(比如top 10)能培养出合格的嵌入式工程师,所以也能见到嵌入式应届生毕业拿10K甚至更高的相对较少(华清远见星创客学员除外),而通过华清远见培训,工作过2年以上的成熟工程师月薪30K的却随处可见。 嵌入式工程师薪资待遇为何高低不等:刚开始相对较低,坚持两年就是胜利!

全国计算机等级考试四级嵌入式系统开发工程师模拟题完整全套(无答案)

全国计算机等级考试四级嵌入式系统开发工程师模拟题完整全套(无答案) 一、编程开发能力: 1、用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题);写一个“标准”宏MIN函数,这个宏输入两个参数并返回较小的一个。 2、用变量a给出下面的定义: (1)一个整型数(An integer); (2)一个指向整型数的指针(A pointer to an integer); (3)一个指向指针的指针,它指向的指针是指向一个整型数 (A pointer to a pointer to an integer); (4)一个有10个整型数的数组(An array of 10 integers); (5)一个有10个指针的数组,该指针是指向一个整型数的 (A array of 10 pointers to integers); (6)一个指向有10个整型数组的指针 (A pointer to an array of 10 integers); (7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument re turns an integer); (8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 (An array of 10 pointers to functions that take an integer argum ent and return an integer); 3、关键字volatile有什么含义?并举出三个不同的例子。

嵌入式工程师试用期工作总结

嵌入式工程师试用期工作总结 篇一:嵌入式个人工作总结 学号:114116001203姓名:马冯生 1.个人工作 (1)结合138 使用手册,以及嵌入式系统相关的综述类书籍,对于嵌入式系统所需的硬件和开发环境有了直观的了解。并在私下安装虚拟机,在其上安装操作系统,加深对于嵌入式的理解。 (2)学习了系统下相关的命令。 (3)对于教学实验箱说明书进行仔细阅读,理解了箱上各个模块对应的功能,研究了外围接口的特性以及硬件编程的原理。 (4)对于源程序中设计的,补充了相应的知识。 (5)对于直流电机的相关原理以及对其进行控制的技术进行了复习。 (6)对于源代码中直流电机转速的

控制语句进行了研究。 (7)对于交通灯的工作原理进行了了解,掌握了对其进行灵活控制的方法。 2.遇到的问题 (1)本组的成员都没有学过,所以在对于源代码的分析中遇到了不小的挑战,很多指令都难以理解其含义和作用,所以我们小组成员利用实验的间隙,通过阅读相关资料,理解了特定指令所具有的作用,为后面灵活运用代码进行程序的改编打下了基础。 (2)由于对程序的运行流程并不熟悉,在实际操作中经常会遗漏一些环节。例如,在运行到了时,我们所设想的直流电机并没有想象中的结果,最后经过逐一的排查,发现我们并没有编译程序。 (3)在运行过程中遇到了,导致蜂鸣器一直处在工作的状态,系统控制端出现重新启动的状态。通过我们小组成员的讨论和实验,发现在按下9键后,程序中有蜂鸣的代码效果,从而解决了这个问题。

3.个人工作评价 首先,由于知识的欠缺,我利用课后时间,对于系统,微机原理,等等进行了恶补,可以说我已经尽力了。但是,更广阔的知识面显然会使我大受裨益。 其次,作为一名材料学院的学生,本身的研究方向与嵌入式可以说关系不大,不过由于当今社会,嵌入式作为一个研究的热点,而且,受益于该技术所使用的各种家用电器和电子设备充斥着我们生活的方方面面,因此,我满怀着憧憬与期待的选择了这门课。在课堂上,老师对于嵌入式系统的软件和硬件的构成的讲解,使我对这门学科开始有了了解,而课后的相关知识的补充强化了我的理解。在最后的实验课中,第一次接触到了嵌入式开发所使用的设备,当第一次程序按照我的指令成功运行后,成功的喜悦难以言表。作为绝对的新手,在实验中难免要同组的同学多多提点,但在某些环节,我也有自己的优势,也对于这个团队做出了我应有的贡献。在

嵌入式软件工程师笔试题

笔试题 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

相关文档
最新文档