
搞好开发前的原型设计
原型开发目前在开放流程中受到了更多的重视,同样嵌入式软件也是非常需要的。比如说一个录音机版面的设计,可以定义好版面上面的按键以及每个按键的功能。然后画出状态转化图,写清楚每个按键何时可以触发,触发后由哪个状态转入别的其他状态。原型设计好了,组织专家,工程师进行评审,尽可能多的找出原型中不合理需要改进的地方;改进以后,有必要可以进行再一次的评审工作。每一次评审工作需要记录评审建议是否需要解决?如何解决以及实际解决情况。
进行设计和开发工作
设计和开发工作需要设立里程碑。每个里程碑结束前都需要进行评审工作。由于嵌入式软件的运行环境不同,受到很大的限制,所以在进行开发之前需要进行编程规范工作,编码的时候需要严格按照编码要求进行工作,每一个条款都需要认真执行和审查。现在业界提供许多关于嵌入式软件开发的标准,大家可以通过网站搜索,最好能够购买业界一些比较著名的标准。目前市场上也提供许多关于代码检验的工具。为什么一直提出代码编码规范?这是因为嵌入式软件的质量与代码规范是十分重要的。举个例子,著名的阿里亚火箭失事,专家进行详细的调查工作,最后发现问题出在代码上。代码是符合标准C语言的,但是在运行过程中由于程序员将一个长整形变量赋给了一个短整形变量,造成内存溢出,这是导致火箭失事的关键所在
代码测试
当程序开发完毕,需要进行测试工作,但是在程序烧入或固化芯片之前如何进行测试呢?这里介绍一种方法:比如程序时使用C语言进行开发的,请将所有的 *** 作都封入在函数中,函数的定义都在相应的头文件中定义(h),然后设计测试用例,书写测试代码,测试代码包含相应头文件,可以对函数进行检测。测试案例往往分为两类:一种是功能测试,主要测试函数的功能;另外一种是错误参数测试,主要检查程序对进行错误参数进行检验。
功能测试
这种测试的运行往往需要通过仿真器辅助完成,比如类似录音机软件程序,分别测试播放,加大(减小)音量,停止,暂停(取消暂停),快速前进,快速后退,录音对应的功能是否能够正常运行。
错误测试
主要测试函数在调用参数无效的时候,系统是否会按照规定返回正确的错误代码。比如
functiontest(intTid)
测试的时候给出一个错误的序列号(Tid),看程序是否返回正确的错误代码。
对于函数functiontest1(intt)需要进行特出的处理
t定义为1-100
我们可以按照边界值法和等价分类法进行测试
上边界:-1,0,1
下边界:99,100,101、中边界:50
所以测试用例集合为(-1,0,1,50,99,100,101),其中-1,101为错误测试用例,其他为正确测试用例
功能组合测试
在进行完功能测试后,我们可以进行功能组和测试,还是拿录音机程序做个例子。我们可以定义将音量增加到10,快速前进,检查音量,看是否还是为10;播放,暂停,试图调整音量,检查调整音量的功能是否可以被成功执行。
烧入固化测试
当以上测试都通过后可以将程序烧入芯片或者固化,进行最后在实际环境中进行测试工作。
应用开发,就是根据你所研究的领域进行有选择的硬件开发、以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式 *** 作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括 *** 作系统软件(OS)(要求实时和多任务 *** 作)和应用程序编程。嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。推荐北京精仪达盛、亚龙、天煌等品牌的硬件产品,如系统开发板、DSP、ARM等。
下面说你工作时要用稿的知识
1.处理器技术1)通用处理器2)单用途处理器3)专用处理器
2.IC技术1)全定制/VLSI2)半定制ASIC3)可编程ASIC
3.设计/验证技术
嵌入式系统的设计技术主要包括硬件设计技术和软件设计技术两大类。硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术芯片级设计技术的核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术将预先设计好的低抽象级实现用于高级。
当然、一个出色的职业经理,除了商务,这些技术方面,也是必须要懂的。
希望以上对你有所启示,不懂了可以留言、。
驱动开发和应用开发的前景?你想问的是学好这些需要哪些基本功力是吧?真正的技术是积累出来的,多看专业书。等你学习到一定阶段你就会发现什么驱动,什么应用都是雕虫小技而已,现在慢慢学,不用急。多留心就好
我问你你学习这一系列的东西是为了什么?开公司还是当老师?还是没事自己搞研发?现在时代的产品要求的是全方面的人才,艺多不压身,你着重往JAVA方面发展吧。但是C也是必须的,知道吧小弟,出来了就是工程师,想要比别人优秀,就要让自己的水平在你所在的领域游刃有余,要让你工作的地方没你不行。至于怎样达到这个水平,哪是你自己的事了。
一、主体不同
1、嵌入式硬件:用于控制、监视或者辅助 *** 作机器和设备的装置。
2、嵌入式软件:就是嵌入在硬件中的 *** 作系统和开发工具软件。
二、内容不同
1、嵌入式硬件:作为装置或设备的一部分,它是一个控制程序存储在ROM中的嵌入式处理器控制板。
2、嵌入式软件:支撑软件是用于帮助和支持软件开发的软件,通常包括数据库和开发工具,其中以数据库最为重要。
三、特点不同
1、嵌入式硬件:都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的 *** 作或任务。
2、嵌入式软件:由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型 *** 作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。
1Keil是业界最受欢迎的51单片机开发工具之一,它拥有流畅的用户界面与强大的仿真功能。
2RealViewMDK
开发工具源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是arm
公司目前最新推出的针对各种嵌入式处理器的软件开发工具。
3MPLAB是一种易学易用的PIC
系列单片机产品的集成开发工具软件。该软件由MPLAB编辑程序、MPLAB项目管理程序(Projectmanager)、MPASM
汇编程序(Windows版)和MPLAB-SIM模拟调试程序等工具软件组成。
4VisualDSP++是一款针对ADI
Blackfin、SHARC
和TigerSHARC等处理器易安装易使用的软件开发和调试集成环境(IDDE)。通过单一界面可以从始至终高效地管理项目。该集成开发环境可以使您在编辑、构建、调试 *** 作间快速轻松地切换。
5XilinxPlatformStudio
集成开发环境包含很多嵌入式工具、IP、库、向导和设计生成器,能帮助快速创建定制的嵌入式平台。
6NiosII
IDE提供了一个统一的开发平台,用于所有NiosII
处理器系统。仅仅通过一台PC机、一片Altera的FPGA以及一根JTAG下载电缆,软件开发人员就能够往NiosII处理器系统写入程序以及和NiosII
处理器系统进行通讯。
7Workbench开发平台继承了其原有的Tornado
集成开发平台的一贯优势,并且功能更加强大,由于新采用了先进的Eclipse软件框架结构,从而使整个系统更加开放和易于扩展。
8
IAREWarm集成开发环境支持多种代码优化方式,极高的代码效率arm7/arm9内核芯片 *** 作简单,易学易用
51和STM32之类的单片机一直用的KEIL。
飞思卡尔的用的是codewarrior,现在被恩智浦收购了,恩智浦又出了S32。编译代码的我一般接触的就是这些比较多。还有就是ARM软件eclipse,GDBServer,Jlink软件。
编写代码我喜欢用VIM,看代码之类的有souceinsight等等。
嵌入式系统是由软件和硬件组成的整体。
硬件部分可以分成嵌入式处理器和外部设备。
处理器是整个系统的核心,负责处理所有的软件程序以及外部设备的信号。
外部设备在不同的系统中有不同的选择。比如在汽车上,外部设备主要是传感器,用于采集数据;而在一部手机上,外部设备可以是键盘、液晶屏幕等。
软件部分可以分成两层,最靠近硬件的是嵌入式 *** 作系统。
*** 作系统是软硬件的接口,负责管理系统的所有软件和硬件资源。 *** 作系统还可以通过驱动程序与外部设备打交道。
最上层的是应用软件,应用软件利用 *** 作系统提供的功能开发出针对某个需求的程序,供用户使用。用户最终是和应用软件打交道,例如在手机上编写一条短信,用户看到的是短信编写软件的界面,而看不到里面的 *** 作系统以及嵌入式处理器等硬件。
一般来说,嵌入式硬件指逻辑电路、嵌入式处理器、微控制器、存储系统和硬件设计技巧等。
嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。
国内通常所说的嵌入式硬件指利用处理器开发外部设备方面。
嵌入式软件就是嵌入在硬件中的 *** 作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。
嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。
但国内通常所说的嵌入式软件主要指最靠近硬件的系统软件与支撑软件部分。
嵌入式系统的软件组成?打开CSDN APP
Copyright © 1999-2020, CSDNNET, All Rights Reserved
登录
不三不四特山人
关注
嵌入式系统的软件组成 原创
2020-02-19 20:47:50
2点赞
不三不四特山人
码龄1年
关注
嵌入式系统软件的重要组成部分
11:嵌入式软件的特点
嵌入式软件除了具有计算机软件的一般特性外,还具有一些与嵌入式系统特性密切相关的特点。因此,嵌入式系统与通用计算机软件有所不同:
1:软件与硬件一体化,软件固化存储。
在嵌入式系统中, *** 作系统和应用系统集成与计算机硬件系统中,系统软件、应用软件和系统的硬件一体化,我们为了提高系统的启动、执行速度和系统的可靠性,嵌入式系统一般都固化与半导体存储器中,也大可以认为是压缩后存储在内存之中,而不会存储与磁盘等外存储器之中。
2:软件代码时空效率要求高,实时性要求高。
当我们在设计嵌入式的应用时,特别需要考虑的是成本的因素,嵌入式软件的时间和空间上都受到了严格的限制。嵌入式系统往往有较高的实时性要求,软件对于外部做出反应的时间要快,在某些情况下还要求响应时间是确定的和可预测性的。
3:软件的应用环境复杂,开发的难度大。
在我们生活的环境之中,是有许许多多的自然因素是我们无法预测和控制的,这也就使得我们的嵌入式系统的工作环境也是一样。于此因此,在嵌入式软件开发中一般都是需要涉及到底层软件,这就要求开发人员要有扎实的软件和硬件基础,能够灵活的运用不同的开发手段和工具。
4:软件具有较长的生命周期。
这个就比较简单的理解了,这些之中有许多是很久以前20世纪就以研发出来并且配套产品一同进入我们的市场。
12:嵌入式系统的软件结构
一般来说,嵌入式系统可以根据所运行的环境不同和要求不同将嵌入式系统的软件划分位多种不同的结构。
1:简单的轮询(Round-Robin)结构
在一些低端的嵌入式系统中,处理器的处理能力比较低,存储的容量也比较小,所以一般来说系统的功能都是相对的比较简单,通常也只需要一写简单的控制 *** 作。
而最简单的软件结构就是轮询结构,其工作原理就可以类比高级语言中C语言的for循环,重复循环检查每个外部输入条件,一旦有需要或者说是达到标准的任务时,就进行相关的处理。
//初始化
while(TRUE)
{
if(I/O设备1需要服务);//执行设备1服务函数
if(I/O设备2需要服务);//执行设备2服务函数
if(I/O设备3需要服务);//执行设备3服务函数
if(I/O设备4需要服务);//执行设备4服务函数
if(I/O设备n需要服务);//执行设备n服务函数
}
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
电子相关专业的同学应该用过一个仪器就是“数字万用表”,而这个仪器就是根据这个简单的结构进行的测量 *** 作
该结构的优点在于结构简单,便于编程。但是因为缺少了中断机制,所以存在着程序随机切换时的一些潜在问题。
2:带中断的轮询结构
这种结构在简单的轮询结构的“主循环”基础上增加中断服务程序(ISR)
中断服务程序处理特别紧急的服务请求,设置状态标志;循环主程序轮询这些状态标志,并进行后续的处理。
这种结构也被称为中断驱动结构或前后台结构。
去除硬件部分不说,主要就是归结为三个部分
1系统本身。
2驱动。
3应用成。
系统可以想象成大家都知道的windows
驱动,玩过 电脑的都装过吧。
应用成,大家都熟悉的QQ属于其中一种,就是用户可以直接 *** 作的。
用户想用的就是应用层,但是windows本身只是给你提供了一个管理平台,它就是一个管理员一样。那么应用层的数据从哪里来呢,从硬件资源上来,比如摄像头。这个时候就需要驱动。装了这个驱动,就相当于做了一个桥梁。驱动的作用也就是这个。
以上就是关于嵌入式软件开发的流程全部的内容,包括:嵌入式软件开发的流程、嵌入式应用软件开发与嵌入式系统软件开发区别(什么是嵌入式软件开发)、嵌入式硬件和嵌入式软件的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)