嵌入式技术应用开发

嵌入式技术应用开发
嵌入式技术应用开发

2018年全国职业院校技能大赛高职组河南选拔赛

“嵌入式技术应用开发”赛项规程

一、赛项名称

赛项名称:嵌入式技术应用开发

英语翻译: Embedded Technology and Application Development

赛项组别:高职组

赛项归属产业:电子信息

二、竞赛目的

随着无人机、机器人、可穿戴设备、移动智能终端、智能家居、人工智能、物联网等相关产业技术产品创新应用及需求不断涌现,可以说哪里有智能产品,哪里就有嵌入式技术应用,嵌入式技术已广泛应用于工业、农业、教育、国防、科研以及日常生活等各个领域。

嵌入式技术应用开发赛项旨在服务于中国制造2025、“互联网+”等国家战略及物联网、机器人、人工智能等国家战略性新兴产业的实施,积极推动新一代信息技术、高端装备制造业等新兴产业的发展,进一步深化产教融合、校企合作,协同育人,为行业、企业培养高素质、高技能嵌入式技术紧缺人才。

通过竞赛,检验高职电子信息类学生在模拟的真实情景环境下对嵌入式技术应用开发的工程实践能力和创新能力;加强学生对嵌入式技术应用开发相关知识的理解、掌握和应用;培养学生的动手能力、团队协作能力、创新意识和职业素养;提高高职电子信息类专业在嵌入式技术应用开发方面的社会认可度;培养嵌入式技术相关行业发展急需的技术技能型应用人才;提高学生的就业质量和就业水平;增强技术技能型人才的就业竞争力;促进理论与实践相结合,充分展示当前嵌入式技术领域的新技术;引导高

职院校聚焦电子信息行业的发展趋势与技术应用方向;引领职业院校电子信息类专业建设与课程改革。

同时,通过“嵌入式技术应用开发”赛项的举办,不仅提升了参赛学生的综合能力,展示出团队合作、实践技能和工程应用能力,而且还培养出一批会知识、懂技术、熟项目的嵌入式技术相关专业老师,使其成为高职院校嵌入式技术相关专业建设的骨干力量,从而提高高职院校相关专业的办学水平。

三、竞赛内容

(一)竞赛内容

本赛项主要考察高职电子信息类专业学生对嵌入式技术的应用开发能力,采用实操考核形式。赛项要求参赛选手在规定时间内组装、调试一套电路板(功能电路板),并安装在智能嵌入式系统应用创新实训平台(竞赛平台)上。同时,完成嵌入式应用程序的编写和测试,使之能够自动控制竞赛平台完成赛道任务。

赛项涵盖的知识点有:控件应用、Android资源应用、图形与图像处理、图像采集与识别、网络通讯、现场总线通信、无线射频通信、RFID通信、ZigBee通信、传感器数据监测与应用、光照强度检查与应用、超声波测距、红外通信、语音控制等。

赛项涵盖的技能点有:电路板的焊接、安装、调试、排障,产品装配,嵌入式硬件控制程序编写,Android应用开发以及系统集成应用技能。

选手的创新、创意可以在通讯安全、信道传输效率、加密算法优化、电机动态控制算法优化、产品装配流程工艺、数据采集算法优化等技术领域得到发挥。

(二)竞赛时间

赛项比赛时长7个小时(含用餐和休息时间),第一阶段用时4个小时,产品装调与应用开发;第二阶段用时3个小时,各参赛队轮流完成赛道任务与功能验证,参赛队有两次机会完成赛道任务测试,每次限时5分钟。

(三)成绩构成

本赛项考核包含安全操作规范、电子装接工艺和赛道任务与功能验证三部分成绩,成绩比例如下:

1. 竞赛全过程的安全操作规范,成绩比例为5%

2. 电子装接工艺,成绩比例为20%

3. 赛道任务与功能验证,成绩比例为75%

四、竞赛方式

赛项为团体赛,须组队参加。每队选手3名(含1名队长),配备指导教师不超过2人。

选手须为同校在籍学生,性别和年级不限。参赛选手年龄须不超过25岁,年龄计算截止时间为2018年5月1日。

五、竞赛流程

(一)比赛时间安排

表1 嵌入式技术应用开发赛项比赛时间安排表

前一天12:40-14:30 参赛队报到

赛前

准备15:00-16:00 开幕式及参赛队抽签

16:00-17:00 参赛选手熟悉场地

竞赛日08:00-08:10 选手到指定地点集合检录

08:10-08:50

