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

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

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

能否及时高效地构建嵌入式系统,取决于软件开发人员在工作台上是否有合适工具来帮助完成开发工作。虽然预算通常受到限制,但有些工具是每位嵌入式软件工程师都必需的,这些工具可以帮助他们大幅减少构建、调试和验证其设计所需的时间。

对工程师来说好消息是,打造一个包含完成开发工作所需全部工具的终极嵌入式软件工作台,并不需要高达上万美元的费用。但是,有些基本工具是每位开发人员都必须拥有的,包括专业调试探头和逻辑分析仪,以及简单的手工工具。下面我们将了解哪些工具是必需的,以及如何选择这些工具。

选择调试器开发人员的工作台上必备的第一种最重要工具是调试器。调试器的作用就如同包含应用代码的主机开发机与将要运行应用代码的目标嵌入式处理器之间的桥梁。调试器提供几种关键功能:

提取已编译和链接的应用,并将其加载到目标存储器中。

向目标处理器告知调试器已连接,并配置所有板载硬件调试模块和功能。

负责设置软件和硬件断点。

在调试过程中可用于读取寄存器和片上存储器。

接收实时应用程序跟踪信息以用于调试应用程序。

在很多实例中,开发人员仅选择他们能够找到的最低成本的调试器,或很多开发套件附带的默认板载(OB) 调试器。这种做法的问题在于OB 调试器的功能非常有限。

比较调试器之间差异的一种很好的方法是检查SEGGER 提供的调试工具。很多不同微控制器供应商的多种开发套件都提供了基于SEGGER J-Link 的OB 调试器。下图显示了面向各种目标内核的不同J-Link OB 调试器的典型特性集(图1)。

图1:低成本开发板附带的各种SEGGER J-Link OB 调试器的特性集示例(图片来源:SEGGER)

请注意,表格的最右侧显示了三个关键速度特性:SWO 速度、接口速度和下载性能。对

组态软件的发展历史

1.3组态软件的产生和发展趋势 1.3.1组态软件的概念和产生背景 组态英文是“Configuration”,是用“应用软件”中提供的工具、方法、完成工程中某一具体任务的过程。组态软件指一些数据采集与过程控制的专用软件,是面向监控与数据采集(Supervisory Control and Date Acquisition,SCADA)的自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各种硬件厂家的计算机和I/O产品,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、硬件的全部接口,进行系统集成。 在“组态”概念出现之前,是通过编写程序(如使用BASIC、C、FORTRAN 等)来实现某一任务的,编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。组态软件的出现,解决了这个问题。“组态”的概念是伴随集散型控制系统(Distributed Control System简称DCS)的应用产生的,如DCS组态,PLC 梯形图组态。在其他行业也有组态的概念,如AutoCAD,Photoshop,办公软件(powerpoint)都存在相似的操作,即用软件提供的工具来形成自己的作品,并以数据文件保存作品,而不是执行程序。组态形成的数据只有其制造工具或其他专用工具才一能识别。由于个人计算机的普及和技术的逐渐成熟,如何利用PC进行工业监控,成为工业控制领域的重要研究方向,市场的发展使很多DSC和PLC 厂家主动公开通信协议,向“PC”监控完全开放,这不仅降低了监控成本,也使市场空间得以扩大,智能仪器、嵌入式系统和现场总线的出现,更使组态软件成为工业自动化系统中的灵魂。 1.3.2组态软件的功能特点 (l)功能多样。组态软件提供工业标准数学模型库和控制功能库,组态模式灵活,能满足用户所需的测控要求。对测控信息的历史记录进行存储、显示、计算、分析、打印,界面操作灵活方便,具有双重安全体系,数据处理安全可靠。 (2)丰富的画面显示组态功能。提供给用户丰富方便的常用编辑工具和作图工具,提供工业设备图符、仪表图符,还提供趋势图、历史曲线、组数据分析图等:提供十分友好的图形化用户界面,包括Windows风格的窗口、弹出菜单、按

嵌入式软件平台系统设计说明书

面向行业手持设备的嵌入式Linux软件平台项目嵌入式Linux软件平台系统设计说明书 编写者:CY

版本说明

目录

