Base 韌體,軟體,硬體,驅動

2021-08-17 06:46:07 字數 1059 閱讀 4953

###date: 2018-3-20

參考:

韌體(firmware)就是寫入erom(可擦寫唯讀儲存器)或eeprom(電可擦可程式設計唯讀儲存器)中的程式。

韌體是指裝置內部儲存的裝置「驅動程式」,通過韌體,作業系統才能按照標準的裝置驅動實現特定機器的執行動作,比如光碟機、燒錄機等都有內部韌體。

韌體是擔任著乙個系統最基礎最底層工作的軟體。而在硬體裝置中,韌體就是硬體裝置的靈魂,因為一些硬體裝置除了韌體以外沒有其它軟體組成,因此韌體也就決定著硬體裝置的功能及效能。

驅動和韌體(firmware)都是**,前者為軟體服務,後者為硬體服務

在作業系統概念還不明確的時代,二者是沒有明顯區別的。

但是隨著計算機體系結構的發展,硬體的種類開始變多,作業系統的種類也變多了。

這個時候,因為各種技術的、商業的原因,硬體廠商希望自己的硬體能被更多的軟體廠商使用,所以就需要在硬體之上做一些封裝,讓自己的硬體操縱起來更容易,這個時候就要有firmware這種東西了,它簡化了軟體與硬體的互動。

但是為什麼不把fimware做的很完美,做的不需要驅動支援呢?因為有不同的作業系統。我不知道你對作業系統的理解是到什麼程度?只知道windows?還是還僅僅知道linux?還是清楚unix和freebsd是不同的系統?知道有rtos?知道有上百種不同的核心?

不同的作業系統,對於操作硬體的方式完全不同,在windows裡應用態是無法直接寫io埠的,而在嵌入式系統裡,一般都不限制直接操作io埠。所以,硬體廠商一方面為了自己的硬體能被軟體更簡單的使用,就需要寫firmware,而另一方面為了相容各種作業系統,又不能把firmware寫的太死,必須預留足夠的餘地讓軟體自由發揮——軟體的自由發揮就是驅動。

不同作業系統的驅動是不能相容的,原因就是驅動是為作業系統服務的,有的作業系統是單執行緒的,有些作業系統不允許動態申請記憶體,所以不同的作業系統要操作硬體,就要根據自身的特性編寫對應的操作**,這就是驅動存在的意義——適應系統需要。

假如世界上只有一種作業系統,並且版本永遠不會改變,那麼firmware和驅動就可以融合在一起,但這只能乙個不現實的夢想,要知道民用作業系統和工業控制作業系統差別是十分巨大的。

簡單聊聊智慧型硬體的韌體測試

去年10月份開始,有幸加入智慧型硬體團隊,參與裝置韌體端測試,主要涉及的測試型別有移動端sdk測試,裝置端韌體測試,sdk與裝置之間的藍芽測試以及基於業務實際場景的功能測試。對於我這樣乙個韌體測試新手來說,剛開始的時候難免會有點不知所措,因此我寫下自己對韌體測試的一點經驗和總結,以便後期回顧。圖1 ...

刪除Android韌體自帶軟體

browser.apk,對應的就是手機中的瀏覽器。解除安裝的方式也很簡單,將該apk刪隊即可。具體步驟 1.連線手機,確保手機的adb介面為enable狀態,並被系統檢測到。2.adb root 獲得手機的root許可權。檢視獲得root許可權的方法,請登入www.baidu.com。3.輸入adb...

linux硬體驅動層

1.make menuconfig scripts kconfig lxdialog menubox.o in function print buttons menubox.c text 0x4b1 undefined reference to wrefresh collect2 ld 返回 1 m...