嵌入式软件工程师学习指南

嵌入式软件工程师学习指南
嵌入式软件工程师学习指南

嵌入式软件工程师学习

1. 嵌入式软件课程体系

自学嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较大的。嵌入式的应用主要是几个方向:

一是系统开发:侧重开发环境搭建、内核原理、交叉编译等;

二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用;

三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。

不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。

嵌入式课程的目标,想自学完课程,要掌握以下知识点:

◆Linux命令、工具和C编程基础

◆嵌入式Linux C语言强化

◆嵌入式Linux上的C编程训练

◆Linux高级编程及编程训练

◆嵌入式ARM处理器体系结构及编程训练

◆嵌入式Linux内核环境搭建和编程训练

◆嵌入式Linux驱动理论及驱动程序开发训练

◆Android应用研究和系统开发

◆Android体系结构和系统移植

◆嵌入式ARM Linux项目实践和训练

嵌入式软件方面最重要的课程包括:

(1)嵌入式微处理器结构与应用

这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM 处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C 语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人

员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

(2) 嵌入式操作系统类课程

除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM 9上的,一般是将Linux 2.4.18内核移植在其上,可使用更多的Linux 功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如 uClinux 就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。我院在该嵌入式Linux 方面的课程系列是:本科生操作系统必修课,然后是Linux程序设计选修课,最后是嵌入式Linux系统选修课。我院在Linux方面目前已有较强力量,魏老师和张老师熟悉Linux开发,金老师和唐老师熟悉Linux系统管理。

第三类、 Windows

CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以我院学过Windows程序设计课程的同学都不会有多大难

度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE 开发难度远低于嵌入式Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE 是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点,WinCE还有两个特殊版本,一个是MS Pocket PC 操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?我院可能是全国高校中唯一一家开设专门的“Windows CE嵌入式操作系统“课程的学校,这主要是基于以下原因:我院本身前面便有Windows程序设计课程,同学学过VC++后再学WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS 的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多。嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑。

此外,微软亚洲研究院对我院WinCE课程的支持计划,我们也很希望将来我院能有同学通过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。

总结

关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,则我院的WinCE课程是最好的选择。

(3) 嵌入式开发的其它相关软件课程

搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:

A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG 编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此,我院已预订了一位能开设数字图像处理课程的博士。

B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。

C、网络与信息安全技术:如加密技术,数字证书CA等。我院有这方面的选修课。

D、DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

(4)嵌入式开发的相关硬件基础

对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微

处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。

我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

2. Window CE操作系统

Windows CE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。

WinCE 4.0及其以后的版本开始用windows https://www.360docs.net/doc/3813903536.html,这个名称,比如https://www.360docs.net/doc/3813903536.html,4.0、Win https://www.360docs.net/doc/3813903536.html,4.2、https://www.360docs.net/doc/3813903536.html,5.0、https://www.360docs.net/doc/3813903536.html,6.0等,而之前的版本1.0 2.0 3.0用的是windows CE这个名称,一般就叫wince1.0、wince2.0、wince3.0。

现在最新的版本是https://www.360docs.net/doc/3813903536.html, 6.0,而windows mobile是从wince发展出来的一个用于手机开发的嵌入式操作系统。

说起Windows CE,其实很多人心里都很迷惑,它有很多版本,而且从Windows CE本身,也发展出了很多专用于掌上电脑、手持设备等方面的系统,比如ppc等。这里我们先从版本上来看一下整个Windows CE的发展历程,它与ppc以及Smartphone的瓜葛我们将在以后的帖子里详细讲解~~总结的不对的地方也希望坛友们帮忙指正哦:)

一、Windows CE是什么?

Windows CE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,W indows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consum er)、通信能力(Connectivit)和伴侣(Companion);E代表电子产品(Electronics)。

与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于WI N32 API重新开发、新型的信息设备的平台。Windows CE具有模块化、结构化和基于Win32应用程序接口和与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visu

al C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。

二、Windows CE都有哪些版本?

Windows CE的核心至今已经有1.0、2.0、3.0三种版本,若细分小改版则是不计其数,因为Windows CE并非是专为单一装置设计的,所以微软为旗下采用Windows CE作业系统的产品大致分了三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。自3.0以后,Windows CE从版本上来看主要有4.0、4.2和5.0。

WinCE1.0