第二次加密、选手自带设备工具仪器检查进

场、摆放调试

08:50-08:55 发放赛题与元器件

08:55-09:00 裁判讲解比赛注意事项,宣布比赛开始

09:00-09:30 参赛选手检查核对元器件,更换、补领器件

产品装调

与应用开

发(4小时) 10:00-13:00

参赛选手按顺序进入练习赛道,在规定的时

间内进行赛道任务练习

10:00-14:30

此期间参赛选手可向现场裁判申请更换组

委会提供的功能电路板与竞赛平台(限1

次)

13:00-14:30 第一轮功能测试赛道任务

与功能验

证(3小时)14:30-16:00 第二轮功能测试,上交功能电路板,

16:00-17:00

功能电路板工艺评分汇总,赛道任务统分并

汇总成绩

评定17:30-18:00 公布成绩

1.正式比赛日前一天赛前准备,15:00-16:00在指定地点召开开幕式及抽取顺序号,16:00-17:00参赛选手熟悉赛场环境。

2.赛项比赛时长7个小时(含用餐和休息时间),第一阶段参赛队完成规定任务,选手根据任务情况自行分工;第二阶段为赛道任务比赛时间,参赛队有两次机会完成赛道任务测试,每次限时5分钟。

3.参赛队在比赛当天8:00到达赛项指定检录地点,8:10-8:50接受检录进行自带设备工具仪器检查,并按规定抽取工位号,参赛队凭借工位号进入工位就坐。

参赛队到自己工位上将自带设备摆放并调试,同时确认工位上的电源是否正常,如有异常应立即向工作人员或裁判申请处理,在9:00以后将不

接受异常申请处理。

4.赛前准备阶段

上午8:50发放赛题和功能电路板焊接套件,参赛队队长在领取确认表上确认签字。8:55-9:00 由裁判检查赛场纪律并讲解注意事项,9:00 分由裁判长宣布正式比赛,选手方可拆封试题和检查元器件。

5.现场比赛阶段

竞赛第一阶段:产品装调与应用开发(4小时)

9:00-9:30期间,参赛队队长确认已领元器件无缺件、无损坏后,在元器件确认表上签字,若焊接套件内元器件数量和型号与竞赛试题中提供的参数不符,应在9:30之前提出申请,超过规定时间更换或补领按评分标准扣分,更换或补领同一型号器件不得超过焊接套件中标准用量。从10:00开始,允许参赛选手申请更换功能电路板或竞赛平台(限一次),同时参赛队按照分配时间顺序进入练习赛道,进行测试,每次时间为5分钟。

竞赛第二阶段:赛道任务与功能验证(3小时)

赛道任务功能验证时间为13:00-16:00,赛道任务功能验证区设有比赛专用赛道地图,选手进行两轮赛道任务测试。13:00-14:30期间完成第一轮比赛任务测试。参赛队在完成第一轮比赛任务测试后,拥有相同的时间(由比赛现场实际情况决定)来调整应用程序。14:30-16:00期间完成第二轮比赛测试。第二轮比赛任务完成后,参赛队须立即将功能电路板上交到裁判指定位置,然后进行焊接工艺评分。

六、竞赛试题

命题专家组依据赛项规程,研究确定竞赛用题的形式与难度。

七、竞赛规则

(一)报名资格及参赛队伍要求

1.参赛选手资格:参赛选手须为普通高等学校全日制在籍专科学生。本科院校中高职类全日制在籍学生可报名参加比赛。五年制高职四、五年级学生可参加比赛。参赛选手年龄须不超过25周岁(年龄计算的截止时间为2018年5月1日)。在往届全国职业院校技能大赛中获本赛项高职组一等奖的选手,不允许参赛。

2.组队要求:本赛项为团体赛,不允许跨校组队。

3.人员变更:参赛选手和指导教师报名获得确认后不得随意更换。选手因特殊原因不能参加比赛时,则视为自动放弃竞赛;竞赛开始后,参赛队不得更换参赛选手,若有参赛队员缺席,不得补充参赛选手。

(二)赛场要求

1.参赛选手在比赛开始前到达指定地点报到,接受工作人员对选手身份、资格和有关证件的检查。开赛15分钟后停止检录,参赛选手如仍未进入赛场,按弃权处理。

2. 竞赛工位通过抽签决定,竞赛期间参赛选手不得擅自离开竞赛工位。

3. 竞赛所需的工具、系统软件和电脑、仪器由参赛队自备,选手不得携带除组委会规定以外的硬件设备进入赛场。

