当前位置:文档之家› 嵌入式软件开发工程师

嵌入式软件开发工程师

嵌入式软件开发工程师
嵌入式软件开发工程师

嵌入式软件开发工程师

岗位职责岗位职责:

1、开发维护光网络产品嵌入式软件;

2、按照研发流程要求,完成软件的详细设计,代码实现,单元测试,集成测试;

3、对开发的软件质量和进度负责。

福利待遇:

1、五险一金(养老保险、医疗保险、失业险、工伤险、生育险,住房公积金);

2、年终奖及过节费;

3、提供各种培训机会;

4、公司设有员工宿舍、食堂免费三餐及图书馆;

5、定期为员工安排健康体检;

6、组织各种大型集体活动增加团队凝聚力(如:旅游、运动会、年度联欢、体育比赛等)。

岗位要求任职要求:

1、通信、计算机、电子、软件工程等相关专业本科以上学历;

2、熟练掌握RTOS(WINCE、Linux等)之上的嵌入式软件开发;

3、熟悉数据通信原理,熟悉VLAN,STP等相关二层协议;

4、从事过以太网、光通讯产品开发经验者优先,

5、有通信、计算机网络协议开发经验者优先(包括路由器、交换机、IP语音网关等设备的开发经验);

6、够熟悉使用51系列、ARM系列微处理器,熟悉TCPIP、SNMP协议技术者优先;

7、有自组网mesh设备开发经验优先考虑;

8、具有强烈的责任心及团队合作精神,具有较强的沟通及协调能力。

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式底层软件开发方法

嵌入式底层软件开发方法 自从20世纪70年代单片机出现以来,嵌入式系统已获得了较为深入的研究, 提出了一些嵌入式软件的开发方法,但嵌入式系统仍处于发展阶段,嵌入式系统 已经显示出广阔的应用前景。 1.嵌入式系统的定义 嵌入式系统又称为嵌入式计算机系统,是指嵌入到对象体系中的专用计算机系统。对象系统则是指嵌入式系统所嵌入的宿主系统,嵌入性、专用性与计算机系统 是嵌入式系统的三个基本要素。嵌入式系统通常被描述为:以应用为中心,以计 算机技术为基础,软硬件可剪裁,适应于应用系统对功能、可靠性、成本、体积和 功耗有严格要求的专业计算机系统。 2.嵌入式系统的发展历程 嵌入式系统是在硬件和软件交替发展的支撑下逐渐趋于稳定和成熟的,它有着 悠久的历史。从20世纪70年代单片机的出现到现在各种嵌入式微处理器、微控制 器的大规模应用,嵌入式系统己经有了30多年的发展历史。纵观嵌入式技术的发展,大致经历了以下几个发展阶段。 (1)无操作系统阶段:主要是以功能简单的专用计算机或单片机为核心的可编 程控制器形式存在的系统,具有监测、伺服、设备指示等功能,一般没有操作系统 的支持,通过汇编语言编程对系统进行直接控制。主要特点是:系统结构和功能都 相对单一,处理效率较低,存储容量较小,几乎没有用户接口,比较适合于各类专 用领域。 (2)以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统:主要特点是出现 了高可靠、低功耗的嵌入式处理器,嵌入式操作系统能运行于各种不同类型的微处 理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;片上系统(System On Chip,SOC)使得嵌入系统越来越小,具有大量的应用程序接口,开发应用程序简单,应用软件丰富。 3.嵌入式系统的构成及其特点 1)嵌入式系统的组成 嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件 系统等组成,具有专用性、可嵌入性、实时性、可移植性和分布式等特点。其中, 嵌入式微处理器是嵌入式硬件系统的核心部分,它担负着控制、协调系统工作的重 要任务,通常具有实时多任务处理能力、中断处理能力、存储器保护能力和低功耗 能力;支撑硬件主要包括存储介质、通信部件和显示部件等;支撑硬件的驱动程 序、操作系统、应用软件等一起构成嵌入式软件。

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