WINCE1.0是一种基于Windows95的操作系统,其实就是单色的Windows95简化版本。9 0年代中期卡西欧推出第一款采用WinCE1.0操作系统的蛤壳式PDA,算是第一家推出真正称得上手掌尺寸的掌上电脑厂商。作为第一代的WinCE1.0于1996年问世,不过它最初的发展并不顺利。当时Palm操作系统在PDA市场上非常成功,几乎成为了整个PDA产品的代名词,在这种情况下,微软公司被迫为最初WinCE的不断改进的同时,微软公司也通过游说、技术支持、直接资助等手段聚集了大量合作厂商,使WinCE类的PDA阵容越来越强大。

WinCE2.0

随着Windows95的出现和Windows98的成功,另外一个巨人—微软站起来了,并迅速地在PC操作系统业界建立了微软帝国。PDA市场的发展潜力被众多分析家看好,嗅觉异常灵敏的“微软”自然不会放过这样一个巨大的市场,在其操作系统帝国已经非常稳定的前提下,又开始了在PDA市场上的全力冲刺,用WinCE2.0操作系统来打造与Palm非常类似的掌上产品。

WinCE2.0不仅比CE1.0快的多,而且的彩色显示,又众多新型PDA采用新的WinCE2.0系统,大有取代Pilot的趋势,成为PDA操作系统新的标准。尽管CE2.0仍然要比Pilot

的操作系统需要的空间要大的多,但它具有Windows的界面,会用PC的人小编估计没有多少人不会使用微软的操作系统。如果你熟悉Windows95,在使用Windows CE的时候就熟门熟路了,就不需要重新学习。而且,两者技术上的相似性,第三方Windows应用软件开发商们,就可以很容易地把自己的应用软件转换成可供CE运行的版本,因此,Windows CE的可使用软件的种类将会越来越多的。

WinCE3.0

WinCE3.0是微软的Windows Compact Edition,是一个通用版本,并不针对掌上产品,标准PC、家电和工控设备上也可以安装运行,但要做许多客户化工作,当然也可以做掌上

电脑。微软鼓励大家在任何硬件平台(WinCE3.0支持5系列CPU: x86, PowerPC, ARM ,MI PS,SH3/4) 上使用(为了和VxWorks,Linux等竞争),所以早期的WINCE运行在不同的硬件平台上。WinCE3.0 Licence费用为$20 ,10 Licence起,批量时大致能降到$15/Licence。

2000年微软公司将WinCE3.0正式改名为Windows for Pocket PC,简称Pocket PC。就是把Pocket Word和Pocket Excel等一些日常所需的办公软件的袖珍版装了进去Pocket P C,同时在娱乐方面的性能做很大的加强。当然对于微软的所有举动,捧场的厂商自然也不会少,加入Pocket PC 阵营的现在就有HP、Compaq、Casio等一些著名厂商。当Compaq的iPAQ 3630的诞生和在市场的热销,支持和加入Pocket PC阵营的厂商就越来越多。2002

年智能手机商机再现,不少PPC厂商希望推出整合手机功能的PPC,于是在2002年8月,专门为手机优化过的微软Pocket PC 2002 Phone Edition操作系统匆匆问世,2002年10月,国内第一款PPC手——多普达686上市了,随后熊猫推出了CH860、联想推出ET180。(注:低于3.0的Windows CE没有手机版本,关于Pocket PC(ppc)的话题,这里先暂停下,后面会讲到)。

WinCE4.0

https://www.360docs.net/doc/3813903536.html,(即WinCE 4.0)是微软于2002年1月份推出的首个以.Net为名的操作系统,从名字上我们就可以知道它是微软的.net的一部分。https://www.360docs.net/doc/3813903536.html,是WinCE3.0的升级,同时还加入.Net Framework精简版,支持蓝牙和.Net应用程序开发。

WinCE4.2

Windows https://www.360docs.net/doc/3813903536.html, 4.2是Windows https://www.360docs.net/doc/3813903536.html, 4.0/4.1的升级版,对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,基于其开发的设备将从这些微小但重要的变化中获得更好的性能和更强的Windows集成功能。微软在WinCE4.2版时曾提供开放源代码,不过只针对研究单位,而程序代码较少,为200万行。

WinCE5.0

WinCE5.0在2004年5月份推出,微软宣布WinCE5.0扩大开放程序源代码。在这个开放源代码计划授权下,微软开放250万行源代码程序作为评估套件(evaluationkit)。凡是个人、厂商都可以下载这些源代码加以修改使用,未来厂商OEM时,则再依执行时期(Run-time)授权,支付Win CE5.0核心每台机器3美元的授权费用,这也是微软第一个提供商业用途衍生授权的操作系统。

