文档库 最新最全的文档下载
当前位置:文档库 › 第二十一章嵌入式软件

第二十一章嵌入式软件

第二十一章嵌入式软件
第二十一章嵌入式软件

第二十一章嵌入式软件

2005年,以计算机技术、通信技术和软件技术为核心的信息技术取得了更加迅猛的发展,加上3C(计算机、通讯、消费电子)产业的加速融合及3G移动通信时代的逐步到来,嵌入式软件在国民经济各领域和日常生活中发挥了更加重要的作用。嵌入式软件的发展为几乎所有的电子设备注入了新的活力,各种装备与设备上嵌入式系统软件的广泛应用也大大地推动了其行业渗透性应用。嵌入式软件不仅提高了传统产品的技术含量,更成为产品增值的关键因素,在整个软件产业中占据了重要地位,并受到世界各国的广泛关注,如今已成为信息产业中最为耀眼的“明星”之一。

一、嵌入式软件发展现状

据IDC统计,目前世界范围内嵌入式软件产品产生的工业年产值已超过了1万亿美元。在中国,IT应用的普及也推动了嵌入式软件市场的迅速发展。在中国政府的大力支持下,2005年,中国嵌入式软件市场继续向数字化、智能化、网络化和专业化方向纵深发展,其增长速度极为迅猛。据统计,目前中国嵌入式软件总产值已经达到了上千亿元。

同时,政府有关部门在2005年继续大力支持嵌入式软件的发展,国家发改委、科技部均对相关项目给予了大力支持。

表21-1 部分政府支持嵌入式软件相关项目列表

部委名称 专题或计划名称 项目名称

信息产业部 电子发展基金 3G多媒体信息终端

信息产业部 电子发展基金 基于机卡分离的数字电视应用开发软件化

数字电视接收系统研发

国产智能手机操作系统及软件平台产业化国家发改委 信息产业关键产业

技术产业化专项

科技部 863计划软件重大专

面向3G的智能手机嵌入式软件平台

信息家电嵌入式系统平台研发科技部 863计划软件重大专

二,嵌入式软件应用领域

(一)消费电子

继2004年家用产品芯片销量超过商用芯片后,中国消费类电子产品市场规模持续呈爆炸式增长。据易观国际最新数据显示,2005年中国消费类电子市场规模可达5000亿元,未来3年,将维持25%的环比增长率。到2008年,消费电子产品的市场规模预计将达到8000亿元。

中国拥有巨大的消费电子市场,产品从数码相机到数字娱乐播放器,数字化产品已渗透到人们生活中的方方面面。而嵌入式软件正是这些产品的核心,扮演着极其重要的角色。随着消费电子的市场规模的不断扩大,嵌入式软件也必将在此领域拥有极大的发展空间。

(二)通信

在通信领域,嵌入式软件占据了重要位置。移动通信基站、程控交换机中嵌入式软件的增值占据整个设备价值的30%~40%。特别是在移动通信领域,随着3G时代的逐步到来,在政府的全力支持下,国内TD-SCDMA芯片产业的不断壮大,这使得国内外嵌入式软件厂商重新站在了3G这同一起跑线上,这无疑为我国嵌入式操作系统厂商打破国外厂商垄断局面,重新赢得市场创造了新的契机。

(三)工业领域

2005年嵌入式软件在工业领域继续保持稳步发展势态。以北京四方继保自动化有限公司、南京南瑞集团公司、北京和利时系统工程股份有限公司、沈阳东大信息技术有限公司等一批软件企业均成功将自己的软件产品应用于工业控制、智能仪器仪表、监控系统等领域,大大提高了产品性能,推动我国电力电工设备、机械工业等多个行业的技术进步。

(四)医疗器械

近年来,我国医疗电子市场保持了快速增长态势,据估计, 2007年中国医疗电子器械市场将达到750亿元的规模。以东软集团为代表的企业在医疗设备领域取得了很大进展,相继推出了CT、磁共振、X射线、超声系列、激光成像、临床检验设备等系列产品。

(五)交通

近年来,为了提高交通系统的运行能力,大量嵌入式技术被引入到交通系统中。汽车电子作为嵌入式系统的热点,受到了业界广泛的关注,并保持了市场的持续增长。此外,由联通新时讯公司等国内数家企业联合承担的国家863计划软件重大专项课题“国产移动智能终端嵌入式软件平台及示范应用”已于2005年内完成技术开发,并成功实现了在国内若干城市作为交通监控系统的示范应用。

(六)典型应用领域一览表

表21-2 嵌入式软件典型应用领域一览表

应用领域 实例

消费电子 数字电视、掌上电脑、DVD、MP3、MP4、数码相机、网络冰箱、网络空调、家庭网关、可视电话、其它智能家用电器等