4. 参赛队自行决定选手分工和工作安排。

5. 竞赛过程中,选手须严格遵守操作规程,确保人身及设备安全,并接受裁判员的监督和警示。若因选手因素造成设备故障或损坏,无法继续竞赛,裁判长有权决定终止该队竞赛;若非选手个人因素造成设备故障,由裁判长视具体情况做出裁决。

6. 竞赛结束(或提前完成)后,参赛队不得再进行任何操作,并由裁判与参赛队队长共同签字确认。

八、竞赛环境

竞赛在室内进行,训练测试赛道分布于参赛队工作区附近。

(一)参赛队工作区

工作台内提供有220V电源国标插座。交流电源接线板由参赛队自备,赛项组委会不另行提供。

(二)任务比赛场地

1.任务比赛的赛道地图规格为:赛道地图上设有多个标志物作为竞赛平台的探测或控制对象,用以完成相应赛道任务。任务比赛的赛道地图规格为:赛道地图赛道为白色,宽30cm,寻迹线为黑色,宽3cm(赛道样图如下图所示)。

赛道地图参考图

2.赛道地图上设有多个标志物作为竞赛平台的探测或控制对象,用以完成相应赛道任务。

九、技术规范

(一)赛项涉及专业教学要求:

1.电路焊接、装配、调试应用能力。

2.传感器应用能力。

3.自动控制技术应用能力。

4.嵌入式编程调试能力。

5.无线通信与控制应用能力。

6.Android应用开发能力。

(二)本赛项遵循以下国家标准和行业标准:

1.电子元器件检验员国家职业标准(职业编码6-26-01-33)

2.电子设备装接工国家职业标准(职业编码6-08-04-02)

3.无线电调试工国家职业标准(职业编码6-08-04-03)

4.电气设备安装工国家职业标准(职业编码6-23-10-02)

5.计算机程序设计员国家职业标准(职业编码X2-02-13-06)

6.计算机操作员国家职业标准(职业编码3-01-02-055)

7.计算机软件产品检验员国家职业标准(职业编码X6-26-01-42)

十、技术平台

(一)竞赛设备、工具

参赛选手应根据赛项规定自带相关设备与工具,不得私自携带赛项规程规定以外的任何物品。请各参赛队自备智能嵌入式系统应用创新实训平台(以下简称竞赛平台)。

表2 竞赛自带硬件平台设备表

名称型号备注

竞赛平台RC-EC&ARM-III

由赛项合作企业百科荣创(北京)科技发展有限公司提供(不含任务板)。

移动终端多品牌适用参赛队也可自带不具备通讯功能(WIFI除外)的平板电脑

表3 自带仪器与工具要求说明表

序号仪器设备规格说明

1 数字万用表3位半及以上,多品牌适用

2 恒温烙铁多品牌适用

3 数字示波器(频率范围:50M以上)多品牌适用

4 直流稳压源(1台/组:0-30V/0-3A,两路输出)多品牌适用

5 热风枪多品牌适用

6 工具箱含带漏电保护的国标电源插线板,螺丝刀套件(大小十字、一字)、芯片盒、细毛刷、洗板水壶、吸锡枪、助焊膏、尖嘴钳、偏口钳、焊锡丝、吸锡带、飞线、刀片、粗毛刷、防静电镊子等。

7 笔记本电脑多品牌适用,禁止创建无线热点

8 ARM编程器可用于STM32编程、仿真使用。

9 USB转TTL模块用于电脑与设备间的串口调试。

10 RJ45网线用于竞赛平台上的网络摄像头配置,多品牌使用

11 交流电源接线板国标,带漏电保护,多品牌适用

表4 组委会提供仪器设备说明表

序号仪器设备规格说明

1 可移动存储设备USB接口,8G以上内存,多品牌适用

2 交流电源AC220V

3 直流电源12V/2A(固定)、5V/3A(固定)、3.3V/500MA(固定)

表5 竞赛软件平台表

序号推荐软件备注

1 Windows 7 32bit/64bit 操作系统

2 Microsoft Office 文档编辑工具

3 IAR、Keil 单片机开发环境

4 EclipseIDE、JDK、SDK(API 4.2以上)等安卓应用开发环境

5 UartAssist 串口调试助手

表6 禁止携带设备表(包含但不限于)

序号仪器设备备注

1 CC2530下载设备能修改CC2530固件程序的设备。

2 ZigBee节点模块包括竞赛平台上标配 ZigBee 模块等。