wince6.0

wince 6.0是微软于06年11月份推出的,也是目前wince的最高版本。微软在wince 6.0推出时宣布完全公开内核源代码,这是微软难得的大动作,主要是迎击Linux、Wind R iver阵营长期以来对其定制化不足的攻击。微软硬件合作伙伴可以修改源代码开发定制化的文件系统、设备驱动程序与其他元件,而不需分享他们的最终设计给微软或第三方。(注:开源不等于免费,使用wince6.0进行嵌入式开发,用户仍需要为开发工具platform build er付费,为开发板厂商提供的bsp开发包付费,还要为生产的产品付授权费。所以总体来说,该花的钱一分也不会少,只不过以前花了钱也不给源代码,现在花了钱能给源代码了。)另外,Visual Studio Visual Studio 2005专业版也被包含在Win CE 6.0的开发工具中,而Platform Builder成为Visual Studio 2005专业版的外挂程序(plug-in),协助设计人员完成从嵌入式操作系统定制化到应用程序开发等所有工作,缩短产品开发的上市时程。微软称,WinCE 6.0可同时支持32,000个程序和每个程序高达2GB的虚拟内存定址空间,且保有软件的实时(real-time)功能,开发人员可把更多应用程序加入到更复杂的设备中。(作者:华清远见嵌入式培训中心)

3. Windows CE的开发流程

来源:赛迪网-技术社区作者:对手太强

这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面,只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识,解决大家会在实际开发中碰到的一些小问题,让大家了解嵌入式开发与应用程序开发,到底有哪些不同。

Windows CE概述

从6.0版本开始,Windows CE的名字改为Windows Embedded CE,当然这也是为了结合Windows Embedded品牌作出的改变。CE经过了十年的风风雨雨之后,终于在CE 6.0这个版本上再次浴火重生了。CE 6.0经历了CE历史上第二次内核重写,使CE操作系统更加符合当今嵌入式开发的方向。

CE 6.0在内核方面的改变主要是为了适应嵌入式设备硬件发展的要求,在进程数量方面,从过去最多运行32个进程,改变为最多运行3万2千个进程,内存方面从每个进程最多拥有32M虚拟内存空间改为最多拥有2G虚拟内存空间。在OS布局方面,将关键的驱动程序、文件系统和图形界面管理器(GWES)移到了内核中,这样可以更好解决因为CPU在内核态和用户态间切换而造成的性能损失。

当然,从以上的改变,我们可以看到CE 6.0较之前版本更加“重量级”了。操作系统领域关于“微内核”的争论已经持续了很多年,CE的改变也许会为某个学派的观点提供支持。但我们必须指出的是,正因为目前的嵌入式设备硬件已经可以支持比较“重量级”的操作系统了,所以CE 6.0才会做出如此改变。

CE针对开发者的另一个转变开始自CE 5.0,将开发环境Platform Builder整合到Vis ual Studio中,这种做法无疑减轻了微软维护两套IDE的负担,从另外一个方面来看,CE 的开发者也可以享受到更好的开发体验了。

嵌入式开发流程

也许很多初涉嵌入式开发领域的程序员会被一系列的新名词搞得头昏脑胀,在这里,我希望能够将嵌入式开发的流程展现给大家。

嵌入式开发主要分为三个比较大的部分:

1、驱动程序开发

这部分开发是从硬件设计开始的,硬件工程师会设计PCB板,为我们提供标准开发板(S DB,Standard Development Board)。当我们拿到开发板之后的第一件事情就是编写boot-loader,让开发板启动起来,一般是通过JTGA将boot-loader烧录到开发板中的。我们可以将boot-loader看作PC中的BIOS,负责硬件设备的初始化工作,并且将操作系统运行起来。在此之后,我们需要根据开发板上的硬件开发各种驱动程序,比如串口、USB、鼠标、视频输入等。最后将这些驱动程序和boot-loader打包,称为一个板级支持包(BSP)。BS P是和开发板的具体硬件紧密相关的。

所以从事这方面开发的工程师往往具有比较强的硬件知识水平。

2、平台定制

我们可以将Windows CE想象为一盒积木,根据不同的应用场景和设备要求,我们要对这盒积木进行定制,堆积出不同形状的城堡、动物和生活用品。这个过程称为“平台定制”,定制产生的平台往往和具体的硬件设备相关,直接将平台下载到硬件设备上就可以运行了。整个开发过程,需要选择不同的组件来搭配出最适合当前硬件的软件平台。所以要对Windo ws CE的组件,也就是Catalog Item,有相当程度的了解。

