關于固件

固件(Firmware)就是寫入EROM或EPROM(可編程只讀存儲器)中的程序,通俗的理解就是“固化的軟件”,臺港澳稱為“韌體”。更簡單的說,固件就是BIOS的軟件,但又與普通軟件完全不同,它是固化在集成電路內部的程序代碼,負責控制和協調集成電路的功能。固件只存在于數字電路當中,模擬電路是沒有的。固件(具有軟件功能的硬件),是MP3隨身聽內部的一套核心程序,它包括了對音樂的解碼、界面控制、顯示各種提示信息以及通過線路與電腦連接等功能,可以說是非常強大。有可能出現BUG,升級可以解決bug,甚至是能否加入新功能的關鍵。

工作原理/固件?

?

固件
固件圖冊

固件(firmware)一般存儲于設備中的電可擦除只讀存儲器EEPROM(Electrically?Erasable?Programmable?ROM)或FLASH芯片中,一般可由用戶通過特定的刷新程序進行升級的程序。一般來說,擔任著一個數碼產品最基礎、最底層工作的軟件才可以稱之為固件,比如計算機主板上的基本輸入/輸出系統BIOS(Basic?Input/output?System),在以前其實更多的專業人士叫它固件。
通常這些硬件內所保存的程序是無法被用戶直接讀出或修改的。在以前,一般情況下是沒有必要對固件進行升級操作的,即使在固件內發現了嚴重的Bug也必須由專業人員帶著寫好程序的芯片把原來機器上的更換下來。早期固件芯片一般采用了ROM設計,它的Firmware代碼是在生產過程中固化的,用任何手段都無法修改。隨著技術的不斷發展,修改固件以適應不斷更新的硬件環境成了用戶們的迫切要求,所以,可重復寫入的可編程可擦除只讀存儲器EPROM(Erasable?Programmable?ROM),EEPROM和flash出現了。這些芯片是可以重復刷寫的,讓固件得以修改和升級。

?

技術性能/固件?

固件可以說是神經中樞,也可以稱作COMBO的操作系統,它包括很多模塊:驅動、控制、解碼、傳送、檢測……,只有在它的控制下COMBO才能正常工作。同時,固件還帶有許多附加功能,如糾錯技術、安全刻錄技術、播放控制技術等。
實際上,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下更為安全。有些設備本身有刷新工具,不需要額外在電腦上安裝刷新工具。只要把高版本的固件下載好,設備會引導用戶刷新。

在MCU上的固件更要注意,燒錄器燒錄不進去程序,很可能與此有關,要么更換新版本燒錄器,要么重新刷新固件,但是有些是固定在里面了,無法刷新或更改。

?

轉載于:https://www.cnblogs.com/zhugeanran/p/9402698.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249828.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React-Native 指定模擬器RUN-IOS

react-native run-ios --simulator "iPhone 7” 轉載于:https://www.cnblogs.com/smzd/p/10185263.html

vue和element-ui使用

上一篇已經創建好一個vue項目。https://mp.csdn.net/postedit/80926242 這一篇主要是創建一個vue項目并結合餓了么框架element-ui。 1.先創建vue項目,我準備把項目放在e盤下:E:\Work\RegisterProject; 命令行進入這個目錄: 創…

javaweb學習6——自定義標簽

聲明:本文只是自學過程中,記錄自己不會的知識點的摘要,如果想詳細學習JavaWeb,請到孤傲蒼狼博客學習,JavaWeb學習點此跳轉 本文鏈接:https://www.cnblogs.com/xdp-gacl/p/3916946.html https://www.cnblogs…

goland 實用鍵

代碼補全 option command v轉載于:https://www.cnblogs.com/smzd/p/10313417.html

關于Mysql java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的問題...

問題所在: 1.連接數據庫一個是密碼是否正確, 2.driver是否對, 3.有么有jar包沖突,轉載于:https://www.cnblogs.com/java-123/p/9403412.html

vscode配置vue環境

一、安裝VSCode、NodeJS VSCode:https://code.visualstudio.com/ NodeJS:https://nodejs.org/en/ 二、打開VSCode,安裝常用插件 如圖所示(安裝后重新加載即可): 三、項目中添加.vscode文件夾,文件夾中添…

秒殺核心設計(減庫存部分)-防超賣與高并發

商品詳情頁面的靜態化,varnish加速,秒殺商品庫獨立部署服務器這種就略過不講了。只討論庫存部分的優化 mysql配置層面的優化可以參考我的這篇文章 《關于mysql innodb引擎性能優化的一點心得》 重點設計在數據庫層面。 2張表: 第一張&#xf…