通信 智能手机、电话交换系统、电缆系统、卫星和全球定位系统(GPS)、数据交换设备等

工业 数控机床、智能仪器仪表、制造工厂、污水处理系统、发电站和电力传输系统、自动化工厂、控制系统开发、维护和测试的工具、石油提炼和相关的贮运设施、建筑设备、计算机辅助制造系统、能源控制系统、核电站、机器人系统等

商业和金融 自动柜员机、信用卡系统、售货端系统、安全系统等

交通 运输(航空、铁路、公路)系统、燃料服务、航空管理、信令系统、雷达系统、交通指挥系统、停车系统、售票系统、乘客信息系统、检票系统、行李处理系统、应急设备、汽车电子、车载导航器系统、交通监控系统等。

医疗电子 CT、超声仪器、磁共振仪器、心脏除颤器、心脏起搏器、患者信息和监视系统、X-光设备、理疗控制系统、电磁成像系统等

三、国内嵌入式软件企业与产品

(一)国内嵌入式软件厂商简介

2005年,中国本土嵌入式软件厂商继续保持良好的发展势头。具有完全自主知识产权的国产嵌入式操作系统取得了较大进展。

北京凯思昊鹏公司的Hopen 嵌入式操作系统继续在智能手机、PDA、网络计算等产品中得到应用,特别是在智能手机领域,05年内诸如NEC、联想、波导等采用Hopen操作系统的智能手机产品在国内持续热销,同时又有CECT P06、东信ES2100、海尔N90等多款采用Hopen操作系统的智能手机相继上市。

北京科银京成公司自主开发的DeltaOS也是国内具有代表性的嵌入式操作系统,包括嵌入式实时内核、TCP/IP系统、文件系统等组件。目前其各类组件分别在IC卡终端、飞行导航终端、便携式通讯终端以及军工产品中得到应用。

SMARTOS是由浙江大学嵌入式中心研制的嵌入式操作系统,2005年10月发布2.0版本,是一个可支持下一代SOC与多核芯片的实时多任务嵌入式操作系统。SMARTOS已经在浙大网新、波导、UT、东信、普天、信雅达、西湖数源、正原、迪原等企业的产品上得到应用。

由于嵌入式Linux的开放性,2005年一些传统Linux厂商继续发展自身产品线。具有代表性的产品有宇龙计算机通信科技(深圳)有限公司的Linous(领驰系统),主要用于其“酷派”系列智能手机产品,中兴通讯的嵌入式Linux,北京大唐移动通信设备有限公司的用于其TD-SCDMA的Linux系统。此外,嵌入式Linux还在网络计算机、PMP等领域得到普及应用。

随着嵌入式操作系统的应用领域不断延伸,2005年开始出现一批具有典型行业代表性的专用操作系统。山东神思电子公司推出了 S-6嵌入式操作系统。这种操作系统集成了丰富的I2C、PWM、ADC、UART、USB、MODEM等I/O驱动及GSM、CDMA、PHS无线通信接口,主要应用于中国第二代智能卡身份证读卡机、智能公话、IC卡读卡器等信息终端行业应用。

下表列出目前部分国内嵌入式软件厂商的大致情况:

表21-3 国内部分嵌入式软件供应商一览表

软件分类产品名称供应商应用领域应用现状

Hopen 凯思昊鹏通讯、消费电子、工

已应用于智能手机、掌上

电脑、网络计算机、机顶

盒、等产品

Delta 科银京成军工、通信、消费电

已应用于军工、工控领域

Smart OS 浙江大学通讯、消费类电子智能手机等

操作系统

中软Linux 中软公司工控、移动通讯、网

络计算机

数控系统

Hopen SDK 凯思昊鹏通讯、消费电子智能手机、掌上电脑、VOD、网络电视

LambdaTool 科银京成军工、通讯、消费电

军工领域

Kingbase

Lite 人大金仓商务、军事、医药

PDA、掌上电脑、手机

支撑软件

OpenBASE

Mini 东软集团

医疗、保险、制造、

零售、金融、电信、

军事

VOD、掌上电脑

HMAP智能

手机软件平

台凯思昊鹏智能手机

CECT、东信、海尔、联

想、波导、NEC等品牌

智能手机

DeltaBrowser 、wap协议栈科银京成移动设备

康佳等手机

汉王手写识别系统汉王公司

移动产品、通讯、信

息家电

智能手机、掌上电脑、

POS机、固定电话等

关键应用

及平台

文通嵌入式

手写识别系

统紫光文通公司

移动产品、计算机类

产品

智能手机(联想、CECT、

NEC等)、PDA