3、应用程序开发

嵌入式设备上的应用程序开发与传统应用程序开发类似,只是要借助于硬件模拟器或者实际设备对程序进行调试。最常见的嵌入式设备应用程序开发,就是Windows Mobile的移动应用开发。平台定制工程师会在硬件出厂之前先提供平台相关的SDK,SDK中会包括模拟

器。应用开发者可以首先使用模拟器对程序进行开发和调试。等实际硬件出来之后,再将程序转移到实际硬件中。因为Windows CE采用了很多措施,这种“转移”几乎是无缝的,所以我们并没有使用“移植”这个词。

嵌入式领域的应用开发其实是普通软件工程师就可以进行的。

4. 嵌入式软件开发培训

Windows CE应用开发培训班

Windows CE系统定制与驱动开发培训班

Windows Mobile手机应用开发培训班(TSWM0521)

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

嵌入式软件工程师工作要求 无锡市瑞丰精密机电技术有限公司 任职要求: 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/3813903536.html,,Eclipse等开发环境。 2、熟悉51和ARM7架构及其软件开发和仿真调试。 北京北科亿力科技有限公司 职位描述: 电子或嵌入式软件工程师 一、岗位职责: 1、负责公司电子、工控、仪表等硬件产品的研发、优化及相关技术文档的编写; 2、负责嵌入式软件的设计、编程、测试及技术文档的编写; 3、负责公司新产品知识产权文档的编写和申报; 4、完成上级领导交办的其它工作任务。

《蒹葭》教学实录(名师教你如何上好公开课)

《蒹葭》教学实录(名师教你如何上好公开课) (课前播放水边芦苇画面配《在水一方》二胡曲。) 师:有这样几句诗,大家可能听过:“关关雎鸠,在河之洲。窈窕淑女,君子好逑。”你们知道这些诗句出自哪一本书吗? 生(齐):《诗经》。 师:没错,出自《诗经》。中国是一个诗的国度,中国古典诗歌灿若星河,佳篇如林。今天我们要学的《蒹葭》也出自《诗经》。这是一部怎样的书呢? 生1:是我国的第一部诗歌总集。 师:对这本诗集我们还有哪些了解? (屏显《诗经》简介。) 师:今天我们要学的《蒹葭》出自《诗经·秦风》。这说明它来自于哪里? 生(齐):民间。 师:对,来自于民间。也就是说它是一首民歌,是最有生活气息和生命力的。下面,我们就来听读一遍这首诗歌。听读的时候注意节奏、读音、感情,还要注意它结构上的规律,并看看我国古代的民歌都有些什么特点。 (师配《在水一方》二胡曲诵读,学生聆听。) 师:老师发现你在听读的时候摇头晃脑,非常陶醉。对这首诗你一定很有感觉吧,说说你的感受。 生1:我觉得这首诗开头所写的景物很美。 师:噢,景物之美。其他同学还有什么发现吗?可以从诗的结构或是韵律方面谈谈。

生2:这首诗有三个小节,每个小节都押韵。 师:押的什么韵?举个例子。 生2:“蒹葭苍苍,白露为霜。所谓伊人,在水一方”押“ang”韵。 师:还有其他的韵吗? 生3:还有“i”。 师:能把韵脚找出来吗? 生3:“苍”“霜”“方”“央”押的是“ang”韵;“凄”“晞”“跻”“涘”“已”押的是“i”韵。 师:你真是一个细心的孩子,所有的韵脚都被你找出来了。它是押韵的,景也很美,还有吗?你还发现了什么? 生4:结构很整齐。每个段八句,前两句写景,后六句写人和事。 师:你也有一双善于发现的眼睛。结构很整齐,它一共有多少章?如果是现代诗,我们就会说它有多少节,古代就称为章。也就说,这三章诗的结构是非常一致的,而且又押韵。所以,读起来会给我们什么感觉? 生(众):琅琅上口。 师:这就体现了《诗经》民歌的特色了。现在,请大家美美地自由朗读这首诗。(屏显。) 四言句式;“二二”拍;押韵;运用叠词;重章叠韵。 (生自由诵读。) 师:下面,老师要请一位能代表咱们班朗读水平的男同学朗读一遍,看看能否读出韵味。老师为什么要找男同学来朗读呢? 生1:因为这首诗是男的写给女的。 (生推荐语文科代表朗读。)

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