1引言 1.1编写目的 本文档是为保证“面向行业手持设备的嵌入式linux软件平台”项目在整个开发过程中的完整性、可追溯性,并保证软件产品与《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》保持一致性而编写的。 预期读者为项目相关开发人员、项目管理人员和SCM、SQA人员、客户代表。 1.2背景 项目名称:面向行业手持设备的嵌入式Linux软件平台 用户:无线手持通信设备厂商 1.3基线 《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》 1.4范围 本软件结构设计说明书所涉及的内容范围包括总体的结构设计,系统单元的结构设计,系统主要数据结构说明,接口设计,运行设计,系统出错处理设计和维护设计。 1.5定义 无。 1.6参考资料 1)《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》 《面向行业手持设备的嵌入式Linux开发平台项目总体开发计划》 2)本文件中引用的其他文献、资料以及软件开发标准。 2总体设计 2.1概述 2.1.1功能描述 本产品要实现的功能包括: ●嵌入式Linux系统 ●目标系统的软件开发环境 ●对运行平台提供的各种接口,提供稳定的驱动程序 ●基于QT/embedded的图形用户界面 ●中文图形界面 ●中英文手写输入、键盘输入

●多媒体播放器 ●个人助理套件 ●英汉词典 ●浏览器 ●面向交通、物流行业的应用编程接口 本参考平台包括开发包和运行包。要求参考平台具备高度的可配置性,方便开发人员根据其需要在参考平台的基础上进行添加、裁减和上层开发,快速形成产品。 2.1.2运行环境 开发平台的运行环境:推荐采用PIII650以上CPU,内存大于128M,硬盘空间大于4G;推荐完全安装普华Linux 3.0,并安装开发包和目标系统源代码。 运行包硬件环境: 硬件采用PXA250开发板,规格如下: ●socketed processor for easy upgrades ●64 MBytes SDRAM ●32 MBytes Boot ROM ●32 MBytes Flash Memory ● 1 MByte SRAM ●one Intel? SA-1111? Companion Chip, which provides: — one PCMCIA slot — one Compact Flash slot — one USB Host port — PS/2 keyboard and mouse support ●Standard Microsystems LAN91C96* Ethernet controller ●touch-screen panel controllers: — Philips UCB 1400* — Burr Brown ADS7846* ●audio CODECs with MIC, LINE IN, and HEADPHONE connectors: — Philips UCB 1400 — Cirrus CS4201* ●Sharp LM8V31 LCD panel, with support for other LCD types

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

软件(内部)测试报告 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.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所示。

嵌入式系统软件嵌入式系统软件

嵌入式系统软件 杨剑锋 1. 嵌入式操作系统 嵌入式操作系统是个集合,而且是个无限集合 –监控程序?常规操作系统 (红外线?紫外线) –一维和多维 嵌入式操作系统常常有实时要求–早期:嵌入式操作系统= 实时操作系统 –近期: ?1)手持计算机和掌上计算机的出现; ?2)CPU速度的提高; ?3)常规操作系统增加实时进程调度的支持,如 POSIX.4 ?嵌入式操作系统<>实时操作系统 许多嵌入式操作系统的内核是微内核结构 许多嵌入式操作系统都不带磁盘 –根本不支持文件系统 –结构上为了设备驱动而支持文件系统,但不 支持文件系统的文件存储功能 许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术 许多嵌入式操作系统不划分“系统空间”和“用户空间” –操作系统的“内核”与外围应用程序之间不再 有物理的边界; –系统中所谓“进程”实际上全都是内核线程?静态连接、系统调用、进程调度/切换–对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之; –系统调用的界面太庞大; –共享变量的访问,需要谨慎对待; –把通用操作系统上的应用移植过来需考虑“可重入”的问题;

不分系统空间和用户空间<>必须静态连接–如DOS、CP/M的INT21 不分系统空间和用户空间<>不能用页面映射技术 –但只用于不同进程之间,而非不同空间之间 即使采用了存储管理,基本上都不采用页面交换技术 重启动技术(watch dog) 2. RTOS 是否实时 –一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题; –另一方面同时也是反映的速度在多大的程度上得到保证的问题 中断延迟(Interrupt Latency)–中断不可嵌套 –LINUX的Bottom Half –中断可嵌套:优先级中断 ?大多微处理器不支持; ?LINUX不支持; ?UNIX支持 –与指令集有关 –DMA操作有关 –保证系统调用的原子性有关 调度延迟(Scheduling Latency)–中断处理程序进程处理 –一般调度算法(Round Robin)不能及时选 中 –基于优先级调度算法,一般能及时选中?如果目标进程优先级低呢? –可剥夺调度和不可剥夺调度 ?LINUX是属于什么调度? ????????????→ 事件或软中断 Linux 既不是完全的可剥夺,也不是完全的不可剥夺 上下文切换延迟(Context Switch Latency)–大小取决于CPU和操作系统 –采用MMU > 不采用MMU 只要发生调度,就能选中目标进程吗? –根据时间片的耗用调整优先级 –拉开距离,分等级 对实时进程而言,“应该没有问题”不够。 是否可以不用中断、也不用调度,回到 最简单的“监控程序”?

