固件(Firmware)就是写入EROM(可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。

固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。

固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。

工作原理

固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),在以前其实更多的专业人士叫它固件。

通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了ROM设计,它的Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。

固件可以说是神经中枢,也可以称作COMBO的操作系统,它包括很多模块:驱动、控制、解码、传送、检测……,只有在它的控制下COMBO才能正常工作。同时,固件还带有许多附加功能,如纠错技术、安全刻录技术、播放控制技术等。
  

固件(2张)

实际上,COMBO光驱固件中的关键技术就是对各种盘片的识别,而这是通过识别CD、CD-R(W)和DVD盘片在数据凹槽的密度与盘片的化学层的不同完成的。当把盘片放入光驱中,光驱收到操作命令后,含有固件的控制芯片会发出指令,激光头根据指令依次发出DVD读取、CD-ROM读取以及CD-R写入、CD-RW擦写的四种激光试探,如果收到反馈则判断它是何种类别的盘片。按照这一操作程序,一般DVD-ROM盘片需要一次识别,CD盘片需要两次识别,而CD-R和CD-RW则要经过三次。很显然,固件的制作水平决定着COMBO光驱的质量。

由COMBO光驱中可以看出,硬件设备的固件与它的硬件有着几乎相等的地位,而在某些程度上来说固件可能更重要一些。因为只有编写出出色的固件程序才可以更加充分、巧妙的发挥硬件的作用,而且优秀的固件还可以弥补一些硬件上的缺陷。

应用

哪些数码设备有固件

其实任何数码设备都有固件,只是我们有时忽略它的存在而已。

先举一些常见的例子:手机、数码相机、mp3、mp4、路由器、电子书、交换机、猫、PSP、PS3、NDS、XBOX、U盘、主板、打印机的BIOS(BIOS就是一种固件)、显卡的BIOS。

以上产品的固件也许略有耳闻。但下面设备的固件很多人就没听说过了。

鼠标、显示器、光驱、硬盘、键盘、数码卫星接收器、GPS终端、精密的电子仪器(比如核磁共振仪)等等。

固件既然是软件,就有大小之分。大的可有几百兆,小的也许只有几K,甚至不足1K。

为什么很多设备都没听说过有固件的说法呢?因为有些设备,在硬件上会出问题,而在软件上(即固件)永远都不会出问题,而且这些固件对于普通用户是无法更新的(或者更新的技术难度比较大)。它距离我们太遥远,所以被我们忽略掉而已。

对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品最基础、最底层工作的软件才可以称之为固件”,这和操作系统的定义很一致)。比如PSP的固件,就是指PSP 的操作系统。同理,IPHONE的固件也是其操作系统,路由器的固件就是路由器的操作系统,MP4的固件就是MP4的操作系统等。

而对于非独立的电子产品,比如硬盘、鼠标、BIOS、光驱、U盘等设备,固件就是指其最底层的,让设备得以运行的程序代码。

产品升级

编辑

虽然以“固件”为名,但不管怎么说,它还是应当被我们理解为软件,并且由于目前集成电路的进步,升级固件也变得越来越简单,越来越没有危险,固件程序与我们通常所说的程序的区别已经越来越小。

在早期,升级固件主要是为了解决一些Bug及兼容性问题。而随着信息时代的来临,厂商的设计很难全面的满足客户需求,更多的厂商把升级固件提供更多更新的功能做为附加值来提供给用户。因此,我们可以对固件升级做以下总结:

1.在产品发布之后,厂家对Firmware作了进一步的优化和创新,使之能以更佳的状态工作。进行固件升级后,可以带来性能上的提升。

2.产品在生产出来之后,随着周围所使用的软、硬件环境的改变及更新,产品对于许多新的硬、软件将有可能出现不兼容现象。厂家通过更新Firmware文件,使硬件能兼容更多、更新的软、硬件,不断增强产品的兼容性。

3.在原有的硬件基础上,厂家开发出了新的功能,对于原有的产品,只须更新Firmware就可以增加新的功能。

4.对于任何已生产的软、硬件,都有可能存在一些缺陷,所以,厂家可以通过更新Firmware来修正以前版本中存在的错误、漏洞或不足。

方法步骤

固件升级,有时也称固件刷新,刷写,重写,烧录或刷机,是指把新的固件写入芯片中,代替原有的固件的过程。

一般流程

因为数码产品家族庞大,其固件的种类也是数不胜数的。每种数码产品的固件升级的方法都是不同的。因此没有固定的教程给大家。

这里只给出比较通用的思路。

1.从官网下载新的固件版本以及固件升级软件,保存至电脑。

2.把需要刷新的设备连接电脑。

4.用刷新工具载入新的固件,点击刷新,等待完成。

5.关闭刷新程序,刷新结束。

注意事项

虽然升级很简单,但是还是有些要点应该注意,因为毕竟升级固件是有一定风险性的,所以在升级前和升级中,要谨慎小心。

1.从设备的官网上阅读升级固件的教程。官网一般会有详细的说明。

2.固件文件和刷新固件的程序一定要从官方或者可信度高的论坛下载,不能从小网站下载,且一定要和待刷新的硬件型号完全吻合。

3.备份原有的固件,这可以防止在升级错误或者不满意新版固件时回退到原有版本。

4.保存新的固件文件,虽然多数产品都可以实现网络直接升级,但下载到计算机上再升级的可靠性要高得多。

5.关闭其他软件,为防止升级过程受到其它软件的干扰,最好暂时关闭不需要的软件,特别是杀毒软件。