【个人信息】 姓名: 身高: 性别: 学历: 籍贯: 专业:电子信息工程 联系电话: 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拉低数据线,然后释放数

电子工程师培训课程.doc

课程主题实训内容实训目标Linux开发环境、开发规范培训课时:2天 Unix开发环境Unix系统原理、Unix C开发环境、Unix常用文 件目录管理命令与 网络命令 能使用并管理Unix操作系统,建立并熟 悉Unix /Linux C开发环境。 嵌入式开发语言课时: 11天 标准C开发数据类型,控制语句,自定义数据类型,模块化程 序设计,指针 熟练掌握c基础语法,函数的编写和调用 标准C库C的常用标准库函数errno.h math.h stdlib.h stdio.h等 熟练掌握C标准库函数的调用与灵活应用 数据结构与算法链表,栈,队列,哈希表,二叉树等容器实现常 用搜索算法与 排序算法实现 掌握各种基本数据结构的实现,了解常用 算法,并能在软件开发中灵活应用。 阶段项目基本信息管理系统能独立使用C语言开发应用。 培养良好的编码风格与编码技巧。 Linux应用开发课时: 20天 Linux内核开发Unix/Linux文件服务,IO,内存管理,进程,IPC, 线程,线程同步 掌握Unix/Linux下的基本的开发技术, 了解Linux内核原理。 Linux QT开发QT类结构,常见QT组件,信号与槽,QT设计器, QT2D与3D 掌握QT类库的使用,能开发Linux下的 用户界面。 Linux网络开发Linux下Socket编程,UDP与TCP,TCP下各种服 务器模式,PCAP数 据抓包处理,ARP、IP、ICMP、TCP、UDP协议。 掌握Linux下网络编程技术,能开发网络 通信应用与网络安全应用软件。 Oracle SQL与Pro*C编程DQL语句,DML语句,DDL语句,Oracle函数,视 图,索引,序列等。宿主变量,指示变量,游标 操作,事务处理,SQL操作与动态SQL, 异常处理,SQL与Oracle通信区。 掌握数据库SQL语句。 能进行数据库查询与操作。 能进行SQL数据库编程。 阶段项目网络爬虫:简易搜索引擎的实现掌握基本的应用软件开发能力。掌握程序的分析设计思路。 独立完成简单应用软件的编码。 嵌入式ARM驱动开发课时: 18天 ARM嵌入式开发环境ARM体系结构(包括指令分类,寻址方式、指 令集、存储系统、异常中断处理),ARM嵌入 式开发板硬件设计原理和基本硬件设计流 程。嵌入式Linux基本概念,ARM板的资源 分配,启动模式,Bootloader工作原理,uboot 的烧写,内核的烧写,根文件系统的烧写, uboot的使用指令,嵌入式Linux开发环境的 搭建。 了解ARM体系结构与设计原理,熟练掌 握各种外设的工作原理与驱动机制。 理解bootloader的工作原理, 能熟练使用uboot指令, 掌握s3c6410开发板的uboot、内核、 根文件系统的烧写 能搭建嵌入式Linux开发环境

名师教学实录 (5)

名师教学实录 1数一数 1 引入新课 师:同学们,今天我们一起来学习怎样数图上的物品和人物。下面,哪位同学能从1数到10呢? (有几个同学都很流利地数出来) 师:全班一起数一数吧。(全班齐数)非常流利,不错。 2 教授新知 (出示主题图) 师:我们看到图中有一面国旗,那么可以用什么数字来表示呢? (出示:1) 生:老师,还有一位老师。 师:对!不管是一位老师还是一面国旗,只要是数量只有“一”的,我们就可以用数字“1”来表示。请同学们再观察图,还有哪些物品的数量是“1”? 生:一个足球。 师:请你上来指一指。 (指后全班都说:“对!”) 生:一栋教学楼。 师:对吗?图上是不是只画了一栋教学楼呢?大家看看。(全班都说:“是!”)那我们学校是不是只有一栋教学楼呢?生:不是。 (一个学生边说边用手指着几栋教学楼的方位) 师:你观察得很仔细,我们学校有好几栋教学楼。 生:国旗上有一颗大星星。 师:哦,你看得真仔细!我们看一下国旗,上面是不是有一颗大的星星? (同学们都仔细地看着,然后说:“是!”) 师:同学们都观察得很仔细,上课时也很积极,有不一样的意见时能大胆说出来,这一点非常好。 生1:老师,还有一个足球场。 生2:有一个操场。 (教师把学生们说出来的东西一一写在黑板上) 师:今天,老师发现同学们特别细心,昨天我们只是数了一面红旗和一位老师,这么多的东西都没有数出来,现在你们能说这么多,太了不起了! (出示挂图,全班一齐从1数到10) 师:请大家再看一看,还有哪些物品是我们没数到的?同桌互相说一说。 (学生交流) 师:下面我们来数一数我们身上都有些什么器官,比如:我有1张嘴,2只手。同学们能不能用“我有几个什么”来说一说呢? 生1:我有2只脚。 生2:我有1个鼻子。 生3:我有2只手。 生4:我的这只手有5根手指。

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