LCD TV嵌入式软件海尔集团消费电子

电视

应用软件

空调优化节能控制系统华南理工大学消费电子

空调

(二)典型应用产品

1、智能手机

智能手机产业的核心是嵌入式操作系统和手机软件平台。先进、成熟的嵌入式操作系统和手机开发平台为无线通信各个环节的企业和最终用户之间提供一

个完全畅通的技术平台。随着3G时代的逐步到来, TD-SCDMA的不断成熟, 3G 手机对终端厂商的技术能力有了全新的要求,为整个行业重又确立了一个清晰的目标,智能手机又面临了新的发展机遇,这无疑为软件开发商、内容及服务提供商提供了更加广阔的舞台。

据American Technology Research统计表示,2005年全球手机销量可达7.5亿部,据预测,2006年全球手机销量更将达到8.5亿部。

国内,来自易观国际的数据显示,2005年手机销售量将在2004年的7330万部的基础上增长21%左右,达到8300万部。未来3年中国手机市场将维持14%的年复合增长率稳步发展,2008年市场规模将突破1.23亿部大关。

图21-1 2005-2008年国内手机销量预测图(数据来源:易观国际)

智能手机方面,据CCID预测,2003年至2007年中国智能手机市场平均增长率高达78%,年复合增长率为220%。同时,易观国际数据显示,2005年的中国智能手机市场呈现快速增长态势,销量超过520万台,环比增长为131%。未来3年的中国智能手机市场将继续保持高速增长态势,预计到2008年,销量将超过1700万台。

图21-2 2005-2008年中国智能手机销量预测图(数据来源:易观国际)

与不同款式智能手机所占市场份额相吻合,目前手机操作系统和软件平台的市场分布并不平衡。这是由于手机厂商对各类手机平台软件持谨慎态度,大多数手机厂商并不完全依托于某一种软件平台,纷纷采用多元化发展方式,使得几个主流的手机软件平台都有相应产品参与市场竞争,从目前的市场划分看,智能手机软件的市场将是一个群雄割据的市场。 2、数码相机

2005年的中国数码相机市场呈现放量增长态势,来自易观国际的数据显示, 国内数码相机的销量可超过400万台,环比增长63%。未来3年的中国数码相机市场将继续保持增长态势,但增长趋缓,到2008年将达到960万台。

图21-3 2005-2008年数码相机销量预测图(数据来源:易观国际)

中国数码相机市场上,国外厂商占据了主导地位。消费者对专业化的要求提高,产品升级需求迫切;另一方面,厂商加大广告宣传和促销力度,产品降价迅速,家用市场主导,市场容量迅速扩张。预计到2008年,DC 核心技术中的大部分将向国内厂商扩散,国内厂商将有望占据30%以上的市场份额。

3、MP3、MP4

2005年中国市场MP3播放机继续保持小幅增长的发展态势,全年总销量将达到609万台,销售额达到32亿元。未来3年中国MP3播放机市场年复合增长率将会高达35%。到2008年,中国MP3播放机市场的整体销量将会突破1000万台,销售额将会达到100

亿元。

图21-4 2005-2008年数MP3销量预测图(数据来源:易观国际)MP4目前销量还无法与MP3相比,但增长势头强劲。2005年的中国MP4市场呈现快速增长态势。MP4的销量将为27.6万台,环比增长为286%。未来3年的中国MP4市场将继续保持200%以上的增长态势,到2008年,MP4销量将达到260万台。

图21-5 2005-2008年数MP4销量预测图(数据来源:易观国际)

4、数字电视

截至2005年底,全球数字电视用户总数将超过2.2亿,比2004年将增长55.3%;市场规模将达913亿美元,比2004年增长38%。全球数字电视渗透率(数字电视用户/电视用户总数)预计将达到20%,全球各地区的数字电视渗透率将不断稳步提高。数字电视在全球范围内特别是在发达国家已经得到较大的发展。从目前国内发展状况来看,我国目前数字电视产业目前还处在发展的初级阶段,用户数量发展比较缓慢,但增长潜力巨大,2015年之前,我国现有的3.7亿台模拟电视机都将升级,数百家电视台的设备也要更新。由此可见,我国的数字电视产业前景巨大。

而嵌入式软件可从系统平台、中间件、应用软件各个方面满足数字电视的软件技术需求,电子节目菜单、音视频点播、嵌入式浏览器、游戏等功能已被广泛采用,在数字电视领域扮演着极其重要的角色。

5、IPTV

即交互式网络电视,是利用宽带网的基础设施,以家用电视机、PC机乃至手机作为主要终端设备,集互联网、多媒体、通信等多种技术于一体,通过互联网络协议(TCP/IP)向用户提供多种交互式数字媒体服务的新型业务。

