嵌入式软件分为哪两个部分

嵌入式软件分为哪两个部分,第1张

嵌入式软件分为哪两个部分,从底层硬件到上层应用,嵌入式软件的开发可以分为以下三类:

1、 嵌入式 *** 作系统开发:嵌入式 *** 作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式 *** 作系统通常以商业运作为主,从上世纪80年代起,商业化的嵌入式 *** 作系统开始得到蓬勃发展。

2、 嵌入式支撑软件开发:支撑软件是用于帮助和支持软件开发的软件,通常包括数据库和开发工具,其中以数据库最为重要。随着移动通信技术的进步,人们对移动数据处理提出了更高的要求,嵌入式数据库技术已经得到了学术、工业、军事、民用部门等各方面的重视。嵌入式移动数据库或简称为移动数据库(EMDBS)是支持移动计算或某种特定计算模式的数据库管理系统,数据库系统与 *** 作系统、具体应用集成在一起,运行在各种智能型嵌入设备或移动设备上。

如果你家庭比较富裕的话最好能参加一个培训。自己琢磨比较耗时学习还不系统,而且有些东西不是你自己胡思乱想就能够想出来的,需要有人引导。

如果经济比较拮据的话那我给出以下的路子可能会对你有帮助。

首先学一下C语言,有一个好的编程基础;然后把微机原理给仔细看一下,这个必须得学通了,这是基础。单片机最好看C51系列的书,这个是为嵌入式开发打基础的。最后就是学系linux *** 作系统的知识和ARM的基本原理,最好能够做一些简单的ARM的小程序,因为它和单片机还是有所不同的,ARM对外设 *** 作的时候不单片机似的对外设地址 *** 作了,而是对外设的寄存起 *** 作,还有相应的控制寄存器。

linux是重点,要是想做开发的话最好学Red

Hat

Linux,其中的一些基本的shell命令必须的熟知,还有就是linux的驱动程序的框架和应用程序的编写。驱动程序你最好找一个比较经典而又简单的程序看一下,对照网上的知识;写应用程序你必须得懂得对驱动程序文件的一些打开,读写,关闭等基本 *** 作,还有必须得理解多进程和多线程和其中的一些细节(如死锁的概念和解决方法,多进程间的通信方法等等)

嵌入式意味着产片开发,多个设备之间免不了通信,所以你必须得学一些通信的协议,首先学简单点的如Modbus,CDT,101等电力通信协议,然后深入学USB协议和TCP/IP协议。

这方面的知识很多的,一时间介绍不了那么多,只是大概的给你提个方向,具体的细节你要自己查资料或通过培训解决了。

按工作经验来算,我应该叫你一声大哥了,毕竟小弟只是刚工作一年多点,关于大哥提出的那10个问题,小弟有些意见不知道对大哥是否有帮助,如果大哥觉得小弟资质尚浅,那可就对不住大哥浪费时间来看小弟的回答了。。。。

1:大哥的开发经验在这个领域能发挥多少?这个主要就看大哥以后会从事哪个更具体的方向了。说白了,嵌入式就2个大的方向--底层驱动/上层应用软件开发。如果大哥以后会涉及到底层驱动开发,那么之前的那4年C++开发经验在这基本上就没有多大用处了。如果大哥会一直做上层软件开发,那根据具体不同平台,之前的经验会对大哥有不同影响。比如现在大哥是做基于单片机的设计,那么能用到的只是之前4年得一些程序设计思想、思路,而其余一些具体实现大哥都还得去学习。然而要是大哥将来做的是基于大型 *** 作系统的平台,如arm/linux,那么之前的经验对大哥来说,会有很大的帮助。

2:设计理念这东西,恕小弟才疏学浅。在此只能说说一个嵌入式设备产品出来后需要满足的一些基本要素:

一、稳定性强:包括硬件稳定性和软件稳定性,这里硬件方面不需要大哥关注,那么主要的就是软件上了。那么大哥在软件设计时需要注意的重点就是,要保证产品不会因自己的程序导致硬件上的错误。

二、实时性:大哥现在用的是单片机,单片机的事件触发都是以中断形式产生的并且单片机不支持多任务,那么在此,大哥设计之前,须知道这产品主要的功能模块是什么,次要功能是啥,从而将这些功能模块所涉及到的中断设置为相应优先级。举个例子,大哥这次做的电力产品是用来进行电表数据抄收的中间产品,那么其最少就包括2个功能--对电表的数据抄收/将抄收到的数据发送给上位机,如果在抄收电表的同时,接收到上位机命令,需要返回数据给上位机,大哥就得考虑孰轻孰重,谁先执行,谁该等待。