软件工程师简历范文

软件工程师简历范文 简历如同是软件工程师求职者的广告和说明书,下面是带来的关于软件工程师简历范文的内容,欢迎阅读! 软件工程师简历范文(一) 姓名: diyifanwen 国籍:中国 目前所在地:湖南 民族:汉族 户口所在地:湖南 身材: 170 cm 63 kg 婚姻状况:未婚 年龄: 22 岁 培训认证: 诚信徽章: 求职意向及工作经历 人才类型:应届毕业生 应聘职位:软件工程师:JAVA软件工程师、互联网开发工程师:WEB开发程序员、软件测试工程师:软件测试工程师 工作年限: 0 职称:无职称 求职类型:全职 可到职日期:随时

月薪要求: 20xx--3500 希望工作地区:广东省浙江湖南 个人工作经历: 公司名称:上海杰普软件公司 起止年月:20xx-06 ~ 20xx-07 公司性质:民营企业 所属行业:计算机业 担任职务:程序员 工作描述:参与电信收费系统的开发,负责其中的信息采集系统模块的设计编写,与团队成员配合协调,共同完善优化系统。 离职原因: 教育背景 毕业院校:中南大学 最高学历:本科 获得学位: 学士 毕业日期: 20xx-07-01 所学专业一:计算机科学与技术 所学专业二: 受教育培训经历: 起始年月终止年月学校(机构) 专业获得证书证书编号

20xx-09 20xx-07 中南大学计算机科学与技术本科 语言能力 外语:英语良好 国语水平:优秀 粤语水平:一般 工作能力及其他专长 熟练掌握JAVA 面向对象编程; 熟悉 J2EE 架构,熟练掌握 Struts ,MyEclipse 等主流 WEB开发框架和开发工具 熟悉Oracle 、Mysql数据库的使用,熟悉PL/SQL 语言 熟练掌握HTML ,JavaScript ,JSP 等网页技术 详细个人自传 具有较强的适应能力,能够快速融入团队; 相关知识掌握牢固; 有良好的项目管理能力和沟通能力; 学习能力强,对工作充满热情,头脑灵活,责任心强,能够和团队有效沟通; 未来规划:熟悉公司团队项目的实际需求,并精通相关技术,提升项目管理能力和沟通能力,为团队的进步贡献力量,立志成为能够带领团队不断前进的中高层人员。

嵌入式系统

第一章绪论 1.嵌入式系统的定义、特点和分类 2.嵌入式操作系统 3.嵌入式系统的选型 4.嵌入式系统的发展趋势 5.嵌入式系统的关键技术 6.嵌入式系统的应用 思考与练习 1.什么是嵌入式系统?嵌入式系统的特点是什么? 2.请说出嵌入式系统与其它商用计算机系统的区别。 3.嵌入式系统的关键技术有哪些? 4.请说明嵌入式系统技术发展及开发应用的趋势。 5.你知道嵌入式系统在我们日常生活中哪些设备中应用?说明其采用的处理器是什么?采用的哪一个嵌入式操作系统? 6.开发嵌入式系统的计算机语言主要有哪几种?分别用在什么场合?7. 嵌入式系统和专用集成电路的关系是什么? 第二章嵌入式系统设计方法 1. 需求分析与系统分析法 2.软硬件协同设计方法 3.嵌入式硬件开发方法 4.嵌入式软件开发方法 5.构件式开发方法 6.软件调试与软件测试方法 思考与练习 1.请说出嵌入式系统设计的主要方法及设计流程。在嵌入式系统开发的总体设计中,需要进行哪几方面的工作? 2.嵌入式硬件调试的主要方法及技术手段有哪些? 3.什么是构件式开发方法?说明该方法对嵌入式系统开发具有什么意义,并举例说明。4.需求分析阶段分为哪几个步骤?每个步骤完成什么工作? 5.在进行系统设计时,概要设计和详细设计的工作内容有什么不同? 6.在嵌入式系统实现阶段,需要选择开发平台,通常开发平台的选择包括哪些内容?7.在当今IT 时代,为了使产品尽快进入市场,就产品开发阶段,你认为有哪些方法可以加快产品的开发速度? 8.什么是“黑盒”测试?什么是“白盒”测试?什么是“灰盒”测试? 9.嵌入式系统开发中,使用软件组件技术有什么好处? 10.什么是知识产权核(Intellectual Property Core,简称IP Core)?指出“软知识产权核(Soft IP Core)”、“硬知识产权核(Hard IP Core)”、“固知识产权核(Firm IP Core)”的意义和差别。 11.根据嵌入式软件开发的不同阶段,嵌入式开发工具有哪些种类? 12.从底层硬件到上层应用,嵌入式软件的开发可以分为哪几种? 13.什么是交叉开发环境? 14.什么是OCD 调试方法?指出OCD 的主要形式JTAG 和BDM 的特点和区别? 15.嵌入式软件的调试运行环境和固化运行环境主要区别是什么?

