为啥要用嵌入式软件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥要用嵌入式软件相关的知识,希望对你有一定的参考价值。

参考技术A 问题一:什么是嵌入式软件和非嵌入式软件 简单的说,嵌入式软件就是基于嵌入式平台(比如ARM+Linux)的应用软件或者系统软件;而非嵌入式软件大多指基于通用处理器和操作系统平台俯软件(比如桌面应用软件)。

问题二:嵌入式为什么要有操作系统 在8位或16位嵌入式系统应用中,由于CPU资源量比较少,任务比较简单,程序员可以在应用程序中管理CPU资源,而不一定要专用的系统软件。如果嵌入式系统比较复杂并且采用32位CPU时,情况就完全不同了。32位CPU的资源量非常大,处理能力也非常强大,如果还是采用手工编制CPU的管理程序,面对复杂的应用,很难发挥出32位CPU的处理能力,并且程序也不可靠。
举个例子:我们平时用的电脑,有比较丰富的外设资源,如果不使用操作系统,你自己用开发工具从底层开始写程序,搞个一年半载的,或许也可以让电脑跑起来,在显示器上搞个类似的windows界面。然而,如此的裸程序根本无法让PC机发挥出强大的处理能力,要想在已有的程序上加个应用功能,必须要熟悉其余程序的流程,或许还要去熟悉硬件知识,看硬件的datasheet。如果想移植到另外一台配置不同的电脑上,估计大部分程序都得推倒重来!
从我目前的认知水平来看,我觉得在嵌入式上使用操作系统有两个方面的好处:
1、操作系统的一个强项就是它可以使应用程序编码在很大程度上与目标板的硬件和结构无关。使程序员可以将尽可能多的精力放在应用程序本身,而不不必去关心系统资源的管理。
2、使系统开发变得简单,缩短开发周期。使应用系统更加健壮、高效、可靠。
当然,对于很简单的单片机应用,大可不必去跑操作系统。操作系统虽然听起来很好,很强大,但不论什么东西都往上移植的话就显得很傻、很天真了。
~~~~~~~~~~~~~~~~
ps:
针对嵌入式的操作系统有很多种,还有51上面的操作系统,如 *** all_rtos,uCOS-II,还有针对较高层次应用的clinux,linux,wince等等!~~~~

问题三:嵌入式软件系统中是否一定要有操作系统,为什么? 首先你得明白操作系统式干吗的
操作系统就是让一个cpu处理多个不同的任务
没有操作系统的时候呢,只能处理一个任务,该处理其他任务时怎么办呢
1,轮询:在处理主任务的时候不断的查询是不是该处理其他的任务的,如果是就去处理其他任务,处理完了以后呢就马上回到主任务上
2,前后台:处理主任务的时候设置了中断,中断可根据外部情况触发,打断主任务,去处理中断任务,中断任务处理完了又回到主任务
而有操作系统的时候呢就能同时处理很多任务,
只有一个cpu为什么能处理很多事情呢,操作系统把cpu的时间分割,每一小段时间执行一个任务的一部分(这一小段时间很短,一般在0.02秒以下),然后切换到下个任务上,不断的循环。由于切换时间很短,处理速度又很快,这样在人看来就是好像同时处理了很多任务一样
所以用不用操作系统要根据你的应用情况

问题四:为什么要学习嵌入式技术 之所以学习嵌入式主要还是因为嵌入式的发展前景还是不错的,主要有以下几点:
一:嵌入式软件开发可谓是软件项目开发的掌舵者,一名优秀的嵌入式软件开发应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉。
二:嵌入式软件开发虽然要求技术全面,但无须偏执于门门技术都精通,任何嵌入式软件开发都有自己的技术特长和偏向,对于自己手中的技术,嵌入式软件开发可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分。
三:由于IT技术在日常生活中各个方面的全面发展促进了各个软件开发方向的发展,嵌入式软件开发很多都享受地位和薪水的双高待遇。