3 功能电路板指竞赛平台中配备的功能电路板

4 信号放大器

5 无线路由器竞赛平台上自带的WiFi模块除外

6 元器件

7 可移动存储设备

十一、成绩评定

评分项目评分细则分值评分方式

安全操作规范(5%)安全用电 2

过程评分(客观)环境清洁 1

操作规范 2

电子装接工艺(20%)元器件摆放 5

结果评分(主观)焊点质量 5

板面清洁 4

焊接完成度 6

赛道任务与功能验证(75%)

传感器应用10

过程评分(客观)二维码采集及识别8

图像采集及处理10

红外通信控制8

ZigBee通信与控制10

语音识别及控制8

RFID应用8

行进及动作控制8

其他任务 5

扣分项超过规定时间补领元器件(每个) 1

过程评分(客观)申请更换功能电路板(限1次)10

申请更换竞赛平台(含功能电路

板)(限1次)

15

违纪扣分视情节而定裁判长

总计100%

(一)竞赛评分严格按照公平、公正、公开、科学、规范的原则。

(二)参赛队成绩由赛项裁判组统一评定。竞赛名次按照成绩总分从高到低排序。比赛用时不计入成绩,相同成绩的按比赛用时长短决定排名次序,用时少者排名在前。

(三)总成绩满分100分,只对参赛队团体评分,不计个人成绩。

(四)最终成绩构成

赛项最终成绩由硬件装调开发、软件功能测试与安全操作规范三部分

成绩求和,并减去扣分项得到。

(五)赛道任务与功能验证分两轮进行,每轮每支参赛队拥有两次启动机会且测试总用时不超过 5 分钟,若总用时超出 5 分钟,则成绩无效。赛道任务与功能验证取两轮成绩中最高成绩为最终成绩。

(六)在竞赛过程中,参赛选手如有作弊、不服从裁判判决、扰乱赛场秩序等行为,裁判长按照规定扣减相应分数。情节严重的取消竞赛资格,竞赛成绩记为零分。

十二、奖项设置

赛项设奖项如下:

赛项成绩高低排序,设置一、二、三等奖和优秀奖。获奖比例分别为参赛队数的10%、20%、30%、20%,末尾20%不设奖。每位获奖选手和指导教师均可获得相应证书。

十三、竞赛须知

(一)参赛队须知

1.参赛队名称统一使用规定的地区代表队名称,不使用学校或其他组织、团体的名称;不接受跨校组队报名。

2.参赛队选手在报名获得确认后,原则上不再更换,如筹备过程中,选手因故不能参赛,所在省教育主管部门需出具书面说明并按相关参赛选手资格补充人员并接受审核;竞赛开始后,参赛队不得更换参赛选手,允许队员缺席比赛。

3.参赛队按照规程携带指定的设备与工具进行比赛。禁止携带相关照相器材和手机等,一经发现违规现象立即没收。

4.参赛队自带大赛规定的竞赛平台(嵌入式小车),不得改装。赛项裁判组将对所有选手自带的竞赛平台进行逐一详细检查,私自改装的竞赛平

台将不允许进入赛场,竞赛平台检查时以赛项执委会指定竞赛平台样车为标准,与指定样车比较,如有增加、改动的部件则不合格,属于私自改装,不许进入赛场。

5. 竞赛当天参赛队检录入场时,每个参赛队最多可携带两台笔记本电脑和一个移动终端。

(二)指导教师须知

1.竞赛过程中,不允许指导教师进入现场指导。

2.各代表队领队要坚决执行竞赛的各项规定,加强对参赛人员的管理,做好赛前准备工作,督促选手带好证件等竞赛相关材料。

3.指导教师需持证进入指导教师休息区。

(三)竞赛选手须知

1.参赛选手应严格遵守赛场规章、操作规程和工艺准则,保证人身及设备安全,接受裁判员的监督和警示,文明竞赛。

2.参赛选手需同时携带身份证、学生证、参赛证入场,在赛场内操作期间要始终佩带参赛证以备检查。

3.参赛选手进入赛场,不许携带任何书籍和其他纸质资料。

4.各参赛队应在竞赛开始前一天规定的时间段进入赛场熟悉环境。严格按照组委会的安排进行有序参观,未经允许不得进入非参观区域,不得随意触碰赛场设备,未经批准不得拍照以及发布赛场相关材料。