世界著名市场分析机构Strategy Analytics预计 ,2006年IPTV全球业务收入将达到80亿美元,用户数将达到800万以上,IPTV市场将在2006年实现大规模启动。

IPTV业务终端可以分为PC机、手机、电视机三种类型。截至目前,我国的上网计算机总数超过了4200万台,上网用户总人数超过9400万人,呈现出较快的增长态势。手机用户超过了3.6亿,电视机用量超过3亿台,全国有线电视用户超过了11000万户。上述用户都是IPTV业务的潜在用户,为IPTV的发展提供了广阔空间。

6、汽车电子

随着我国汽车市场的快速发展和汽车电子的价值含量迅速提高,我国汽车电子产业将形成巨大的规模经济效应,汽车电子产品占汽车的成本将进一步提高,轿车中汽车电子产品比例将达到30%~40%。

近年来中国汽车行业的迅速发展,为汽车电子市场的扩大提供了积极推动,整个市场以超过40%的比例快速增长,详细情况如下图所示:

图21-6 2001-2005中国汽车电子产品市场规模及增长率

与国外相比,我国汽车电子的生产和应用刚刚起步,但随着我国汽车工业的快速发展,汽车电子也将拥有巨大的发展空间,嵌入式软件业必将在其中得到广泛的应用,为国内嵌入式软件开辟了更广阔的应用领域。

四、2005年国内嵌入式软件领域大事记

时间事件

3月首届中国IPTV大会暨产业高峰论坛在北京举行。

4月第三届中国嵌入式技术应用交流会暨2004年读受用户欢迎的嵌入技术和产品推介活动

4月 2005年4月,IIC-China2005国际集成电路研讨会暨展览会在北京、上海、深圳巡回展出,国内多家嵌入式厂商参加了本次展会。

5月为企业培养职业化的嵌入式软件专业人才,提高中国嵌入式软件产业在国际市场的竞争力。北京航空航天大学增设嵌入式软件专业,05年

秋季首批软件工程硕士开始招生。

6月第九届中国国际软件博览会在北京中国国际展览中心隆重举行,以集中展示中国软件产业近年来发展成就为主题,促进国际软件界的交流

与产业合作。博览会由信息产业部、国家发展改革委、科技部、国务

院信息化办公室和北京市人民政府共同主办。

6月中国信息产业商会数字化(3C产品)产业联盟于2005年6月23-24日在广东省深圳市举办“2005第四届中国嵌入式系统技术应用研讨会暨

产品展示会”。本次嵌入式系统会议将邀请行业权威主管部门、国内外

嵌入式知名企业高层、技术经理及应用领域的企业电子工程师前来参

会,共同探讨嵌入式行业链各个环节的技术问题和市场机会。

9月第六届全国单片机与嵌入式系统学术交流会暨产品展示会在深圳举行,主题是“单片机与嵌入技术发展及应用”。全国50余家嵌入式软

件企业、院校参加了本次会议。

9月 2005年9月18日至29日,由国家科技部和财政部联合主办的“国家十五重大科技成就展”在海淀展览馆隆重举行。本次展会全面展示了我国

“十五”以来科技改革与发展取得的突出成果,着重介绍了科技进步对国

民经济和社会发展的重大贡献。以凯思昊鹏、科银京成等公司为代表

的国内嵌入式厂商的产品亮相国产基础软件展台。

10月 2005年10月至11月中国嵌入式技术应用高峰论坛在武汉、太原、南京、北京、上海、广州、无锡、郑州、成都等9个城市巡回举办。

10月 2005中国青岛嵌入式产业发展国际论坛暨中国嵌入式系统年会于2005年10月20日至21日在青岛召开。中国软件行业协会嵌入式系统分会、

中国计算机学会微机专业委员会、中国半导体行业协会集成电路设计

分会、中国计算机用户协会打印显象应用分会联合嵌入式软件产业链

上、下游企业,在本届论坛上共同组建了“中国嵌入式系统产业联盟” 10月 2005年10月28日,首个围绕PMP产业,贯穿产品上下游产业链的专业盛会——个人便携式多媒体播录放机(PMP)技术与市场研讨会暨配

套产品展示会,在全国最大的数码产品生产地和消费地之一的广东深

圳市圆满举行,大会由中国信息产业商会数字化(3C产品)产业联盟

(以下简称3C联盟)主办、深圳市亚科希信息顾问有限公司承办,共

有400多名企业代表到会。

五、嵌入式软件发展趋势

(一)技术趋势

1.无线网络承载技术