问题五:嵌入式和软件工程哪个发展方向更好 不要被我楼下的误导了,“嵌入式学好了薪水也比软工高”这些都是P话,说到钱,即时你技术再牛如果不会赚钱也就是个穷人,很多不会技术的一样在富豪榜,一样家财万贯。说以用钱来说什么嵌入式与软件工程的区别就是狗P,那微软的人大多都是搞软件的,看看外面有多少搞嵌入式高工的待遇能超过微软的这些高工待遇?你拿国内的什么嵌入式高工待遇就更没法和人家比。这就是地方不同,方向、重点不同造成的待遇各有不同。如果更好是值金钱方面,建议不要选择搞技术,因为这会消磨很多时间,甚至浪费很多赚钱的机会与时间。如果从技术追求方面,那什么技术都要学的,那样没学都是损失,甚至这些只是一些小分类,还有更多的东西值得去弄。

问题六:嵌入式系统与软件工程哪个好 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。
近几年嵌入式软件行业迅猛发展,嵌入式产品渗入各个行业,像常见到的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、数码相机、医疗仪器、航天航空设备等等都是典型的嵌入式系统,嵌入式开发已经成为当前最热门最有发展前途的行业之一。业内人士认为,目前嵌入式行业至少存在30-50万的人才缺口,仅成都市场嵌入式软件开发人员的需求就已经超过了4-6万人,其中嵌入式应用软件需求占80%,而且还在持续增加,这主要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍很少涉及嵌入式软件的开发,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验的人进行指导。目前在北京,一个成熟的嵌入式软件工程师平均月薪在8000元左右。我想要这样的就业机会。现在嵌入式确实很热门,即丁是在现在不是很景气的经济环境下,这类岗位依然很紧缺,企业找不到合适的人才。价格和价值成正比,所以我有个同学现在去了一个叫东方赛富的参加嵌入式培训学习,听说在北京口碑是最好的,现在学完出来,找了个5.5K做底层驱动开发的工作,很令人羡慕。。。
嵌入式行业分工作类型,嵌入式开发,测试,技术支持,业务等。技术支持最轻松。开发最累压力大。

问题七:嵌入式软件开发好还是硬件开发好 硬件相对比较死板固定,但软件特别是系统架构的设计就很能锻炼
人的脑力。巨立安技术一直认为做软件更能体现人脑的价值。
不过对工作,尤其是嵌入式这个方向的开发来说,也许最好的策略
就是坚持 linux 内核里面多任务调度时所采用的 “完全公平的调度(C
FS)”哲学。任何一个进程,只要它最需要cpu、或者已得到cpu时间
相对于其他进程最少,那调度器就优先调度cpu给他。
软件硬件的学习也是一样,什么时候哪方面需要你花时间多一些、
或者你自己不擅长哪一方面,那就坚持往那方面发展用劲。如此,
到最后,你就会发现已然成为一个嵌入式乃至计算机系统的专家。

问题八:为什么嵌入式系统开发需要软件硬件综合开发 做什么不是软硬结合的 - -。
打个比方,嵌入式相当于自己配装一台计算机,系统什么的当然要自己配置。

问题九:嵌入式软件开发与软件开发有什么不同 我正好是做嵌入式的。嵌入式主要是处理软硬结合部分,主要是基于linux上C开发,要求懂一定的硬件知识,能够看懂原理图,知道常用的通信接口,I2C,SPI等等,出问题还需要调时序。基于某款芯片开发产品时,要看数据手册,了解地址映射,地址划分,知道寄存器功能,定义好各种功能接口。要移植bootloader,内核,制作文件系统,编写自家设备驱动等等,汇编也需要有一定了解。入门不易,精通很难。

问题十:嵌入式软件发展趋势有哪些 1.嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。
2.网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。如HP
3.网络互联成为必然趋势。未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。
4.精简系统内核、算法,降低功耗和软硬件成本。未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。
5.提供友好的多媒体人机界面   嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。
6、对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。
7、在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。

