在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟件跟硬件之間的灰色地帶:固件

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-10-13 17:39 ? 次閱讀

軟件跟硬件之間的界限已經(jīng)越來越模糊了,那么處于這個灰色地帶的,就是固件了。這就分成三類工作者。

1、軟件工程師一般指做圖形界面的程序員,工作內(nèi)容就是寫C++JAVA、Web等。 2、硬件工程師當(dāng)然是指玩電路板的,工作內(nèi)容就是畫原理圖、PCB等。 3、固件工程師也叫單片機(jī)工程師,既寫代碼(主要是C語言匯編)又要畫電路圖。

玩單片機(jī)的人,可能會有個疑問,為什么我寫的C語言能操作到底層的硬件?其實在《計算機(jī)組成原理》已經(jīng)有很詳細(xì)的介紹了。 我這里粗略地介紹一下,這個原理。
首先你可以搜索一下“從零開始造電腦”,這位叫Steve的大神,就告訴你,用晶體管可以做出CPU(單片機(jī)也是CPU)。

當(dāng)然,我們現(xiàn)在可不會落后到需要到晶體管來制造電腦。 接下來,你可以看一部叫《喬布斯》的電影,劇中就給你展示蘋果公司的第一臺計算機(jī)。

嘿嘿,看到那些黑色的芯片沒有?還有兩個大大的變壓器。這說明了在大學(xué)玩單片機(jī)的時代,就相當(dāng)于回到蘋果公司的初始時期!是不是很激動人心? 其實你可以用74系列的邏輯IC、單片機(jī)等,來搭建一個屬于自己的計算機(jī)。這就是說人們把若干個晶體管集成為一塊74系列的IC,如果集成度更高呢?那就是手機(jī)或者臺式機(jī)用的多核CPU了。 好,介紹了這些古董之后,就讓你有個認(rèn)識,計算機(jī)本質(zhì)上是N個晶體管的組合,也是數(shù)字邏輯芯片的組合,更高級的,就是一塊數(shù)模混合的芯片,具體形式是由你的工藝決定的。現(xiàn)在回到正題,介紹一下數(shù)電的基礎(chǔ)知識。 因為CPU主要功能是計算,也就是可以直接運(yùn)用數(shù)學(xué)知識來解決問題,這里就舉個例子介紹一下,CPU如何計算加法,也就是用數(shù)電里的門電路搭一個加法器。

怎樣用晶體管搭這些與、或、非門就不說了,不懂的,可以翻書。上圖就告訴你,可以用這些門電路搭一個加法器。 怎樣輸入Ai=0,Bi=1,Ci=0?用74系列的IC的話,可以直接把Ai,Ci接GND,Bi接VCC,就實現(xiàn)加法了。而在CPU內(nèi)部也是一樣可以這樣做的,但是CPU可沒那么死板,只算常數(shù)的加法。

上圖中,藍(lán)色箭頭指向的1,就是接VCC的,而紅色箭頭,就是接GND。 在CPU內(nèi)部,還有ROM,它可以把你要計算的加數(shù)和被加數(shù)存進(jìn)去(ROM輸出的高低電平,跟你接GND和VCC是一樣的效果),而結(jié)果則存在寄存器(先暫存,以備后面使用)。 現(xiàn)在有個問題,如果加完之后還要計算乘法(在信號處理領(lǐng)域的卷積運(yùn)算的核心單元就是乘加器),怎么辦?誰來自動完成這個動作?幸好,CPU里面有個叫ALU(算術(shù)邏輯單元)來處理這件事情。

這里的控制單元,就把ROM里面的數(shù)據(jù)取出來,再用選擇器,來調(diào)用加法器和乘法器,最終把結(jié)果存到寄存器中。 如果ROM里面只存數(shù)據(jù),那是無法讓控制單元知道,你要執(zhí)行加法還是乘法,要解決這個問題,就需要在ROM里面再劃分一個區(qū)域,存放指令碼。 這個指令碼,跟數(shù)據(jù)是一樣,都是0、1的二進(jìn)制數(shù),只是用途不同,所以起了不同的名字。