嵌入式软件测试简介

一、嵌入式系统与嵌入式操作系统 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

嵌入式底层软件开发方法

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

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

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

嵌入式系统

第一章绪论 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.嵌入式软件的调试运行环境和固化运行环境主要区别是什么?

嵌入式软件开发入门教程

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

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

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

久前,市场研究机构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%.不管是在哪一种平台之中,调查报告把每个嵌入式软件工程师的平均月成本都假定为

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

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

基于ARM嵌入式工控机主板的人机界面组态软件开发方案

基于ARM嵌入式工控机主板的人机界面组态软件开发方案本文介绍基于ARM单片机的嵌入式控制系统的人机界面组态软件开发方案,嵌入式系统具有RS232,RS485串口,单片机TTL电平串口,I2C通讯接口,以太网接口,无线通讯,U盘存储,语音播放等功能。可以配套使用10寸,12寸,15寸,17寸,19寸,30寸,50寸等触摸屏显示器,电视机。嵌入式人机界面组态软件HMImaker开发显示操作界面,具有各种组态控件,可编程数据库,0代码,如制作PPT简单快速。ARM嵌入式控制系统具有单片机协议,modbus通讯协议,I2C通讯协议,西门子,三菱,台达,欧姆龙PLC协议,广泛应用于各种单片机人机界面,嵌入式人机界面,PLC人机界面开发,如检测设备,测量控制系统,自动化控制,排队叫号机,自助服务终端,触摸屏控制系统,仪器仪表系统,楼宇自动化,智能交通系统,监控系统,机电设备控制系统,汽车电子,工厂电子看板,美容医疗仪器。 关键词: ARM主板、嵌入式工控机、ARM工控主板、嵌入式主板、人机界面、触摸屏控制系统 第一章、绪论 传统工控机存在着一些缺点,比如高功耗,可维护性差,散热和稳定性差,脆弱的存储器系统以及体积和成本因素,使之在工业控制的某些应用领域,无法达到令人满意的效果,不能满足应用需求,限制了IPC在诸多工业控制场合的应用。 ARM嵌入式工控机开关机通电断电即可,省去操作系统崩溃的担忧,通电即进入操作界面,无需等待,抗强电磁干扰,超低功耗,刷新速度快,长期运行,永不不死机,稳定可靠。系统无发热、永不崩溃、可承受连续插拔断电和3秒快速启动运行等诸多功能,无须采用风扇散热,防尘、防水性能好;功率低,节能,绿色环保。

软件设计说明书嵌入式软件范例

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显著特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z 3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下: ㈡指令描述 XXX 系统主要有如下指令: ㈢人机界面(GOT) 1、参数设置

人机界面(GOT)可用于参数设置和数据的显示(如图所示) 2、手动操作 人机界面亦可制作手动调试所需的各种按键,以替代繁琐的按钮(如图) 3、生产信息 人机界面还可用于显示生产时的各种数据以及PLC内部的信息,比如外部引脚的通断 信息、生产时产生的报警信息等(如下图) ㈣ XXX 系统的接口及编程 1、硬件接口 XXX系统与电脑的接口可以有两种方式:直接控制方式和间接控制方式。直接控制方式就是将PLC的RS232接口直接与电脑的RS232接口对接(如图1-1);间接控制方式就是将PLC的RS232接口与触摸屏的RS232接口对接,然后将电脑的RS232接口与触摸屏的RS422接口对接,然后对该外设进行间接操作而实现控制(如图1-2)。 2、程式流程方框图 A、系统回原点流程图 B

嵌入式软件测试工程师

嵌入式软件测试工程师 一、嵌入式软件测试工程师任职条件 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、做好测试和软硬件部门的沟通和协调工作。

嵌入式软件开发流程

.嵌入式软件开发流程

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

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

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

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

相关文档
最新文档