嵌入式为什么要用Linux操作系统

一、Linux操作系统的特点

1.Linux是什么?

Linux是一套免费使用和自由传播的类 Unix操作系统,它主要用于基于 Intel x86系列 CPU的计算机上。

  Linux以它的高效性和灵活性著称。它能够在 PC计算机上实现全部的 Unix特性,具有多任务、多用户的能力。 Linux是在 GNU公共许可权限下免费获得的,是一个符合 POSIX标准的操作系统。 Linux操作系统软件包不仅包括完整的 Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的 X-Windows图形用户界面,如同我们使用 Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 

2.Linux 与 Windows的区别

1.2.1 相同点
Linux 、Windows系列是完全的多任务操作系统。它们支持同样的用户接口、网络和安全性。
在Internet上,大量免费软件都是针对Unix系统编写的。由于有众多的Unix厂商,所以Unix也有许多实现方法。没有一个单独的组织负责Unix的分发。现在,存在一股巨大的力量推动Unix社团以开放系统的形式走向标准化。另一方面Windows系列是专用系统,由开发操作系统的公司控制接口和设计。在这个意义上这种公司利润很高,因为它对程序设计和用户接口设计建立了严格的标准,和那些开放系统社团完全不一样。一些组织正在试图完成标准化Unix程序设计接口的任务。

1.2.2 不同点
  • Linux的应用目标是网络而不是打印
  • 可选的 GUI
  Linux有图形组件。Linux支持高端的图形适配器和显示器,完全胜任图形相关的工作。
  Linux 有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器和文档处理工具等。
  Linux 中的配置文件是人类可读的文本文件,这与过去的 Windows 中的 INI 文件类似,但与 Windows 的注册表机制在思路上有本质的区别。每一个应用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过,大部分的配置文件都存放于一个目录树 (/etc) 下的单个地方,所以看起来它们在逻辑上是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件的备份、检查和编辑工作。 
  • 文件名扩展
Linux不使用文件名扩展来识别文件的类型。
Linux通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。 
  • 命令区分大小写
所有的 Linux 命令和选项都区分大小写。例如, -R 与 -r 不同,会去做不同的事情。控制台命令几乎都是小写的。我们将在“ 第 2 部分. 控制台速成班”中对命令进行更详细的介绍。

二、嵌入式与Linux的关联

2.1嵌入式是什么?

嵌入式实际上是软件硬件相结合的嵌入式系统。软件一般是一种计算机操作系统,比如Linux、uc|os、wince等;硬件则是执行用户要求的执行装置,比如小电机,电路板等。做嵌入式开发,则分为软件开发和硬件开发两方面。

 

2.2Linux系统相比于其他的操作系统在嵌入式领域有什么优势?

 嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。 

  • Linux开源代码
  • Linux内核可裁剪,多任务支持、多用户支持,性能高、稳定性好。
  • Linux良好的可移植性(可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。)和对软件的兼容性
  • Linux内核小
  • Linux强大的网络功能;具有内置的TCP/IP协议栈,可以提供FTP、PPP、Telnet、WWW等服务;同时还可以通过应用程序向其他系统提供服务,例如向其他Windows用户提供类似于网络邻居的Samba文件服务。特别对TCP/IP协议有最完备的支持----适合做信息家电的开发。
  • Linux是免费的OS

2.3嵌入式linux和普通的linux区别详细在哪里?

 




以上是关于为啥要用嵌入式软件的主要内容,如果未能解决你的问题,请参考以下文章

对软件工程的疑问?

实验室项目.md

嵌入式系统开发为啥要采用交叉编译的方式

嵌入式linux 如何烧写flash

用Xmodem传送文件为啥总是出现系统无响应

360浏览器禁止第三方安全软件嵌入保护,金山公司应该怎么处理这事?