嵌入式软件工程师应该知道的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更优化的代码,了解这个用法是很重要的。

《嵌入式软件开发》课程设计报告

《嵌入式软件开发》课程设计报告课题名称:基于ARM11开发平台小球碰撞设计与实现 专业班级:计算机科学与技术

目录 1、使用技术介绍 (1) 2、需求分析 (3) 3、概要设计 (4) 4、详细设计 (5) 5、成果展示 (11) 6、设计总结 (13) 7、附录 (16)

图1.2 1.3 五点校准法 为了方便理解,我们首先引入2个概念,坐标和逻辑坐标。物理坐标就是触摸屏上点的实际位置,我们通常以液晶上点的个数来度量。逻辑坐标就是触摸屏上这一点被触摸时A/D转换后的坐标值。 由于电阻式触摸屏的电压成线性均匀分布,那么A/D转换后的坐标也成线性。假如我们将液晶最左下角点对应的解摸屏上的点定为物理坐标原点A其物理坐标记为(XA=0,YA=0),其逻辑坐标记为(XLA,YLA)(不一定为0)。那么触摸屏上任意一点B的逻辑坐标可表达为:XLB=XLA+KXXB,YLB=YLA+KYYB。其中KX、KY分别为触摸屏X方向和Y方向的因子系数,这就像弹簧一样,拉力与弹簧伸长正比。KX、KY可能为正,也可能为负,这根据具体触摸屏安装的方向和特性。每个液晶触摸屏,我们也应该单独计算每一个触摸屏的K系数。如果A点不是坐标原点,也是任意一点可以表达成:XLB=XLA+KX(XB-XA),YLB=YLA+KY(YB-YA)。我们可以推出计算K系统的公式:KX=(XLB-XLA)/(XB-XA),KY=(YLB-YLA)/(YB-YA)。 在液晶上固定的位置显示五个点,因为是固定的位置,所以这五个点的物理坐标是预知的。这五个点不应太靠边,因为边缘点对应的触摸屏线性一般不太好。 (1)首先在ABCDE对应的位置逐步用尖状物触摸,得到五个点的逻辑坐标。 (2)分别比较A和C、B和D的横坐标,如果差值不在允许范围(你自己规定一个即可,比如5),则重复操作(1)(2)步。 (3)分别比较A和B、C和D的纵坐标,如果差值不在允许范围(你自己规定一个即可,比如5),则重复操作(1)(2)(3)步。 (4)用2组数据计算X向K系数平均值KX={(XLB-XLA)/(XB-XA)+(XLD-XLD)/(XD-XC)}/2(5)用2组数据计算Y系数平均值KY={(YLA-YLC)/(YA-YC)+(YLB-YLD)/(YB-YD)}/2(6)将C点逻辑坐标作为基坐标,根据式2-2则触摸屏上任意一点F逻辑坐标与基坐标的关系为:XLF=XLC+KX(XF-XC)

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

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

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

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

华清远见嵌入式Linux课程

课程名称:嵌入式学院—嵌入式LINUX工程师就业培训班 上课时间为:上午9:00—12:00 下午13:30—17:30 (每天7小时正式上课时间)晚自习18:00—21:00 第一阶段:嵌入式Linux软件工程师 ?职场定位:Linux Development Engineer for Software Engineering ?本期目标:嵌入式系统是现在最热门的计算机应用领域之一,嵌入式C语言在其中起着至关重要的作用。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础和Linux操作系统的使用,并熟练掌握嵌入式Linux的开发环境,为将来的编程工作打基础。