5.参赛选手严禁携带任何能够与赛场外部建立联系的无线通信设备,参赛队携带的笔记本电脑和移动终端,不允许集成除Wi-Fi外的任何能够与赛场外部建立联系的无线通信部件(如内置3G、4G上网卡等)。选手在比赛中只允许使用竞赛平台自带Wi-Fi,其它任何无线网络禁止开启。如果携带上述设备或采用任何方式与场外进行联系,一经发现将按作弊处理,直

接取消参赛队比赛资格。

6.竞赛时,各参赛队自行决定分工和时间安排,在指定赛位上完成竞赛项目,严禁作弊行为。

7.竞赛过程中,因严重操作失误或安全事故不能进行比赛的(例如因所调试的功能电路板发生短路导致赛位断电的、造成设备不能正常工作的),现场裁判员有权中止该队比赛。

8.选手休息、饮食或如厕时间均计算在比赛时间内。

9.在焊接、装配调试期间,参赛选手限于自己工作区内活动,违者取消参赛队比赛资格。

10.进行赛道任务比赛时,各参赛队需要根据大赛发布的比赛顺序,在工作人员的引导下,依次进入场内。

11.参赛队携带“竞赛平台”到达比赛场地后,必须在裁判明示允许比赛后,才能开启“竞赛平台”的电源并放入赛道起始区。

12.在进行场地任务比赛时,未经裁判员允许,参赛选手不得接触出发后的“竞赛平台”,违者取消其比赛资格。

13.参赛队竞赛平台在进行赛道任务比赛时,应全部自动控制,如选手在测试开始至完成期间触碰竞赛平台,则本轮任务成绩无效。

14..功能电路板焊接所用的元器件及套件统一由组委会提供,不得使用任何自带的元器件,如有违反,以舞弊论处,取消该队比赛成绩。

15.参赛选手要注意及时存盘,由于操作不当引起死机导致文件丢失的,由选手自行负责。

16.在参赛期间,选手应当注意保持工作环境及设备摆放符合企业生产“5S”的原则。

17.参赛队欲提前结束比赛,应由队长举手示意,由现场裁判员与队长

共同签字确认,并记录其比赛终止时间。签字确认后,该队全体队员不得再进行任何与比赛有关的操作。

18.比赛结束后,参赛选手应整理由赛项执委会现场下发所有资料,并交给裁判,不得将相关材料带离比赛现场。

(四)赛场管理须知

1.竞赛现场设现场裁判组,负责监督检查参赛队安全有序竞赛。如遇疑问或争议,须请示裁判长,裁判长的决定为现场最终裁定。

2.参赛队进入赛场,检录裁判及赛场工作人员按规定检录参赛队所携带物品,如检录发现不允许带入赛场的物品,应交由参赛队随行人员或指导教师保管,赛场不提供保管服务。

(五)赛场纪律

符合下列情形之一的参赛队,经裁判组裁定后中止其竞赛。

1.不服从裁判、扰乱赛场秩序、干扰其他参赛队比赛情况,裁判组应提出警告。累计警告2次,或情节特别严重,造成竞赛中止的,经裁判长裁定后,中止比赛,并取消参赛资格和竞赛成绩。

2.竞赛过程中,因选手技能不熟练或疏忽大意造成仪器设备严重损坏,由裁判组裁定其竞赛暂停,保留竞赛资格,待问题处理后,经裁判长批准方可继续比赛,累计其有效竞赛成绩,所用时间计入比赛用时。

3.竞赛过程中,产生重大安全事故、或有产生重大安全事故隐患,经裁判员提示无效的,裁判员可暂停其竞赛,由裁判长裁定其竞赛结束,保留有效竞赛成绩。

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

嵌入式系统开发基础——基于ARM9微处理器C语言程序设计各章习题

第一章习题 1。嵌入某种微处理器或单片机的测试和控制系统称为嵌入式控制系统(Embedded Control System)。 在应用上大致分为两个层次,以MCS-51为代表的8位单片机和以ARM技术为基础的32位精减指令系统单片机 2。目标机上安装某种嵌入式操作系统和不安装嵌入式操作系统, 以MCS-51为代表的8位单片机不安装嵌入式操作系统。 3。32位、16位和8位 5。32位、16位 6。在大端格式中,字数据的高字节存储在低字节单元中,而字数据的低字节则存放在高地址单元中。 在小端存储格式中,低地址单元存放的是字数据的低字节,高地址单元中,存放的是数据的高字节。 第二章习题 (略) 第三章习题 1。 (1)寄存器大约有17类,每个的定义都是寄存器名字前面加一个小写”r” (2)在56个中断源中,有32个中断源提供中断控制器,其中,外部中断EINT4~EINT7通过“或”的形式提供一个中断源送至中断控制器,EINT8~EINT23也通过“或”的形式提供一个中断源送至中断控制器。 第四章习题 1,56个中断源,有32个中断源提供中断控制器 2,两种中断模式,即FIQ模式(快速模式)和IRQ模式(通用模式)。通过中断模式控制寄存器设置。 3,常用的有5个,它们是中断模式控制寄存器,控制中断模式;中断屏蔽寄存器,控制中断允许和禁止;中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的;中断优先级寄存器,它和中断仲裁器配合,决定中断优先级。