其實這個指令碼,對應(yīng)在單片機(jī)里面的匯編語言,就是操作碼(如:MOV);而操作數(shù)就是數(shù)據(jù)(如:01H)。具體的,可以看看單片機(jī)的教材。 根據(jù)指令碼的設(shè)計方法來分,有四種,分別是CISC、RISC、VLIW、TTA,具體區(qū)別可以看計算機(jī)組成原理。 而PC(程序計數(shù)器)就是控制ROM的地址,現(xiàn)在你要知道PC是不能出錯的,一旦出錯,就意味著單片機(jī)不按照你的代碼來工作。 現(xiàn)在,我在8位的CPU的ROM里面,第一個地址存了0x03這個指令碼來代表加法,而在第二、三個地址存了加數(shù)和被加數(shù),然后在第四個地址存了0x05代表乘法,在第五、六個地址存了乘數(shù)和被乘數(shù)。那么,按照一定的規(guī)則來設(shè)計控制單元(這個規(guī)則可以自己定義的),它就知道0x03是要執(zhí)行加法。 那么這個規(guī)則如何設(shè)計?最簡單的,就是用與門了,然后輸出一個使能信號,讓加法器工作,就跟上面的74LS160差不多。 但是CPU可沒那么簡陋,它可以使用狀態(tài)機(jī)、流水線等,來控制這些基本單元(如:加法器、乘法器),如下圖所示。

說到這里,你至少應(yīng)該知道,我們只要改變ROM的內(nèi)容,就可以操作CPU內(nèi)部的ALU,從而操作CPU的各個硬件單元了。 下面給個相對完整一點的ALU內(nèi)部結(jié)構(gòu)圖。

ROM的內(nèi)容本質(zhì)上是一些電荷量(電容上有、無電荷,代表二進(jìn)制的1和0),也就是固件、軟件工程師寫的代碼。而硬件,就是由晶體管搭建的數(shù)字、模擬電路(如:單片機(jī)內(nèi)部的比較器ADC等)。所以硬件是物理器件,不容易更改;而ROM的內(nèi)容完全可以用燒錄器就輕松改變它,修改成本非常低,而且很靈活。 在這里,你很難表述,這些電荷量是軟件還是硬件,但是CPU的這種結(jié)構(gòu),導(dǎo)致了兩種不同類型的工作者,我們稱他們?yōu)檐浖こ處熀陀布こ處煛6鴨纹瑱C(jī)程序員寫的代碼,跟硬件密切相關(guān),而且一旦完成之后,很少需要修改的(不像軟件工程師修改的那么頻繁),我們稱之為固件。

責(zé)任編輯:xj

原文標(biāo)題:軟硬件之間其實還有一個固件! 你知道嗎?

文章出處:【微信公眾號:玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3348

    瀏覽量

    66307
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4973

    瀏覽量

    87728
  • 固件
    +關(guān)注

    關(guān)注

    10

    文章

    558

    瀏覽量

    23068