第二阶段:嵌入式Linux系统工程师 ?职场定位:Linux Development Engineer for Embedded Systems ?证书:微软嵌入式工程师认证证书(认证费500元),红帽公司《Linux应用开发工程师证书》(认证费500元) ?本期目标:参加本期培训的学员应该掌握嵌入式C语言编程技巧。嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟悉嵌入式Linux开发流程,强化学员对Linux应用开发的理解和编码调试的能力,同时掌握bootloader和kernel的移植技能,了解ARM体系结构和编程,具备ARM硬件接口的基础知识,并了解Linux内核开发相关内容,初步掌握Linux下的驱动程序开发方法。另外,本期课程还会让学员了解另外一个比较重要的嵌入式操作系统:Windows CE,使学员在掌握嵌入式Linux的同时,也了解Windows CE的开发方法,拓展学员的知识面,丰富学员的知识结构。最后通过几个典型的企业全真案例,进一步巩固本期课程内容,使学员真正学以致用。

嵌入式软件工程师笔试题

(一) 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

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

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

(整理)嵌入式系统开发技术课程

*****************实践教学 ******************* 兰州理工大学 计算机与通信学院 2013年春季学期 嵌入式系统开发技术课程设计 题目:2.4G各信道信号强度测试实验 专业班级:通信工程4班 姓名:牛毅 学号:10250424 指导教师:薛建斌 成绩:

摘要 (1) 前言 (2) 一 CC2530 基本介绍 (3) 1.1.CC2530 芯片基本介绍 (3) 1.2.2 电源引脚功能 (5) 1.2.3 控制线引脚 (5) 1.2.4 增强型 8051 内核 (5) 1.2.5复位 (6) 二 CC2530 RF模块以及信号信道分配模式 (7) 三设计流程 (8) 3.1 CC2530 模块进行简单的点到点无线通信 (8) 3.2 设计原理及说明 (8) 3.3 设计步骤 (8) 3.4 程序流程图 (10) 四测试 (17) 五参考文献 (19) 总结 (20) 致谢 (21)

在嵌入式操作系统上,Linux一直因其内核精简、代码开发、基于移植等特点使得嵌入式能力更加强大。而本设计是嵌入式应用里比较简单的一个实现,是针对嵌入式开发板 CC2530的一个模块进行构建和设计的,要实现的是两个CC2530间的RF的无线通信,并且要对各个信道信号进行监测,嵌入式开发是现阶段,现世界比较流行的开发模式。 在模块设计中,在两个CC2530的RF模块间进行无线通信,并且在无线通信的基础上进行2.4G 频段信道11-26 各个信道的信号强度分析与测试。本次课程设计使用CC2530的RF 射频CC2530RF功能模块及带有RF功能模块的智能主板分析2.4G频段信道11-26各个信道的信号强度。而且测试的效果是通过LED灯的亮灭来进行监测的。 关键词:RF的无线通信、CC2530、2.4G信道信号监测

《老王》名师教(学)案(2课时)

《老王》名师教案 兰勇 (一)核心素养 语言建构与运用:如何通过生活细节来体现人物隐秘情感? 思维发展与提升:如何理解知识分子的情怀? 审美鉴赏与创造:如何通过人物对话来表现人物心理? 文化传承与理解:如何继承中国知识分子的济世精神? (二)设计示例 老王 绛 教学目标: 1.知识与技能:体会细节描写的作用,感受语言风格 2.情感与价值:感悟爱的博大,关爱生活中的不幸者,冶美的情操 3.方法与评价:通过独立阅读,形成自己独特而有创造性的见解。 教学重点:理解把握细节描写的含义及作用。 教学难点:理解知识分子的隐性情感。 课时安排:二课时 第一课时 教学重点:全面把握课文容,感受语言特色。 教学难点:领会从文章语言及人物刻画中渗透出的爱的博大。 预习作业: 1.熟读课文,了解生字词 2.了解绛 3.了解文革情况 4.了解底层劳动者的生存情况 一、导入 1.在生活中,你关注得最多的是什么人? 明星是因为有着耀眼的光环所以我们关注他们。伟人是因为做出了非凡的成就所以我们关注他们。而对亲人我们有深刻的感情所以我们关注……但是在我们

生活中接触得最多的是那些最不起眼的普通人。 2.今天老师就要给你们介绍一个这样的普通人,请看画像(幻灯)。他叫老王(板书),从画像上看,你觉得这是一个怎样的人?有何依据? 皱纹,历尽沧桑 衣着,贫穷 表情,善良 今天就让我们循着著名作家绛女士的笔迹,去体会这个生活在社会底层的老王不平凡的生命历程,去感受作者对老王的感情。 二、整体感知 (一)老王其人 1.请同学们默读课文,初步认识老王,并用课文中的原句填表。 2.老王的生活很苦,所幸他结识了作者一家。老王与作者一家发生很多故事。(二)老王与作者一家