软件工程师个人简历【三篇】

软件工程师个人简历【三篇】 导读:本文软件工程师个人简历【三篇】,仅供参考,如果觉得很不错,欢迎点评和分享。 篇一 个人信息 姓名: 性别:女 手机:1897275xxx 居住地:广州 工作年限:一年 电子邮件: 求职意向 期望职位:JAVA软件工程师 到岗时间:随时 工作性质:全职 希望行业:计算机软件 目标地点:深圳、广州 工作经验 20xx.9-20xx.9:广州锐盾科技有限公司 所属行业:计算机软件 职位:JAVA软件工程师

项目经验 项目一:ERP企业资源计划管理 项目描述:整个项目的流程按系统架构、需求分析、设计、编码、测试的流程进行,主要模块分为:客户信息、客户服务、日程/任务、项目管理、系统管理、数据字典、消息提醒。 系统没有采用Orcale,MsSql等对服务器配置要求很高的数据库,而是采用最适合中小企业使用的免费开源工具:sqlserver数据库+当前流行的J2EE企业级开发,使产品可运行于Windows、Linux 等任何操作系统之上,同时降低了服务器的配置要求,也降低了用户成本,节省了不必要的开支。 利用Struts规范、清晰的MVC框架将项目层次化,只需编写相应组件、不必再考虑架构的设计,SpringIOC容器实现组件控制关系的转移,一定程度上降低了代码的耦合度;Hibernate主要是O/RMapping的框架,将对数据库的操作转换为对对象的操作,更加符合了面向对象的思想,简化了程序的编写和维护的难度,使用Spring对Hibernate的整合简化了代码,系统架构采用N层架构模式,实现如下: Web层:用JSP,Struts,JSTL,EL,Ajax技术,通过调用业务接口来调用具体的业务组件的实例,而业务组件的实例是Spring的IoC容器取得。 业务层:使用业务委托模式使控制层与业务层实现分离,避免控制层与业务层的耦合带来的维护和升级的困难。

嵌入式软件开发入门教程

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

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

嵌入式软件工程师笔试题

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

软件开发工程师简历

刘 上海闸北区万荣路1188弄 邮编:200120 Email:final_liu@https://www.doczj.com/doc/e42501681.html, 电话:14782 学历:本科 专业:计算机科学与技术 教育背景: 2007.9-2011.6 山东理工大学计算机科学与技术本科 2010.6-至今上海杰普软件科技有限公司实习工程师 在校期间学习过《数据结构》、《数据库管理》、《软件工程》、《计算机网络》、《汇编语言》、《Java程序设计》、《https://www.doczj.com/doc/e42501681.html,》等课程,并做过多项课程设计。 个人情况: 性别:男专业:计算机科学与技术 年龄:23 英语:4级 籍贯:山东德州 爱好:听音乐,打篮球,看书,上网。 择业目标: C/C++网络软件工程师(上海) 未来短期内完全以从工作中获得更多知识为首要目标,不断充实自己,让自己的专业技能层次越来越高。