移动设备(如手机、车载设备等)是嵌入式设备的主要应用领域,软件系统对无线网络支持能力已经成为衡量嵌入式软件技术先进性的重要指标之一,因此无线网络承载技术越来越成嵌入式软件发展的主流明显。2005年开始,3G协议栈已经和国内一些知名的嵌入式软件系统上移植成功。其他已经被广泛使用的近距离无线技术包括蓝牙(Bluetooth)、无线局域网Wi-Fi(802.11)和红外数据传输(IrDA)技术。此外,还有一批正在兴起的无线技术标准受到关注,包括WiMAX、ZigBee、超宽频、短距通信(NFC)、GPS、DECT、无线1394和专用无线系统等。

2.跨平台技术

针对嵌入式平台的多样性,用户对嵌入式软件的适应性提出了更高的要求,广泛的平台兼容性是软件厂商需要解决的问题。跨平台技术将成为行之有效的解决方法,在嵌入式软件领域,J2ME、BREW是跨平台技术的典型代表。

3.节能技术

随着嵌入式设备,特别是消费电子的上网、视频功能的主流化,嵌入式设备

对电池的需求呈上升趋势。未来的网络给用户提供了大带宽、高性能终端的环境,一般情况下,大多数的嵌入式设备都是通过电池供电,合理利用电池的容量,延长电池的使用时间已经是制约嵌入式设备发展的一个重要问题。目前,嵌入式软件较好的解决方法是采用动态电源管理技术,它取决于CPU性能、软件、中间件以及用户对更换电池的时间间隔等要求。

4.音视频技术

随着消费电子的快速发展,音视技术受到了广泛的关注,音视频技术包括音视频的压缩、解压缩、处理、表示和传输等技术,主要应用于高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通信、互联网宽带流媒体等方面。国际上,MPEG4、H.264等技术已经得到应用;在中国,中国科学院计算技术研究所、清华大学、华中理工大学、上广电等机构正在从事音视频的研究开发,音视频技术的进步将有助于嵌入式技术的应用和推广。

5.人工智能技术

为了使嵌入式产品及设备更好地为人类服务,人工智能技术将大量引入嵌入式系统及产品中,这些技术包括文字识别、图像识别、语音识别、语音合成、知识挖掘、语言翻译、自然语言理解、专家系统等,这些技术的引用会大大改善人机交互状况,促进嵌入式产品在各领域的应用。2005年,在采用Hopen嵌入式操作系统的智能手机中已可以看到文字识别、语音识别等人工智能技术的应用。

(二)市场趋势

对于国产嵌入式软件厂商而言,目前主要分为两种,第一种是基于拥有完全自主知识产权的国产嵌入式软件;第二种是基于嵌入式Linux的。针对未来嵌入式软件领域发展的特点,要使国产嵌入式软件在未来竞争环境中立于不败之地,必须将国内成熟的自主方案和开放的国际主流技术相结合,开发出真正满足市场需求的嵌入式软件。

六、结论与建议

2005年,在收获的同时也暴露出我国本土嵌入式软件厂商所共同面临的挑战。由于我国在本领域起步较晚,企业普遍存在规模较小、原始创新能力不足的弱点,相对于国外厂商更为强大的企业规模和技术联盟,本土嵌入式软件产品虽然已有较为成熟的技术,各项指标也达到了国际先进水平,但在市场中的影响力和用户的认知度明显低于国外的成熟产品。

在这种形势下,政府部门的扶植作用是极为重要的。政府作为宏观调控和指导者,提出产业宏观发展目标和方向,制定相关指导性政策。一方面政府可以指导产业发展方向,扶植已经占有一定市场份额的企业进行自主技术的研发;另一方面,采取积极有效的政策规范市场,在投资融资、税收、产业技术、出口、软件企业认定、知识产权保护等多个环节上对软件产业给予优惠政策和极大支持,消除企业的后顾之忧。企业在政府的指引下作为技术产品研发、市场开拓及产业化的执行者,放开手脚,全力提高产品的核心竞争力和原始创新能力,与国外产品抗争,从而赢得市场,实现产业化目标。

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

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

嵌入式软件测试报告(内部)

软件(内部)测试报告 XXX系统 测试分析报告评审 V1.0 编写人: 编写日期: 审核人: 审核日期:

修订页

目录 目录 (1) 软件测试报告(内部) (2) 安装及使用测试 (3) 运行环境 (3) 安装易用性 (3) XXX测试 (4) 安装、使用问题及建议 (4) 功能单元测试 (5) 串口指令响应功能测试 (5) 1.测试方法及工具 (5) 2.功能测试 (5) 3.性能测试 (6) 4.稳定及安全性测试 (6) 5.BUG及建议 (6) xxx功能测试 (7) 整机测试 (8) 长时间工作稳定性整机测试 (8) 1.测试方法及工具 (8) 2.测试步骤及结果 (8) xxx整机测试 (8) 整机测试问题及建议 (8) 安装及使用测试附件 (10) 功能单元测试附件 (11) 整机测试附件 (12)