4,中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的。中断源向CPU申请了中断如果该中断源没被屏蔽并且没有和它同级或高级的中断源申请中断,才能被响应。系统中可以有多个中断源向CPU申请中断,但同一时刻CPU只能响应一个最高级的中断源中断请求。中断源挂起寄存器和中断挂起寄存器反映了中断系统不同时段的状态。 5,进入中断服务程序先清中断源挂起寄存器和中断挂起寄存器;中断结束,将该中断源屏蔽。 6,将该中断源屏蔽取消;将该中断源屏蔽。 第五章习题 1,S3C2410芯片上共有117个多功能的输人/输出引脚,它们是。 ?1个23位的输出端口(端口A); 。1个11位的输入/输出端口(端口B); 。1个16位输入/输出端口(端口C); ?1个16位输入/输出端口(端口D); ?1个16位输入/输出端口(端口E); ?1个8位输人/输出端口(端口F); ?1个16位输入/输出端口(端口G); 。1个11位的输入/输出端口(端口H)。 2,S3C2410 I/O口的控制寄存器、数据寄存器、上拉电阻允许寄存器的作用? 端口控制寄存器定义了每个引脚的功能;与I/O口进行数据操作,不管是输入还是输出,都是通过该口的数据寄存器进行的,如果该端口定义为输出端口,那么可以向GPnDA T的相应位写数据。如果该端口定义为输人端端口,那么可以从GPnDAT的相应位读出数据。 端口上拉寄存器控制每个端口组上拉电阻的使能/禁止。如果上拉寄存器某一位为0,则相应的端口上拉电阻被使能,该位做基本输入/输出使用,即第1功能;如果上拉寄存器某一位是1,则相应的端口上拉电阻被禁止,该位做第2功能使用。 5, rGPBCON=rGPBCON& 0xFFFFFC∣1; //蜂鸣器配置,PB1口接蜂鸣器,输出delay(1000); rGPBDAT & = 0xFFFFFE; //蜂鸣器响,低电平有效 rGPBDAT∣=1; // 蜂鸣器停 第六章习题 3,S3C2410 UART波特率如何确定?

什么是嵌入式软件开发嵌入式系统软件开发所需要学习那些知识_百(精)

什么是嵌入式软件开发?嵌入式系统软件开发所需要学习那些知识? 随着智能化和信息化网络化的不断发展,嵌入式技能已经日趋成为一种新时代新技术革命的关键。对于嵌入式系统和嵌入式软件开发人员来说,这份职业无疑是种高端应用技术的结合。是一个很有前景的职业。 嵌入式趋势来势汹涌,目前为止已经被很多企业所应用,对于这方面人才的需求更是倍感吃紧。关于嵌入式具体应用不做详细的解说,在这里有必要强调一下,嵌入式软件开发是含义,和要想在嵌入式软件开发中取得不菲的成绩所需掌握那些最基础的知识。 嵌入式技术执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,嵌入式技术及应用是计算机应用技术的新发展,具有广泛的应用领域和发展前景,就业形势看好。 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑,笼统地来说,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 这么多的应用可见嵌入式系统的前景和人才需求是相当大的,在最近几年中关于这一类的培训也层出不穷,所涉及到的课程和知识点相对来说还是有点差异的,在深圳达内福田培训中心网站上看到了关于嵌入式系统软件开发所需要掌握的几大知识点,感觉划分的很细致。 主要包含以下8个核心部分 1.Linux操作系统核心

!嵌入式系统开发资料(入门必备)

获取更多权威电子书请登录https://www.360docs.net/doc/275559721.html, ARM嵌入式系统开发综述ARM开发工程师入门宝典

获取更多权威电子书请登录https://www.360docs.net/doc/275559721.html, 前言 嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。 嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM嵌入式系统开发流程。