专业技能: ●熟练掌握Linux操作系统、理解Linux操作系统的启动流程并熟练掌握Linux操作 系统基本配置和管理。 ●掌握简单的Shell程序设计技术,能应用shell编写Linux的管理脚本。 ●熟练掌握c/c++开发语言,对Linux平台上C/C++程序运行机制和内存管理有 深刻认识并深刻理解C/C++程序的常用资源管理技术。 ●熟悉Linux文件系统结构和设备管理思想,掌握Linux的多进程程序开 发技术,包括进程同步管理、进程间通信方法(信号量、消息队列、管道、共享存储)、信号处理方法和软件中断控制技术、POSIX的线程并发和同步管理,能熟练使用POSIX标准的API完成上述技术开发。熟悉TCP/IP,UDP等网络协议,并能熟练进行Socket编程。 ●熟练掌握Linux平台上基于TCP协议和UDP协议的网络程序开发技术。深刻理解并 发服务器程序的设计思想和开发技术。 ●了解Linux平台上驱动开发技术,驱动中的资源管理原则和方法。并编写过 基于S3C2440的开发板相关驱动程序。 ●熟悉ARM核体系结构和ARM汇编语言,掌握汇编语言和C语言的混合编程技术。 ●了解GNU工具链和VI,并能利用gnu工具链完成程序开发和调试。 ●掌握Linux平台工程管理方法和Makefile的编写技术。 ●了解嵌入式开发板的U-BOOT, linux kernel移植技术和busybox的文件系统构建 技术。 ●参与了若干嵌入式linux项目开发,掌握嵌入式项目基本开发流程。 ●英语等级:CET—4,能流利阅读各种英文材料。 项目经历: ◆智能网络监控系统: 项目描述:该系统分客户端和服务器端,客户端由arm处理器,基于usb接口的摄像头构成,主要用于楼宇,道路安全监控。客户端通过网络将监控信息传送给服务器端处理。服务器端由Linux系统构成,负责监控信息分析处理,能够帮助用户快速过滤以及定位监控信息。该系统涵盖了引导程序设计, C/C++语言的socket程序设计,图像视频编解码技术,QT图形程序库。

嵌入式系统软件开发和设计流程复习课程