go strconv

strconv是golang用來做數據類型轉換的一個庫。 介紹下strconv最常用的兩個方法, 沒有解釋語言那么自在可以str(int),int(string), 那還算簡練。 num, err : strconv.Atoi("-42") str : strconv.Itoa(-42)轉換換成bool類型. b, err : strconv.ParseBool("true&qu…

django配置templates、static、media和連接mysql數據庫

1.模板文件 # templates配置 if os.path.exists(os.path.join(BASE_DIR, templates)) is False:os.mkdir(os.path.join(BASE_DIR, templates)) TEMPLATES [{# 模板引擎,內置的模板引擎有:# 1. django.template.backends.django.DjangoTemplates# 2. dj…

vue調用順序(初學版) index.html → main.js → app.vue → index.js → components/組件 測試

關于它是怎么調用運作的:https://mp.csdn.net/postedit/86134414 一. 準備工作: 1.下載webstorm,安裝vue。 2.創建項目,cd到要放項目的文件夾下 vue init webpack vue_test 3.安裝各種包 npm install 4.運行 cd vue_test …

web開發:jquery之DOM

一、文檔結構 二、文檔操作 三、文檔操作案例 四、form表單 五、正則 六、form案例 一、文檔結構 jsvar $sup $(.sup);console.log($sup.children()); // 子們console.log($sup.parent()); // 父console.log($sup.prev()); // 上兄弟console.log($sup.next()); // 下兄弟c…

NO.8:自學python之路------并行socket網絡編程

摘要 一到放假就雜事很多,這次的作業比較復雜,做了一個周,進度又拖了。不過結果還不錯。 正文 粘包 在上一節中,如果連續發送過多數據,就可能發生粘包。粘包就是兩次發送的數據粘在一起被接收,損壞了數據的…

vue項目中主要文件的加載順序(index.html、App.vue、main.js)

先后順序: index.html > App.vue的export外的js代碼 > main.js > App.vue的export里面的js代碼 > Index.vue的export外的js代碼 測試的頁面代碼塊: 文件的加載先后順序: Index.vue的mounted()中的輸出沒有執行。why&#…

Http請求報頭設置(C#)

1、添加一個SetHeaderValue方法: public static void SetHeaderValue(WebHeaderCollection header, string name, string value) { var property typeof(WebHeaderCollection).GetProperty("InnerCollection",BindingFlags.Instance | BindingFlags.NonP…

vue-cli3使用cdn引入

1. index.html引入&#xff1a; <script src"https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js"></script> <script src"https://cdn.bootcss.com/moment.js/2.20.1/locale/zh-cn.js"></script>2. vue.config.js配置&…

vue常用屬性

Vue實例常用屬性 1.數據 data:Vue 實例的數據對象 components&#xff1a;Vue實例配置局部注冊組件 1.類方法 computed:計算屬性 watch&#xff1a;偵聽屬性 filters&#xff1a;過濾器 methods:Vue實例方法 render&#xff1a;渲染函數&#xff0c;創建虛擬DOM 1.生命周期 c…

凸包算法

轉載自&#xff1a;https://blog.csdn.net/bone_ace/article/details/46239187 凸包問題的五種解法 2015年05月29日 17:58:51 閱讀數&#xff1a;33660前言&#xff1a; 首先&#xff0c;什么是凸包&#xff1f; 假設平面上有p0~p12共13個點&#xff0c;過某些點作一個多邊形&a…

一個優雅的占位圖解決方案。適用于 UITableView 和 UICollectionView。

FMListPlaceholder 項目地址&#xff1a;https://github.com/yfming93/FMListPlaceholder 一個優雅的占位圖解決方案。適用于 UITableView 和 UICollectionView。 一行代碼處理空列表占位圖邏輯 0x001 與其他的同類三方庫對比的優點&#xff1a; 首次進入列表占位圖是不顯示的。…

es7 async 前置依賴

https://stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined 移動端 px2rem-loader 轉載于:https://www.cnblogs.com/smzd/p/10560176.html

vue中 關于$emit的用法

1、父組件可以使用 props 把數據傳給子組件。 2、子組件可以使用 $emit 觸發父組件的自定義事件。 vm.$emit( event, arg ) //觸發當前實例上的事件 vm.$on( event, fn );//監聽event事件后運行 fn&#xff1b; 例如&#xff1a;子組件&#xff1a; <template><di…