原文標(biāo)題:軟硬件之間其實還有一個固件! 你知道嗎?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RAID 5 硬件軟件 RAID 的區(qū)別

    RAID 5硬件RAID與軟件RAID之間存在顯著的差異,這些差異主要體現(xiàn)在實現(xiàn)方式、性能、數(shù)據(jù)安全性、靈活性以及成本等方面。 一、實現(xiàn)方式 硬件RAID : 依賴于專用的
    的頭像 發(fā)表于 12-27 18:05 ?354次閱讀

    【OTA升級】無需數(shù)據(jù)線,一條命令即可完成固件升級!

    OTA無線升級過程視頻演示:OTA介紹OTA(Over-The-Air,空中升級)是一種通過無線通信技術(shù)實現(xiàn)遠(yuǎn)程更新設(shè)備固件軟件的方法。設(shè)備批量投入使用后,由于部署范圍太廣、設(shè)備數(shù)量太多、部署
    的頭像 發(fā)表于 12-11 01:00 ?829次閱讀
    【OTA升級】無需數(shù)據(jù)線,一條命令即可完成<b class='flag-5'>固件</b>升級!

    raid 硬件軟件的區(qū)別

    在現(xiàn)代數(shù)據(jù)中心和企業(yè)級存儲解決方案中,RAID技術(shù)扮演著至關(guān)重要的角色。它通過將多個物理磁盤組合成一個邏輯單元,提供了數(shù)據(jù)冗余、性能提升和容錯能力。RAID的實現(xiàn)方式主要分為硬件RAID和軟件
    的頭像 發(fā)表于 11-12 09:39 ?629次閱讀

    計算機(jī)接口位于什么之間

    計算機(jī)接口是計算機(jī)硬件軟件之間、計算機(jī)與外部設(shè)備之間以及計算機(jī)各部件之間傳輸數(shù)據(jù)、控制信息和狀態(tài)信息的
    的頭像 發(fā)表于 10-14 14:02 ?447次閱讀

    C2000軟件控制的固件更新過程

    電子發(fā)燒友網(wǎng)站提供《C2000軟件控制的固件更新過程.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:30 ?0次下載
    C2000<b class='flag-5'>軟件</b>控制的<b class='flag-5'>固件</b>更新過程

    TINA-TI導(dǎo)入庫文件,next按鍵變灰色了是什么原因?

    我想用TINA-TI軟件導(dǎo)入ADI公司的芯片,在import中編譯成功后,在new macro wizard中選擇了要導(dǎo)入芯片的庫文件,在上面圖片的位置點擊next后,沒有彈出選引腳的界面,而是next按鍵變灰色了,不知道是什么原因。請問有什么辦法解決?謝謝!
    發(fā)表于 08-28 07:14

    揭秘:單片機(jī)硬件軟件延時之大不同!

    在嵌入式項目中,軟件開發(fā)基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區(qū)別呢?今天就來講講關(guān)于硬件延時和軟件延時的內(nèi)容,
    的頭像 發(fā)表于 07-25 08:11 ?900次閱讀
    揭秘:單片機(jī)<b class='flag-5'>硬件</b>與<b class='flag-5'>軟件</b>延時之大不同!

    STM32 FOC 4.2電機(jī)庫的配置軟件workbench中motor profiler顯示灰色,怎么回事呢?

    STM32 FOC 4.2電機(jī)庫的配置軟件workbench中motor profiler顯示灰色,怎么回事呢? 用它實現(xiàn)電機(jī)的基本啟停沒有問題, 想用它試試自適應(yīng)參數(shù)讀取,發(fā)現(xiàn)motor profiler一直灰色的,哪位大神知
    發(fā)表于 04-30 06:25

    fpga是硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)本質(zhì)上是一種硬件設(shè)備,但它在功能實現(xiàn)上結(jié)合了硬件軟件的特性。
    的頭像 發(fā)表于 03-27 14:14 ?949次閱讀

    proteus仿真時與非門輸出是灰色

    求助!!!用74ls192做倒計時,proteus仿真時與非門輸出一直是灰色
    發(fā)表于 03-24 21:54

    請問AD軟件中怎么添加不同元素之間的間距規(guī)則呢?

    AD軟件提供了某一個元素針對其他元素之間的間距規(guī)則的設(shè)置。
    的頭像 發(fā)表于 03-21 09:09 ?1393次閱讀
    請問AD<b class='flag-5'>軟件</b>中怎么添加不同元素<b class='flag-5'>之間</b>的間距規(guī)則呢?

    fpga是硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)屬于硬件設(shè)備,而不是軟件。它是一種可編程的硬件設(shè)備,由大量的邏輯單元、存儲單元和互連資源組成,能夠?qū)崿F(xiàn)復(fù)雜的數(shù)字電路和系統(tǒng)設(shè)計。
    的頭像 發(fā)表于 03-14 17:08 ?1923次閱讀

    如何排查FPGA與USB之間的芯片通信問題?

    ”,而在SBBulkSourceSink固件中沒有顯示這個錯誤,可不可以證明我的FPGA和USB之間通信成功?另外,我該如何排查FPGA與USB之間的芯片通信問題?
    發(fā)表于 02-27 06:46

    快速入門BlueNRG SDK固件開發(fā)流程

    本文檔指導(dǎo)用戶快速地對 BlueNRG SDK 有一個直觀、清晰的認(rèn)識,了解其軟件架構(gòu),以便順利地學(xué)會利用 SDK 開發(fā)自己的用戶固件
    的頭像 發(fā)表于 01-13 10:43 ?2061次閱讀
    快速入門BlueNRG SDK<b class='flag-5'>固件</b>開發(fā)流程
    主站蜘蛛池模板: 一区二区三区伦理| 国产国拍亚洲精品mv在线观看| 福利视频自拍偷拍| 欧美女同网站| 亚洲va国产日韩欧美精品色婷婷 | 久久免费视频2| 夜夜做日日做夜夜爽| 激情五月婷婷网| 欧美日韩国产另类一区二区三区| 午夜黄色福利| 怡红院日本一道日本久久| 伊人成人在线观看| 色中色官网| 四虎在线永久免费观看| 亚洲第成色999久久网站| 男女免费观看视频| 色婷婷激情五月| 国产黄色在线看| 视频在线观看免费网站| 国产精品久久久久久久久免费| 欧美影院入口| 国产精品看片| 亚洲男人a天堂在线2184| tube 69sex 第一次| 奇米影视亚洲狠狠色777不卡| vvvv98国产成人综合青青| 巨臀中文字幕一区二区翘臀| 男男污肉高h坐便器调教| 一级毛毛片毛片毛片毛片在线看| 一级特黄aa大片免费| 色视频在线观看| 欧美一级一一特黄| 欧美黄色片一级| 成人看的一级毛片| 永久免费视频网站在线观看| sihu国产午夜精品一区二区三区| vr性资源在线观看| 欧美午夜精品一区二区三区| 91成人免费视频| 久久伊人草| 亚洲a视频|