嵌入式软件工程师简历

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

嵌入式软件开发入门教程

C语言是嵌入式软件开发人员必须熟练掌握的编程语言。作为C语言的初学者重点掌握基本数据类型、复合数据类型、流程控制、数组、指针、函数这几方面的基本知识。本人建议通过观看视频教学的方式进行学习,这样既快速又通俗易懂,当然前提是必须找到优质的教学视频资源。此外,可以配合入门书籍谭浩强的《C语言程序设计》进行学习。如果想深入的学习可以参考美国人写的人民邮电出版社出版的《C Primer Plus》。 方法/步骤2: C语言的磨炼 掌握了基本的C语言语法以后并不代表我们就学会了C语言,关键是如何灵活的去运用。我们可以练习编写C语言学习书籍的课后习题或者在网站上搜索C语言笔试题库进行练习。也可以百度寻找经典的C 语言编程案例进行学习。总之,就是将C语言运用的越熟练越好。至于开发环境可以选择VC++ 6.0 或者linux。 方法/步骤3: 硬件电路基础

嵌入式软件工程师还必须懂一些硬件电路的基本知识。当然,对于刚入门的软件开发人员没必要非常精通电路技术,熟悉基本的电子元器件的功能即可。例如,电阻、电容、电感的作用以及符号,三极管、MOS管导通截止的条件,微处理器、晶振的基本概念等。至于,以上这些基本知识我们可以通过童诗白的第四版《模拟电子技术基础》和网上查阅的资料进行学习。 方法/步骤4: 如何看懂原理图 作为嵌入式软件开发人员我们经常会和硬件打交道,我们的程序最终会被烧录到微处理器内部运行。所以,我们必须要会看硬件原理图,看懂之后才知道如何写程序。首先,我们要知道嵌入式硬件最小系统的组成部分,包括电源电路、晶振、微处理器、复位电路。然后以微处理器为中心向四周查看,主要看我们可以操纵的外设资源。以上知识的学习我们不妨经常浏览一下某些知名IT网站其他人上传的经典原理图。 方法/步骤5: 基本外设知识

名师手把手教你写高考作文

名师手把手教你写高考作文 近日,郑州市高考第二次质量预测举行,这次二测材料作文的内容是:一位美籍华裔妇女用中国式教育方法严厉管教孩子,被称之为虎妈并登上了《时代》周刊的封面,从而引起人们对中美教育方法不同观点大讨论的问题,美国一些人对虎妈的做法大加赞赏,而中国孩子的家长们对此做法则产生了困惑和怀疑。 郑州市教育局教研室中学语文教研员、河南省特级教师、河南省高考作文研究专家高全套老师,郑州九中王世来老师、郑州中学李兰老师做客名师会客厅,就这篇作文具体分析,并给下步的高考作文备考提出了宝贵建议,同学们详细读一读,会对你们的高考作文有莫大的帮助。 □东方今报记者朱红珍 ●好作文要有好立意

高全套老师说,这次给出的作文材料,只是列出了不同观点的两种思考,并没有指出谁对谁错,实际上,两种看法各有利弊。正因为它具有两面性,就需要辩证地去看待它,既指出它正确的一面,又要看到他的不足之处。所以,这则材料的最佳立意是:要辩证地看问题,既要看到事物的正面,也要看到它的反面,从而趋利避害。教育问题是这样,社会生活中的其他问题也是这样。所以,表面看,这则材料谈的是教育问题,实际上学生写作时可以延伸到社会生活的各个领域。学生选择素材时,可以写与教育有关的事,也可以写教育以外的社会上的其他事情。可以写记叙文,也可以写议论文或其他文章体裁。只要能够辩证地分析或看待事物,就是符合题意的,辩证地看问题是这则材料的最佳角度,也就是一类卷。内容项的打分在16~20分。 ●二三类作文有点偏 高老师说,二类卷的立意有以下几种情况:只一味地强调要严格要求,比如严师出高徒,棍棒出孝子。或者一味地强调要宽一些,不能严。比如说宽松的环境有利于孩子的成长,严厉教育压抑了孩子的天性等,这些只单纯地强调一个方面、一个角度的文章,都归入二

相关文档
最新文档