获取更多权威电子书请登录https://www.360docs.net/doc/275559721.html, 目录 前言 (2) 1 嵌入式开发平台 (4) 1.1 ARM的开发平台: (4) 1.2 器件选型 (7) 2 工具选择 (11) 3 编译和连接 (13) 3.1 RVCT的优化级别与优化方向 (16) 3.2 Multifile compilation (21) 3.3调试 (22) 4 操作系统 (23) 4.1 哪里可以得到os 软件包 (Open Source and Linux Kernel) (25) 4.2 安装镜像 (26) 4.3 交叉编译 (26) 总结 (27)

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 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所示。

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

嵌入式底层软件开发方法

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

如何选择嵌入式软件开发平台

久前,市场研究机构Embedded Market Forecasters (EMF)发布了一份报告指出:与嵌入式Linux平台相比,基于Microsoft Windows Embedded操作系统平台进行嵌入式系统开发,速度快43%,开发成本低68%.得出这个结论所采用的是TCD (Total Cost of Development,开发总成本)。 这个结论一经发布,可谓一石激起千层浪,热衷于嵌入式Linux的人们纷纷出来辩论,对其提出质疑。人们首先要怀疑这份报告的公正性,因为报告作者——EMF分析师Jerry Krasner博士公开承认,微软为他做出这份研究报告向他支付了费用。 在包括嵌入式软件在内的大多数软件领域,微软的地位无疑是非常重要的。Linux不仅因为继承了Unix的技术特色,更因为开放源代码而在商业机制上与一贯封闭的微软相对垒,赢得了众多口碑。不过,我们不应该忘记,在嵌入式软件开发领域并不是两军对垒,而是三足鼎立。这里还有一个非常重要的阵营——商业嵌入式软件开发工具提供商,例如Wind River的VxWorks.在激烈竞争的商业环境中,谁都希望以更低的成本、更快的速度推出满足市场需求、具有独特竞争力的产品呢。那么,嵌入式软件开发平台究竟应该采用什么样的衡量标准呢?哪一种嵌入式软件开发平台更能有效地帮助电子产品开发商降低产品成本、加快上市速度呢?为了对这些问题有一个全面的认识,让我们对来自微软、嵌入式Linux和商业嵌入式软件开发商的声音做一个全面的了解。 争执,从衡量尺度开始 衡量任何事情,都必须先有一个标准的尺度。为了说明什么样的嵌入式开发平台最经济有效,首先必须形成一套衡量标准。在这个关键问题上,的确是公说公有理、婆说婆有理。究竟谁的对,我们不妨来个“兼听则明”。 受微软公司的委托,EMF研究机构Krasner博士所提出的报告标题是《TCD:嵌入式开发平台的成本评估框架》,其中首先针对如何评估一个嵌入式软件开发平台提出了一套方法。Krasner博士说:“TCD( Total Cost of Development)评估框架可以帮助嵌入式设备制造厂商评估他们花在软件设计中的总体成本,从而便于他们提高开发设计质量,控制开发设计成本。” Krasner博士在报告中提出了这样一个模型: TCD=TTM x NOE x CPMM其中:TTM(Time to Market)为产品从开发工作开始到上市所用的时间,以“月”为单位;NOE(Number of Engineers used)为开发该产品所需的工程师数量;CPMM(Cost per Man-Month)为每个工程师每个月所需的费用。 Krasner的调查结果认为:Windows Embedded平台的平均TTM为8.1个月,而嵌入式Linux平台的平均TTM为14.3个月,前者比后者快了43%;从对软件工程师的需求来看,Windows Embedded 平台中每开发一个产品所需的平均工程师数量为7.9人,而嵌入式Linux平台需要14.2人,前者比后者节省44%.不管是在哪一种平台之中,调查报告把每个嵌入式软件工程师的平均月成本都假定为

嵌入式软件开发入门教程

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

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

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

* 本文由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 ]

嵌入式软件编程规范

TRZN TRZN 嵌入式软件编程规范

1文档概述 (4) 1.1关于本文档 (4) 1.2参考文献 (4) 2排版 (5) 3注释 (9) 4标识符命名 (17) 5可读性 (23) 6变量、结构 (24) 7宏 (29) 8函数、过程 (31) 9可测性 (38) 10代码版本管理 (40) 10.1代码质量定义 (40) 10.2G IT分支定义 (40) 10.3G IT代码引入规定 (41) 10.4G IT代码C OMMIT顺序 (41) 10.5C OMMIT文件过程中的其他注意事项 (41) 11附录A –推荐编辑器的默认配置修改 (42) 11.1K EIL U V ISION5默认配置修改 (42)