* 本文由hquwgz贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 嵌入式系统及应用 第九章嵌入式系统软件的开发 主要内容 嵌入式软件开发工具嵌入式系统开发模式实时软件分析设计方法 第一节嵌入式软件开发工具 嵌入式软件开发工具的分类嵌入式软件的交叉开发环境嵌入式软件实现阶段的开发过程嵌入式软件开发工具的发展趋势 / 嵌入式软件开发工具 “工欲善其事,必先利其器”嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。 嵌入式软件开发工具的分类 嵌入式软件开发阶段 嵌入式软件开发工具的分类 根据不同的阶段,嵌入式软件开发工具可以分为: 需求分析工具(Requirement Analysis Tools)软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等 Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST … Phases Requirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品 嵌入式软件开发工具的分类 嵌入式软件的开发可以分为以下几种: 编写简单的板级测试软件,主要是辅助硬件的调试开发基本的驱动程序开发特定嵌入式操作系统的驱动程序(板级支持包)开发嵌入式系统软件,如:嵌入式操作系统等开发应用软件 嵌入式软件开发工具的分类 从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为: 与嵌入式OS相关的开发工具,用于开发: ` 基于嵌入式OS的应用部分驱动程序等 与嵌入式OS无关的开发工具,用于开发: 基本的驱动程序辅助硬件调试程序系统软件等 嵌入式软件的交叉开发环境 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: 文本编辑器交叉编译器交叉调试器仿真器下载器等 交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 运行平台Target ]

嵌入式软件工程师简历

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

软件开发工程师简历模板

软件开发工程师简历模板 自我评价 具备创新意识、能独立分析和解决问题、具有较好的动手能力,对待工作细致负责、组织管理能力强。善于学习新技术,肯钻研,肯吃苦,纪律观念极强,为人正直,乐于助人,善于与他人协同工作。 具备项目的开发和管理经验,曾经参与多个实际项目的开发,对项目整个开发流程熟悉,始终贯彻以用例为驱动,以体系结构为核心,增量和迭代式开发的思想。能够协调组员共同工作,使整个团队上下一条心,共同进步。 本人性格开朗,为人谦和,注重事实,讲究时效。个人的奋斗目标是成为一名优秀的项目负责人。 我将以饱满的热情投入到工作岗位。相信您的信任和我的实力将为我们共同的未来带来共同的成功! 求职意向 工作性质:全职 希望行业:通信及IT企业(中等规模以上) 应聘职位:软件开发工程师、技术支持工程师、软件测试工程师及相关行业 教育经历 软件开发工程师 2003/07—2004/07 武汉东湖新技术开发区英泰移动 通软件培训学校 1996/09--2001/07 中南财经政法大学计算机会计(本科) 证书情况 1998/09 全国计算机等级二级证书 1995/09 全国计算机应用技术证书 工作经验 2001/02—2003/02 武汉盈丰投资顾问有限公司 所属行业:金融(银行、风险基金) 所属部门:电脑部 担任职务:网管 主要职责:负责公司网站整体构架、数据库设计、程序编码和维护以及内部局域网管理维护2000/05—2000/11 武汉春秋国际旅行社 所属行业:旅游业 所属部门:电脑部 担任职务:网页设计/程序设计

主要职责:主要从事公司主页设计/内部软件编码 1997/04—2000/04 武汉市瑞得工贸发展有限公司 所属行业:钢材贸易 所属部门:销售部 担任职务:销售代表 主要职责:主要负责钢材销售、库存管理、财务结算 1996/06—1997/03 武汉市科汉电脑公司 所属行业:IT企业(硬件) 所属部门:技术部 担任职务:技术工程师 主要职责:从事计算机硬件安装调试及售后服务 IT 技能 1.掌握面向对象技术和工程化编程思想以及OOA&OOD&OOP软件设计和UML; 2.掌握J2EE构架,特别是MVC编程模型; 3.熟悉J2SE,并能在Jdk 1.4.2 + Jboss 3.2.3 + Oracle 9i方案下进行分布式软件开发; 4.熟悉SQL Server和Oracle(PL/SQL)数据库设计; 5.熟悉VB + COM + ASP + IIS 5.0 + SQL Server 2000三层组件开发; 项目经验 2004/03—2004/06 分布式药店管理系统EMS V1.0 软件环境:Jdk 1.4.2 + Jboss 3.2.3 + Oracle 9i 开发工具:Java 项目描述:本次开发将采用国际上通行的J2EE(MVC)开发模式,并最大程度的利用面向 对象技术的特点,将整个系统划分为不同的层次来处理。本次开发的目的是最 大程度的整合药店的资源,并将关键性的数据进行集中的统一管理。规模近似 于中等规模的企业级应用,总的模块数量介于30-60个之间;在开发的后期可 能会随着药店的业务发展而做出相应的调整。根据目前市面上Java应用的情 况看来,以JSP/Servlet为主的网络应用代表了其主流的开发方向,而J2EE 的核心EJB由于其过于复杂,在基础应用中使用的并不是很多,同时 JSP/Servlet的开发其竞争力并不是特别强(在国内市场上),所以本次开发 以J2EE的开发模式为主,整个开发将转为使用以EJB为核心的J2EE(MVC模 式)进行编写工作。系统开发成功后,将考虑把其中的核心模块部分重新改写, 以便能够适应其他应用场合的需要。 团队描述:任开发组组长,小组成员共由六人组成。 责任描述:协助项目负责人管理开发活动并全权负责本小组的开发活动,主要负责架构设 计、数据库设计及部分核心代码的实现。 2004/02--2004/03 企业信息化管理平台 软件环境:IIS+IE6 开发工具:ASP+VB+COM 项目描述:该平台包括系统权限管理、新闻发布、公共论坛、内部邮箱、投票管理、任务 管理等模块,在系统权限管理模块中采用三层组件技术,实现界面和代码的分

嵌入式软件开发流程

.嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。本书在4.1.5节对各种不同的嵌入式操作系统进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

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

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

关于嵌入式系统软件的全过程质量保证精

关于嵌入式系统软件的全过程质量保证 质量是产品的生命 当今随着软、硬件技术的发展,嵌入式系统广泛应用于航空航天、国防军事、电子通信等行业,其中软件也越来越复杂。而这些领域应用特点,决定了嵌入式系统往往是高安全、任务关键的系统,软件的微小瑕疵就可能严重威胁到生命和国家的安全、天文数字的巨额财产损失。这就使得保证嵌入式软件的质量和可靠性,变得至关重要。而在这些领域,对产品质量从来就保持着高度的重视,有将“质量视为产品的生命”的传统。这样,相关行业的高层管理人员和开发人员对于软件的质量也逐渐提高了重视程度。近年来,在组织上,建立了完善的软件测试体系;在开发和测试方法上,建立了中国的软件过程成熟度的评价体系GJB5OO0在自动化工具方面,投入了大量的经费和人员在测试设备的开发、购置和建设方面。应该说,软件作为嵌入式产品主要的组成部分之一,对其质量的重视是目前相关行业的一个共识。 IBM Rational多年来在软件工程和质量保证方面积累了丰富的方法和经验。本文依据部分嵌入式开发机构对软件质量保证工作的一些理解,分析相应开发机构工作中可能的问题,并提出以RUP为核心的全过程质量管理的思想和具体的实现方式,提出不同单位的过程改进方法,以一种渐进的方式,从简单的工作开始,逐渐深入地改进组织的软件质量管理水平。 定义质量 对于任何一个组织,定义共同的对质量的理解是重要的第一步。软件开发组织经常按照一种不精确的、概括的质量观念来运转。 在IBM Rational统一过程中,质量定义如下: 满足或超出认定的一组需求; 使用经过认可的评测方法和标准来评估; 使用认定的流程来生产。 在这个定义中,我们首先看需求,IBM Rati onal的软件质量在用户需求方面的定义分为五个方面:易用性、可靠性、性能、可支持和功能。 质量保证,归根结底就是为客户提供更高品质的产品,更好地满足客户的需求。另一方面,这个质量定义中明确指出,质量更体现在软件开发的整个过程和一个标准的评价方式上。 软件开发过程质量就是指为了生成工件而对可接受流程的实施和遵守程度,体现在三个层次: 产品本身和用来生产、组装软件产品的零部件质量; 在软件开发过程的标准化、流程化、自动化程度和团队基本协作平台的效率,各个过程对质量的承诺; 软件产品验收的评测手段应该是被业界广泛认可和接受的方法,所构筑的质量评价标准。 一个软件生产企业的过程质量一般可以用它的软件过程成熟度等级来评估。 RUP全过程质量保证 Rational Unified Process (RUP是一个可以通过Web来使用的软件工程过程。作为软件工业事实上的标准,它回答了我们以下问题:在整个软件开发的各个过程中,谁(角色)应该在什么时候(详细工作流程)做什么(任务)和产生什

java开发工程师简历

求职意向:java软件工程师 工作经验:2年 到岗时间:一周之内 期望薪资:面议 个人信息 年龄:25岁邮箱: 手机: 现居地:北京通州 专业技能 ?熟悉掌握JavaScript,Ajax,jQuery,JSON等前台技术并能够熟练使用EasyUI,zTree,ECharts等插件 ?熟悉掌握Servlet,Cookie,Session,JDBC,JavaBean,EL表达式,JSTL 等技术,深入了解MVC开发模式 ?熟悉使用Struts2框架,包括拦截器,OGNL表达式,Ajax并熟悉Struts2的工作流程 ?熟悉使用Spring框架,包括IOC和DI,AOP编程,声明式事务处理以及代理模式 ?熟悉使用Hibernate框架,包括一对多,多对多的对象关系映射,HQL,对象状态转换,数据缓存等 ?熟练运用SpringMVC,Mybatis 进行项目开发,掌握shiro 安全框架 ?熟悉使用MySQL和oracle数据库,使用其编写复杂的SQL语句,具有Mysql数据库的优化经验;掌握redis数据缓存技术 ?熟悉使用MyEclipse、HBilder,PLSQLDevelopment等开发工具,熟悉使用maven 项目管理工具,以及SVN 服务器的使用 ?熟悉Tomcat服务器的应用部署和集群配置

工作经历 毗邻智慧软件开发科技有限公司 担任职位:java软件开发师 ●初期主要实现项目的维护和个性化需求的搜集整理 ●完成项目模块的编码和测试工作 项目经验 项目名称:泉翼达商城 框架构建:Spring + SpringMVC + Mybatis + Mysql + zTree +PageHelper+ + EasyUI +CKeditor+Nginx+Redis 项目描述:此系统主要实现的功能是用户网上预订果蔬功能,包括交易系统和后台管理系统、会员系统、积分系统、支付系统、物流系统、单点登录系统 功能模块:商品信息展示、购物车管理、订单管理、用户管理、商品管理、积分管理、支付管理等功能模块 项目职责: ?负责了此系统的商品信息模块和商品管理模块的用户需求分析,完成了文档的设计与编写 ?前台交易系统负责了商品信息模块和购物车管理模块的代码编写,实现了商品基本信息(如商品预览、商品明细、分类检索)的功能,以及购物车管理模块(实现添 加商品、删除列表、数量修改、清空购物车、结算功能) ?后台管理系统负责商品管理(实现商品列表、商品发布、商品删除、商品修改功能)和用户管理模块(实现登入/登出、用户注册、信息修改功能)

嵌入式软件开发流程

嵌入式软件的开发流程 嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以此满足系统对功能、成本、体积和功耗等要求。最简单的嵌入式系统仅有执行单一功能的控制能力,比如说单片机的应用,在唯一的ROM 中仅有实现单一功能控制程序,无微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC几乎一样的功能。实质上与PC的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM 和/或FLASH存储器中,而不是存贮于磁盘等载体中。很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。 近些年来,随着以计算机技术,通讯技术为主的信息技术的快速发展和Internet 的广泛应用,传统的控制学科正在发生变革,出现了许多新的生长点。伴随而来的一个现象是控制专业的相当多的学生在毕业后进入了计算机,通讯行业,以致有人说学控制没有用,自动化专业可以取消了。这些情况的出现使我们控制教育工作者反复思考,传统的控制应如何拓宽它的领域?控制专业应该教什么才使学生感到有用?流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE及其新版本,SUN公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。 另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI 的pSOS,QNX系统软件公司的QNX,ATI 的Nucleus,中国科学院凯思集团的Hopen嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。Linux 是90年代以来逐渐成熟的一个开放源代码的操作系统。PC机上的Linux 版本在全球数以百万计爱好者的合力开发下,得到了非常迅速的发展。90 年代末uClinux,RTLinux 等相继推出,在嵌入式领域得到了广泛的关注,它拥有大批的程序员和现成的应用程序,是研究开发工作的宝贵资源。 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。

相关主题
文本预览
相关文档 最新文档