6.在整个刷新过程中,绝对不可以断电,通常断电设备会损坏,需要送回原厂刷机。

7.在升级之前,禁用系统的屏幕保护及电源管理。

PS:本篇文字仅适用于一般情况。特殊情况除外。比如:PSP刷机,主要的目的是破解。破解固件的刷写不可能在官网上找到任何说明和下载。IPHONE的刷机也是如此。MOTO E680系的手机官网上是没有任何刷机说明的。另外刷机不一定要在WIN下刷。刷BIOS,在DOS下更为安全。有些设备本身有刷新工具,不需要额外在电脑上安装刷新工具。只要把高版本的固件下载好,设备会引导用户刷新。

备注:转载http://baike.baidu.com/view/33738.htm






转载于:https://blog.51cto.com/jiaojusuimu/1878704

基本概念学习(1004)---固件相关推荐

  1. 3194错误1013错误等iPhone越狱恢复固件错误解决方法

    我们经常会在刷机的时候遇到各式各样的错误,如:3194错误.1031错误.160X错误等等,这些错误时常让很多椒友抓狂.今天小编这篇教程就是为了解决大家这个麻烦,同时也希望大家看完后,有所帮助. iO ...

  2. 基于ARMv8的固件系统体系结构

    基于ARMv8的固件系统体系结构 The architecture of ARMv8-based firmware systems 自2011年发布以来,ARMv8处理器架构在移动设备市场上已经相当普 ...

  3. 固件安全性—防止内存损坏和注入攻击

    固件安全性-防止内存损坏和注入攻击 Firmware Security – Preventing memory corruption and injection attacks 构成物联网(IoT)主 ...

  4. a10双核(8dm1)-android4.1.1-v2.07,台电官方论坛 - A10 双核 8DM1 2G ROM 4.0.4 固件 - 平板笔记本...

    本帖最后由 zhengaolei 于 2012-10-31 11:05 编辑 A10双核2G ROM  4.0.4 版固件 固件下载:http://pan.baidu.com/share/link?s ...

  5. 程序可以在硬件之间发送吗_你知道硬件、软件工程师之间,还有一个固件工程师吗?...

    软件跟硬件之间的界限已经越来越模糊了,那么处于这个灰色地带的,就是固件了.这就分成三类工作者. 1.软件工程师一般指做图形界面的程序员,工作内容就是写C++.JAVA.Web等.2.硬件工程师当然是指 ...

  6. rk3399在linux机上烧写img,烧写固件 — TB-96AI documentation

    Window主机烧写固件¶ 1.安装Windows PC端USB驱动(首次烧写执行). 2.双击DriverAssitant_v4.5DriverInstall.exe打开安装程序,点击"驱 ...

  7. TP-link 841N 刷DD-WRT固件

    2012年4月20号 今天,笔者逛"太平洋"的时候,发现了一个关于TP-Link 840N刷DD-WRT的帖子,进去逛了一会,突然记得自己家中的那个路由好像也是这个型号的,二话不说 ...

  8. 【ACM】杭电OJ 1004

     题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...

  9. 固件模块之间的关系 C语言里面的模块

    模块是固件里具体的功能块. 如学校来吗将班级看作固件,班级的每个学生就是单独的模块. C语言中用函数来实现程序模块. 模块化程序设计是将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到 ...

最新文章

  1. Rstudio 实现 爬虫 文本分词 个性化词云设计--我爱中国我爱党
  2. 基于深度学习的端到端人脸识别技术:全面调研
  3. 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
  4. 机房墙面为什么要做保温?该怎么做?
  5. git config设置用户名_hexo和git搭建博客过程
  6. 《编译原理》第二章知识点
  7. mysql 生明变量_在 MySQL 的 SQL 文件中,定义变量与使用变量
  8. 软件开发报价模板_定制开发小程序和行业通用(模板)小程序的利弊分析
  9. 批量删除Cookie(实用)
  10. 高中物理知识补充——电容电感充放电极性判断
  11. 135行实现CRUD功能(PHP)
  12. 如何优雅的创建一个Java不可变对象类,JDK源码中也是这么干的!
  13. Ant Design Vue 如何分页(后台传入)
  14. MySQL远程连接报错:ERROR 2002 (HY000): Can‘t connect to server on ‘192.168.172.130‘ (115)
  15. Java:BigDecimal的学习与使用
  16. 职高生学计算机的走单招服装设计可以吗,2019年江西科技学院服装与服饰设计专业介绍...
  17. 从quot;笨蛋法则quot;到quot;取优而立quot;
  18. html八卦绘制,HTML+CSS实现画出一个太极八卦图案
  19. VBA-基本的文件操作语句与文件加密(加密dog)
  20. cuda2 向量加法

热门文章

  1. 慕了!17年阿里Java开发大佬把Spring Boot的精髓都总结出来了
  2. 中级篇——Linux下通过进程名、ID、端口号查看进程信息
  3. 深圳软件测试培训:Jmeter目录构成
  4. 乔·克拉克(Joe Clark)关于版权的胡思乱想
  5. redis取mysql数据类型_redis数据类型操作
  6. 科普贴开篇:到底什么是人工智能(AI)、机器学习(ML)和深度学习(DL
  7. (笔记)数据结构--抽象数据类型的定义
  8. 短视频火爆全网也难逃一死
  9. python3爬虫简单小实例2.0
  10. 《文化相对论》:危机重重的世界,对话才能产生转机