软件测试报告(内部) CRABXLAB-0628-15 TA/0001 软件测试报告编写:首先做对产品的安装及使用测试,如从运行环境、软件安装、故障指示、用户可操作性、界面友好性等方面来检测是否合理可靠;其次从功能完整性上测试,并对每个功能单元进行功能测试、性能测试、安全及稳定性测试,保证每个功能单元都稳定可靠;最后做整机测试,整机测试主要从长时间工作稳定性、异常处理(如网络、电量异常)合理可靠性等方面检查整机稳定可靠性。

安装及使用测试 开发出来的软件要基于对客户或者量生产上考虑产品的使用及安装环境的易用、安全、可操作性、友好性等。 运行环境 安装易用性

XXX测试 章节同安装及使用测试范例,由开发人员完善其他需要的测试项安装、使用问题及建议

嵌入式软件测试简介

一、嵌入式系统与嵌入式操作系统 1、嵌入式系统 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 嵌人式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌人式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结台在一起,它的升级换代也是和具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性;一般都固化在只读存储器中或间存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。 2、嵌入式操作系统 嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制。 协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点: (1)可装卸性。开放性、可伸缩性的体系结构。 (2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。 (3)统一的接口。提供各种设备驱动接日。 (4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。 (5)提供强大的网络功能,支持TCP门P协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。 (6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS臭有较强的稳定性。嵌入式操作系统的用户接日一般不提供操作命令,它通过系统调用命令向用户程序提供服务。 (7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。 (8)更好的硬件适应性,也就是良好的移植性。 二、三种常用的嵌入式操作系统 1. PALM OS Palm是3Corn公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口;利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有极强开放性的系统,现在有大约数千种专门为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基干Palm OS的掌上电脑功能得以不断扩展。 Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基干Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB),所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。 由于Palm产品的最大特点是使用简便、机体轻巧;因此决定了Palm OS应具有以下特点。 (1)操作系统的节能功能。由于掌上电脑要求使用电源尽可能小,因此在Palm OS的应用程序中,如果没有事件运行,则系统设备进人半休眠(doze)的状态;如果应用程序停止活动一段时间,则系统自动进人休眠(sleep)状态。 (2)合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态RAM(Dynamic RAM)类似于PC机上的RAM,它为全局变量和其它不需永久保存的数据提供临时的存储空间;存储RAM(Storage RAM)类似于PC机上的硬盘,可以永久保存应用程序和数据。 (3)Palm OS的数据是以数据库(database)的格式来存储的。数据库是由一组记录(records)和一些数据库头信息组成的。为保证程序处理速度和存储器空间,在处理数据的时候,Palm OS不是把数据从存储堆(Storage Heap)拷贝到动态堆(Dynamic Heap)后再进行处理,而是在存储堆中直接处理。为避免错误地调用存储器地址,Palm OS规定,这一切都必须调用其内存管理器里的API来实现。 Palm OS与同步软件(Hotsync)结合可以使掌上电脑与PC机上的信息实现同步,把台式机的功能扩展到了掌上电脑。Palm应用范围相当广泛,如:联络及工作表管理、电子邮件及互联网通信。 销售人员及组别自动化等等。Palm外围硬件也十分丰富,有数码相机、GPS接收器、调制解调器、GSM无线电话、数码音频播放设备、便携键盘、语言记录器、条码扫描、无线寻呼接收器、探测仪。 其中Palm与GPS结合的应用,不但可以作导航定位,还可以结合GPS作气候的监测、地名调查等。 2. Windows CE

第三套嵌入式软件工程师考试试题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更优化的代码,了解这个用法是很重要的。

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

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

嵌入式软件工程师笔试题

(一) 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等嵌入式操作系统 软件工程师需要完成以下工作

嵌入式软件工程师简历

简历 姓名: 性别: 年龄: 电话: 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、自动化、计算机、电子通信以及相关学科,硕士以上学历; 2、熟悉嵌入式Linux、Android、Windows CE或其它嵌入式操作系统下的开发和调试; 3、具有良好汇编语言和C语言的编程能力; 4、了解流行的处理器架构ARM/MIPS/POWERPC/ColdFire等;熟悉嵌入式系统的体系结构,熟悉嵌入式操作系统下的应用程序编写;熟练使用1种以上脚本开发,Lua。 5、3年以上嵌入式操作系统开发或测试经验; 有良好的编码习惯,能够按照代码规范进行编码及文档工作; 具有吃苦精神,能够承受较大的工作压力,自学能力强; 富于团队合作精神,工作责任心强;较强的英语阅读 5、熟悉测试基本理论、包括黑盒、白盒测试技术;熟悉功能测试和性能测试方法,熟悉软件测试流程和质量保证体系优先; 能力; 6、熟悉大型数据库,SQLSERVER、Oracle等。 .根据系统需求与设计能够编制测试方案,制定测试计划与测试用例;

7、具备系统测试环境的搭建与维护能力; 具备较强的设计文档的理解能力,口头和文字表达能力强; 8、熟悉C、C++ 编程,掌握gcc/make等相关开发工具;能够熟练掌握ADS、KeilC等嵌入式软件设计调试工具;熟悉TCP/IP网络协议,熟悉socket编程;掌握多种软件测试工具。 9、掌握常用的linux命令,熟悉数据库(SQL和Oracle)的基本操作; 10、.要有良好的组织沟通能力,具有团队协助精神; 二、嵌入式软件测试工程师职责 1、组建软件测试团队,制定相关测试流程及技术管理体系; 2、带领测试团队展开测试工作,负责产品的质量保证体系的建立; 3、规划测试策略,制定测试方案和计划,并负责计划的管理;负责按照测试计划组织实施软件测试;包括测试需求文档编写,测试用例设计,测试脚本执行;完整地记录测试结果,编写完整的测试报告等相关的技术文档; 4.对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案。 5.提出对产品的进一步改进的建议,并评估改进方案是否合理,对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。 6.为业务部门提供相应技术支持,确保软件质量指标。 7、制定和实行测试相关的培训计划,提高测试团队的整体工作能; 8、做好测试和软硬件部门的沟通和协调工作。

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

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

嵌入式软件测试与一般软件测试之异同研究

嵌入式软件测试与一般软件测试之异同研究 作者:网络转载发布时间:[ 2013/3/5 9:09:17 ]推荐标签: 摘要:随着计算机技术的普及,软件系统已经深入到生活的各个方面,从普通的计算机软件,到银行或超市的终端系统,甚至到手机的软件系统。对软件的质量要求也在不断提高,软件测试及其技术也有了飞速发展。在对软件测试技术相关基本概念研究解析的基础上,分析软件测试起源与发展,保证软件产品的质量、提高产品的可靠性。对于嵌入式软件系统,因其多样性,基于操作系统,使用的开发环境,微控制器都是日益繁多的,所以嵌入式软件测试与普通软件测试相比有其自身的特点。 关键字:软件测试;嵌入式测试;软件质量 1、引言 嵌入式软件的开发和测试也就与普通软件的开发和测试策略有了很大的不同,嵌入式软件系统是一种针对特殊任务、特殊环境而进行特殊设计的定制产品,有其专门的开发环境、软硬件紧密结合、严格的实时要求等特点。使得嵌入式软件测试与普通软件测试虽有相似之处,但有也有其自身独特的特点。 2、软件测试和嵌入式软件测试 2.1 软件测试的定义及目的 软件测试,即Software Testing。软件测试的定义有很多,在1979年出版的一本经典著作《软件测试艺术》(The art of software testing)中,GLEMFORD J.MYERS曾经对软件测试下过如下定义:软件测试就是为了发现错误而执行程序或系统的过程。虽然它不太完善,但放在当时的情况下是可以说的通的。 随着计算机和软件技术的发展,软件应用的复杂性和规模的不断扩大,软件测试技术的研究也取得了很大的突破。早期的定义已经不适用了,许多专家对软件测试提出了各种各样的定义。综合起来,我们可以定义“软件测试是由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的”。

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

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

嵌入式软件测试基础知识

嵌入式软件测试基础知识 测试是传统软件开发的最后一步。整个软件开发过程,需要收集要求、进行高层次的设计、详细设计、创建代码、进行部分单元测试,然后集成,最后才开始最终测试。最佳的开发实践应包含代码检查这个步骤。然而代码检查一般只能找出70%的系统错误,因此完美的测试环节绝对必不可少。测试就像个复式记帐系统,可以确保将缺陷扼杀在最终推出的产品之前。在所有其它的工程实践中,测试都被视为基本环节。比如,在美国,每一座联邦政府出资修建的桥都必须经过大量的风洞测试。而在软件领域,测试并没有很受重视。尽管测试是所有工程实践准则的关键部分,但编写测试程序却感觉是在浪费时间。好在嵌入式系统设计界内的许多领域已经将测试作为其工作的核心部分,他们认识到将这个关键步骤放在项目末期极不明智,因而主张同步地编写测试程序和应用程序。嵌入式系统软件测试在诸多方面都与应用软件测试一样。不过,应用测试与嵌入式系统测试之间还是存在一些重要差异。嵌入式开发人员一般会用到基于硬件的测试工具,而这类工具通常不会用于应用开发过程中。此外,嵌入式系统一般都有些独一无二的特性,这些特性应该在测试计划中得以体现。本文将介绍测试和测试案例开发的基础知识,并指出整个嵌入式系统测试工作的特有细节。何时测试以及如何测试从图1可以看出,在可行的条件下,测试应尽早展开。一般来讲,最早的测试是由最初的开发人员进行的模块或单元测试。遗憾的是,开发人员大多对如何建构一整套测试例程以进行测试所知不足。由于精心设计的测试例程通常直到集成测试时才能使用,因此许多在单元测试过程中就能找出的缺陷直到集成测试时才会被发现。比如,硅谷的一家大型网络设备厂商为找出其软件集成问题的关键原因,进行了一项研究。这家厂商发现,在项目集成阶段找出的缺陷中,有70%是由在集成之前从没被执行过的程序所产生的。 2012-3-16 11:05:05 上传 下载附件 (9.94 KB) 图1:改正问题的成本。单元测试:开发人员在单独进行模块级测试时一般是编写存根代码(stub code)取代余下的系统软硬件。在开发周期的这个环节,测试主要侧重于代码的逻辑性能。通常,开发人员会分别使用某些平均值、高值或低值、以及某些超出范围的值(以测试代码的异常处理功能)进行测试。但这些基于“黑匣子”的测试仅能对模块中整个代码的一部分进行测试。回归测试:测试不应是一劳永逸的。每次修改程序后都应该重新进行测试,以确保这些更改不会无意中“误伤”某些不相关的行为。称为回归测试的这类测试,一般是通过测试脚本自动进行的。比如,如果你设计了一组100个输入/输出(I/O)测试,回归测试脚本会自动执行这100个测试,然后将输出与一组“黄金标准”输出进行对比。每次对代码的任何部分进行修改时,都要对包含被修改代码的整个程序运行整套回归测试程序包,以确保修改过程中不会“误伤”其余代码。测试什么因为没有一个实际的测试集可以证明一个程序是正确的,因此关键问题变成了哪个测试子集最有可能检测到最多的错误。选择合适的测试例程的问题被称为测试例程设计。虽然存在数十种测试案例的设计方法,但它们通常可归为两种截然不同的方法:功能测试和覆盖测试。功能测试(也称为黑匣子测试)选择可评估实现与需求规格符合程度的测试。覆盖测试(也称为白匣子测试)选择可执行代码某些部分的测试例程。(过后,将详细讨论这两种方法。)这两种测试都是对嵌入式设计进行严格测试所必需的。其中,覆盖测试表示代码的稳定性,所以这种测试是用于已经完成或将近完成的产品的。另一方面,可在编写要求文档时,同时编写功能测试。事实上,从功能测试开始入手,可以最大限度地降低重复劳动和重写测试案例的工作。因此,在我看来,要先考虑功能测试。每个人都同意先编写功能测试这个观点,有人认为,功能测试在系统集成阶段(而不是在单元测试时)最有用。以下是整合功能测试和覆盖测试方

嵌入式软件工程师C语言笔试题

软件笔试题(A) 姓名:学校: 专业:电话: (如无特殊说明,以下所有测试内容都是基于32位嵌入式系统) 1)程序的局部变量存在于中,全局变量存在于中,动态申请数 据存在于中。 2)如何用if来做零值比较 int a : if(a==0) bool a : float a : void * a : 3) void func( char str[100]) { printf(“%d”,sizeof( str ) ); } 输出结果是: 有下列定义: char str[] = “Hello World”; char *p = str; int n = 10; void *ptr = malloc( 100 ); 请写出如下表达式的值: sizeof (str ) = ; sizeof ( p ) = ; sizeof ( n ) = ; sizeof ( ptr )= ;

4) unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x87000000; p2=(unsigned long *)0x80010000; 请问p1+5 = ; p2+5 = ; 5)char str[10]; strcpy(str,"0123456789"); 产生什么结果?为什么? 6)用C语句,让程序跳转到绝对地址0xFFFF0去执行 7)已知一个数组array,用一个宏定义,求出数组的元素个数 #define ARRAY_COUNT 8)简要说明,为什么标准头文件都有类似以下的结构。 #ifndef __INC_Honeywell_Debug #define __INC_Honeywell_Debug #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus } #endif #endif /*__INC_Honeywell_Debug */

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

嵌入式软件工程师学习 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处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人

相关文档
相关文档 最新文档