1 文档概述 1.1 关于本文档 本文档规范了芜湖天人智能有限公司嵌入式软件部软件代码的书写规范和原则。 本文档仅供公司内部员工使用。 公司机密,严禁外传。 本文档中各规则的格式如下: 【规则编号】 [规则内容] [[标记]] 其中[标记]的含义如下: (必须):表示该条规则是必须遵守的。 (建议):表示该条规则是建议遵守的。 (可选)或没有标记:表示该条规则是可选择遵守的。 本文档的示例中,如有使用“//”,并非代码注释,而是文档的注释(有可能是文档中对代码注释的解释)。 1.2 参考文献 [1]高质量C++编程 [2]Effective C++ [3]More Effective C++ [4]C++ Primer [5]Thinking in C++

2 排版 ●【规则 2-1】程序块要采用缩进风格编写,缩进的空格数为4个,对齐使用空格键,不得使用TAB键。 [必须] 嵌入式软件开发的代码编辑器,推荐使用Keil uVision5,编辑器参数设置见附录A。 ●【规则 2-2】相对独立的程序块之间、变量说明之后必须加空行。[必须] 示例: ●【规则 2-3】较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操 作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。[必须] 示例: ●【规则 2-4】循环、判断等语句中若有较长的表达式或语句,则要进行适当的分行,长表达式要在低 优先级操作符处划分新行,操作符放在行尾。[必须] 示例:

嵌入式软件开发流程

嵌入式软件的开发流程 嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以此满足系统对功能、成本、体积和功耗等要求。最简单的嵌入式系统仅有执行单一功能的控制能力,比如说单片机的应用,在唯一的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所示。

嵌入式软件开发流程

.嵌入式软件开发流程

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

嵌入式软件开发流程 一、嵌入式软件开发流程 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) {

打造一个终极嵌入式软件工作平台

打造一个终极嵌入式软件工作平台 能否及时高效地构建嵌入式系统,取决于软件开发人员在工作台上是否有合适工具来帮助完成开发工作。虽然预算通常受到限制,但有些工具是每位嵌入式软件工程师都必需的,这些工具可以帮助他们大幅减少构建、调试和验证其设计所需的时间。 对工程师来说好消息是,打造一个包含完成开发工作所需全部工具的终极嵌入式软件工作台,并不需要高达上万美元的费用。但是,有些基本工具是每位开发人员都必须拥有的,包括专业调试探头和逻辑分析仪,以及简单的手工工具。下面我们将了解哪些工具是必需的,以及如何选择这些工具。 选择调试器开发人员的工作台上必备的第一种最重要工具是调试器。调试器的作用就如同包含应用代码的主机开发机与将要运行应用代码的目标嵌入式处理器之间的桥梁。调试器提供几种关键功能: 提取已编译和链接的应用,并将其加载到目标存储器中。 向目标处理器告知调试器已连接,并配置所有板载硬件调试模块和功能。 负责设置软件和硬件断点。 在调试过程中可用于读取寄存器和片上存储器。 接收实时应用程序跟踪信息以用于调试应用程序。 在很多实例中,开发人员仅选择他们能够找到的最低成本的调试器,或很多开发套件附带的默认板载(OB) 调试器。这种做法的问题在于OB 调试器的功能非常有限。 比较调试器之间差异的一种很好的方法是检查SEGGER 提供的调试工具。很多不同微控制器供应商的多种开发套件都提供了基于SEGGER J-Link 的OB 调试器。下图显示了面向各种目标内核的不同J-Link OB 调试器的典型特性集(图1)。 图1:低成本开发板附带的各种SEGGER J-Link OB 调试器的特性集示例(图片来源:SEGGER) 请注意,表格的最右侧显示了三个关键速度特性:SWO 速度、接口速度和下载性能。对

嵌入式软件开发流程

嵌入式软件开发流程

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

嵌入式软件开发流程 一、嵌入式软件开发流程 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所示。

嵌入式开发必须具备哪些基础知识

嵌入式开发必须具备哪些基础知识 嵌入式操作系统简介 嵌入式操作系统(EmbeddedSystem)是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。举例来说,大到油田的集散控制系统和工厂流水线,小到家用VCD机或手机,甚至组成普通PC终端设备的键盘、鼠标、硬盘、Modem等均是由嵌入式处理器控制的。 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set TopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 为什么要学嵌入式软件开发?好处是什么? (1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。 (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌

相关文档
最新文档