三、可拓展性:现在的硬件发展越来越来,大哥想要自己的嵌入式产品具备较强的生命力,那么就必须跟得上脚步,使得自己的产品无论是硬件上,还是软件上都有较强的扩展性。如此,在程序设计方面,大哥第三问所说的模块化以及面向对象理念也就是必然的了(当然,这里的必然是以产品的复杂度为前提的,如果是一些小的东西也没必要搞这么复杂)。

4:芯片之间的通信。这是必须有的,特别是做基于单片机得开发,这些东西都需要大哥去寻找对应芯片的开发资料,了解其 *** 作时序,对芯片进行相应的读写 *** 作。

5:有,但大哥现在涉及到的单片机没有。如果以后大哥接触到基于带 *** 作系统的平台,那么可以根据具体的 *** 作系统,实现多任务、进程通信等类似WIN32的程序设计,不同之处基本上只是接口函数以及实现方式的差异罢了。

6:做嵌入式,了解所在的行业知识是必要的,不过也只需要了解和你产品相关部分的东西罢了,因为这可能对产品软件设计上有很大影响。举个例子,还是电力方面。假设这次大哥所作的监控产品是用于读取电表上的计量数据(电流、电压、有功、无功等等),而电力规约上的数据项成百上千(具体没数过,反正就是挺多),那么大哥最少要知道,哪些数据项是电业局比较关心的,哪些数据项是不那么重要要的,哪些数据项是所读取电表拥有的,哪些是被读取电表没有的,这样,在程序设计时,根据不同情况,筛选合适的数据,既减少读表数据的时间,又减轻代码量,不挺好么。

7:关于开发环境,这个小弟不能提供有用建议了。。。因为基于单片机 ,我用的还是keil。。

要是大哥有好的,方便也推荐下。。

8:大哥做了这么多年开发,想必了解团队的重要性吧,先融入你的团队,之后项目上的任何问题,都将是你团队共同的问题。莫非大哥是一个人在战斗?

9:我想大哥应该没机会接触到这个DOS时代的开发技术了,毕竟大哥以后可能是往软件架构上走,不会做底层开发,不会涉及到汇编,用C就足够了。

10:电路不需要精通,但最少要看的懂,比如知道芯片是通过哪几个管脚和某个外设相连,这样在写代码时才知道通过给哪几个管脚赋值,能够 *** 作某个外设。当然,如果是做基于 *** 作系统系统的纯软件设计,那么这些也都不需要懂了,只要知道接口函数就OK了,不过这样,做嵌入式和做WIN32就没啥区别了,那也就失去乐趣了。

好了,小弟能说的就这么多了,该睡了,明天还工作。。。希望对大哥能有所帮助,如果大哥看了觉得没啥益处,那么小弟抱歉,浪费大哥时间浏览这回答了。。

最后想说句,小弟是做电力数据采集产品方面的,不知道大哥做的电力产品具体是哪一块,有时间交流交流。

嵌入式软件是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式 *** 作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

嵌入式软件一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括 *** 作系统软件(OS)(要求实时和多任务 *** 作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而 *** 作系统控制着应用程序编程与硬件的交互作用。

嵌入式系统是由软件和硬件组成的整体。\x0d\\x0d\硬件部分可以分成嵌入式处理器和外部设备。\x0d\处理器是整个系统的核心,负责处理所有的软件程序以及外部设备的信号。\x0d\外部设备在不同的系统中有不同的选择。比如在汽车上,外部设备主要是传感器,用于采集数据;而在一部手机上,外部设备可以是键盘、液晶屏幕等。\x0d\\x0d\软件部分可以分成两层,最靠近硬件的是嵌入式 *** 作系统。\x0d\ *** 作系统是软硬件的接口,负责管理系统的所有软件和硬件资源。 *** 作系统还可以通过驱动程序与外部设备打交道。\x0d\最上层的是应用软件,应用软件利用 *** 作系统提供的功能开发出针对某个需求的程序,供用户使用。用户最终是和应用软件打交道,例如在手机上编写一条短信,用户看到的是短信编写软件的界面,而看不到里面的 *** 作系统以及嵌入式处理器等硬件。\x0d\\x0d\一般来说,嵌入式硬件指逻辑电路、嵌入式处理器、微控制器、存储系统和硬件设计技巧等。\x0d\嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。\x0d\\x0d\国内通常所说的嵌入式硬件指利用处理器开发外部设备方面。\x0d\\x0d\嵌入式软件就是嵌入在硬件中的 *** 作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。\x0d\嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。\x0d\\x0d\但国内通常所说的嵌入式软件主要指最靠近硬件的系统软件与支撑软件部分。

以上就是关于嵌入式软件分为哪两个部分全部的内容,包括:嵌入式软件分为哪两个部分、关于嵌入式的问题、Win32程序员转嵌入式开发需要怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10074892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存