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

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

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

“為用而?!?--嵌入式系統(tǒng) 下

jf_78858299 ? 來(lái)源:裸機(jī)思維 ? 作者: GorgonMeducer 傻孩子 ? 2023-04-13 15:36 ? 次閱讀

當(dāng)被人問(wèn)起“什么是嵌入式系統(tǒng)”時(shí),無(wú)需看過(guò)我的文章,有一種狡猾的說(shuō)法肯定是挑不出任何錯(cuò)誤的——套用知乎上一類(lèi)著名的問(wèn)答體,“如何快速的假裝/成為某個(gè)領(lǐng)域的專家”——你可以故作認(rèn)真的說(shuō):

嵌入式系統(tǒng)首先是一個(gè)計(jì)算機(jī)系統(tǒng)”,然后大談你對(duì)軟件和硬件的看法……

為了在幾乎沒(méi)有逼格的行業(yè)中讓大家能夠有機(jī)會(huì)裝逼,下面我就教大家一種關(guān)于嵌入式系統(tǒng)軟件和硬件的特別觀點(diǎn),絕對(duì)可以讓所有的小師妹小師弟甚至是同齡人偷來(lái)“刮目相看”的眼光。當(dāng)然首先你要真的理解這種說(shuō)法。

為了引起更多人的注意,同時(shí)讓話題更有沖擊性,你應(yīng)該非??隙?、神秘、恨鐵不成鋼而又憤慨的宣布一個(gè)觀點(diǎn):

“你知道么?嵌入式系統(tǒng)中幾乎所有人關(guān)于軟件和硬件的看法都是錯(cuò)誤的……我們被教科書(shū)給坑了!”

1、傳統(tǒng)計(jì)算機(jī)系統(tǒng)中的“軟件/硬件”觀

通常,我們提到計(jì)算機(jī)硬件,腦海里立馬浮現(xiàn)的就是一臺(tái)PC主機(jī),當(dāng)然這個(gè)時(shí)候你要特別小心,因?yàn)檫@個(gè)時(shí)候你舉出的例子很可能是暴露年齡或者逼格的。比如,用臺(tái)式機(jī)舉例還是用筆記本舉例顯然暴露年齡,用Windows筆記本舉例還是Mac舉例將暴露逼格。當(dāng)我們提到軟件,腦海里浮現(xiàn)的差不多就是Windows上跑著的各類(lèi)軟件,當(dāng)然,如果你能用APP,特別是iOS的APP來(lái)舉例,顯然就是很有面子的。

是的,細(xì)心的你注意到了,傳統(tǒng)的軟硬件觀念直接來(lái)源于通用計(jì)算機(jī)。在后面的討論中我們會(huì)發(fā)現(xiàn),這種由通用計(jì)算機(jī)帶來(lái)的思維定勢(shì)是非??膳碌?。

2、嵌入式系統(tǒng)中的“軟/硬件”觀

嵌入式系統(tǒng)中的軟件和硬件并不是你想象的那么簡(jiǎn)單。這其實(shí)很好理解,你可以在大學(xué)校園里隨便攔下幾個(gè)學(xué)生,讓我們來(lái)做一個(gè)采訪,問(wèn)問(wèn)他們什么是軟件什么是硬件:

屌絲A(計(jì)算機(jī)學(xué)院):你丫有病么?硬件就是你的電腦主機(jī)咯,主板、CPU、內(nèi)存硬盤(pán)、顯卡什么的;軟件就是Windows程序咯

屌絲B(信息學(xué)院):硬件就是單片機(jī)啊,51、AVR、STM32之類(lèi)的,對(duì)了,還有開(kāi)發(fā)板也算吧?軟件嘛,就是Firmware咯(固件),過(guò)去用匯編開(kāi)發(fā),現(xiàn)在都是用C了

屌絲C(信息學(xué)院):毛線!我還可以用VHDL和Verlog寫(xiě)一個(gè)內(nèi)核呢,你說(shuō)說(shuō)VHDL和Verilog寫(xiě)出來(lái)的是不是軟件?FPGA是不是硬件?

屌絲B:呃……那咋辦?

屌絲D(計(jì)算機(jī)學(xué)院):你們別忘了,開(kāi)發(fā)板上跑的虛擬機(jī)也是硬件哦,虛擬機(jī)上用Java寫(xiě)的程序也是軟件。

大家可能注意到了,在嵌入式系統(tǒng)中,軟件和硬件是一個(gè)不那么靠譜的定義方式——當(dāng)人們用普通話發(fā)相同的聲音說(shuō)同一個(gè)詞語(yǔ)的時(shí)候,描述的可能根本不是同一個(gè)東西。那么,嵌入式系統(tǒng)中,軟件和硬件應(yīng)該如何理解呢?

方案一 . 要么,你可以假裝從來(lái)沒(méi)有看過(guò)這篇文章,只跟你用相同系統(tǒng)的人討論問(wèn)題,或者“自己根據(jù)語(yǔ)境”自動(dòng)切換軟件和硬件的意思。

方案二 . 要么,我們重新定義一下軟件和硬件的概念,只要這個(gè)概念兼容原有的理解方式就可以了。

真有一種兼容老概念的新定義么?答案是肯定的。讓我們來(lái)首先找一找在不同層面上軟件的共同點(diǎn):大家都是用一種語(yǔ)言(Java、C、VHDL、甚至是原理圖)來(lái)描述自己大腦中的邏輯(思維)。讓我們來(lái)體會(huì)一下這個(gè)特點(diǎn),是不是這么個(gè)特點(diǎn)?因此,我們重新鄭重的定義一下軟件:

軟件:人們借助某種語(yǔ)言,“嘗試”固化下來(lái)的,自己的思維

與之相對(duì),硬件的概念可以修改為:

硬件:業(yè)已固化下來(lái)的邏輯,可以穩(wěn)定的提供確定的服務(wù)和功能

可見(jiàn), 軟件的本質(zhì)是思維,是設(shè)計(jì)人員的思維 ,因而程序設(shè)計(jì)人員最重要的是自己 根據(jù)任務(wù)的需求想通所有的邏輯,并借助一定的語(yǔ)言作為工具,把自己的思維"固化"下來(lái) 。這個(gè)思維的過(guò)程叫做"設(shè)計(jì)(Design)"、這個(gè)固化的過(guò)程叫做"編碼(Coding)"。簡(jiǎn)單的說(shuō),寫(xiě)代碼只是一個(gè)思維翻譯的過(guò)程,更重要的是首先寫(xiě)程序的人要想清楚,擁有清晰的思維,然后借助準(zhǔn)確無(wú)誤的語(yǔ)言表達(dá)能力(很遺憾,很多人語(yǔ)言表達(dá)能力非常有限——就是用C語(yǔ)言寫(xiě)不出自己想要實(shí)現(xiàn)的功能)才能寫(xiě)出正確的代碼。

思維的設(shè)計(jì)有很多輔助工具,如大家熟知的流程圖(Flow Chart)、UML圖、還有大家不太用的數(shù)據(jù)流圖(Data Flow Diagram)等等。然而,具體代碼往往并不是一個(gè)好的輔助工具。進(jìn)行思維設(shè)計(jì)的開(kāi)發(fā)人員,叫做Programmer。

將Programmer的設(shè)計(jì)文檔(各類(lèi)圖表)翻譯成具體程序代碼的人叫做Coder。

說(shuō)殘酷一點(diǎn):Programmer設(shè)計(jì),負(fù)責(zé)思考;Coder翻譯,負(fù)責(zé)干苦力。如果你不服,我也沒(méi)辦法,哈哈哈哈……

**硬件,本質(zhì)上一個(gè)固化下來(lái)的邏輯。**這個(gè)邏輯的前身當(dāng)然是思維,只不過(guò)它被固化下來(lái)了,而且可以"穩(wěn)定"可靠的提供"確定"的功能和服務(wù)。比如,F(xiàn)IFO是隊(duì)列,在某些軟件系統(tǒng)中把這種邏輯確定的模塊叫做"構(gòu)件"(Component),一種中性化的描述,并不強(qiáng)調(diào)它是軟件還是硬件。因?yàn)闃?gòu)件的本質(zhì)是一個(gè)模塊,是一個(gè)可以提供"確定"的,大家都知道的功能的模塊。它可以是硬件的,也可以是軟件的。Who care?有的系統(tǒng)還會(huì)提供硬件抽象層,進(jìn)一步模糊這類(lèi)模塊的軟硬屬性——反正你知道它是做什么的就行了,反正它很可靠,而且可以重復(fù)利用,所以你用就好了,是軟的還是硬的,無(wú)所謂,反正都是同一個(gè)API。

當(dāng)我們想凸顯一個(gè)模塊的邏輯、確定性和穩(wěn)定性,而又不能或者不需要或者不關(guān)心它的軟硬屬性的時(shí)候,我們就干脆叫他構(gòu)件(Component)。

重新定義軟件和硬件的概念,不是一個(gè)文字游戲,而是一個(gè)行業(yè)內(nèi)在心底里約定俗成已經(jīng)默默在做的事情,只是,今天被明確的點(diǎn)破了而已。雖然你覺(jué)得被刷了三觀(也許你沒(méi)有),但仔細(xì)想想,其實(shí)的確和過(guò)去的認(rèn)識(shí)沒(méi)有本質(zhì)上的區(qū)別?

不是么?其實(shí)你早就懂對(duì)么?哈哈哈哈——我沒(méi)有重新發(fā)明軟件或者硬件,我只是誠(chéng)實(shí)的搬運(yùn)工。

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

    關(guān)注

    41

    文章

    3551

    瀏覽量

    129104
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2056

    瀏覽量

    153934
  • iOS
    iOS
    +關(guān)注

    關(guān)注

    8

    文章

    3392

    瀏覽量

    150367
  • 計(jì)算機(jī)硬件
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7709
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式系統(tǒng)是什么 什么叫嵌入式系統(tǒng)

    系統(tǒng)的概念也有被濫用的嫌疑。在一般的文獻(xiàn)中嵌入式系統(tǒng)是這樣定義的:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)
    發(fā)表于 04-20 14:13

    嵌入式系統(tǒng)是什么 什么叫嵌入式系統(tǒng)

    計(jì)算機(jī)技術(shù)基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗有嚴(yán)格要求的計(jì)算機(jī)系統(tǒng)。但是這種定義較為古板,大家公認(rèn)的比較有前途的嵌入式
    發(fā)表于 06-29 15:55

    什么是嵌入式系統(tǒng) 嵌入式系統(tǒng)定義

    嵌入式系統(tǒng)的概念有多種不同的說(shuō)法,常見(jiàn)的一種說(shuō)法是:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)基礎(chǔ),軟硬件可裁剪,對(duì)功能、可靠性、成本、體積和
    發(fā)表于 09-23 15:57

    嵌入式系統(tǒng)就業(yè)前景

    電子、醫(yī)療電子等都是嵌入式軟件的重要應(yīng)用領(lǐng)域。良好的英文閱讀能力及較強(qiáng)的學(xué)習(xí)能力是從事這一領(lǐng)域工作的基礎(chǔ)。對(duì)嵌入式操作系統(tǒng)做到一多能(精
    發(fā)表于 06-22 09:12

    什么是嵌入式系統(tǒng)?

    、一般運(yùn)行固定的程序或固定的操作系統(tǒng),再加上可變的應(yīng)用程序。3、有些工業(yè)系統(tǒng),僅用于某個(gè)特定的控制目的;有些因?yàn)橛袘?yīng)用程序的加入更顯靈活,如手機(jī),平板電腦?,F(xiàn)代的
    發(fā)表于 10-28 06:03

    什么是嵌入式系統(tǒng)?深嵌入式系統(tǒng)又是什么

    和Android的系統(tǒng)也可以稱為嵌入式系統(tǒng)。但是通常,這些通用操作系統(tǒng)需要應(yīng)用程序處理器,并具有其他功能,例如動(dòng)態(tài)應(yīng)用程序加載。這就是為什么基于MCU的
    發(fā)表于 12-21 06:48

    調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線應(yīng)用手冊(cè)

    調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線應(yīng)用手冊(cè) 今天,嵌入式系統(tǒng)幾乎遍布在人類(lèi)社會(huì)的每個(gè)角落。嵌入式系統(tǒng)
    發(fā)表于 03-16 12:21 ?28次下載

    嵌入式新手學(xué)習(xí)路線,嵌入式課程學(xué)習(xí)課程分享

    嵌入式開(kāi)發(fā)就是指在嵌入式操作系統(tǒng)進(jìn)行開(kāi)發(fā),一般常用的系統(tǒng)有WinCE,ucos,vxworks,linux,android等。另外,
    發(fā)表于 12-19 10:43 ?1014次閱讀

    嵌入式系統(tǒng)什么語(yǔ)言_生活中常見(jiàn)的嵌入式系統(tǒng)

     嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的
    發(fā)表于 08-13 15:02 ?1.3w次閱讀

    嵌入式系統(tǒng)嵌入式PLC

    嵌入式系統(tǒng)嵌入式PLC(嵌入式開(kāi)發(fā)面試題目)-該文檔嵌入式
    發(fā)表于 07-30 10:38 ?24次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>與<b class='flag-5'>嵌入式</b>PLC

    ARM11嵌入式系統(tǒng)LinuxLCD的驅(qū)動(dòng)的設(shè)計(jì)

    ARM11嵌入式系統(tǒng)LinuxLCD的驅(qū)動(dòng)的設(shè)計(jì)(嵌入式開(kāi)發(fā)啥意思)-ARM11嵌入式系統(tǒng)Li
    發(fā)表于 07-30 14:53 ?24次下載
    ARM11<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>Linux<b class='flag-5'>下</b>LCD的驅(qū)動(dòng)的設(shè)計(jì)

    什么是嵌入式系統(tǒng)

    、一般運(yùn)行固定的程序或固定的操作系統(tǒng),再加上可變的應(yīng)用程序。3、有些工業(yè)系統(tǒng),僅用于某個(gè)特定的控制目的;有些因?yàn)橛袘?yīng)用程序的加入更顯靈活,如手機(jī),平板電腦?,F(xiàn)代的
    發(fā)表于 10-21 10:36 ?9次下載
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>

    嵌入式系統(tǒng)設(shè)計(jì)的問(wèn)答

    1.嵌入式系統(tǒng)的概念答:嵌入式系統(tǒng)是一種以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)基礎(chǔ),可以適應(yīng)不同應(yīng)用對(duì)功能、可靠性、成本、體積、功耗等方面的要求,集可
    發(fā)表于 11-03 18:06 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)的問(wèn)答

    為什么航天器、導(dǎo)彈喜歡單片機(jī),不是嵌入式系統(tǒng)?

    ,他說(shuō):現(xiàn)在的航空、航天和導(dǎo)彈等武器裝備中,控制系統(tǒng)幾乎都是單片機(jī),不是嵌入式系統(tǒng)。乍一聽(tīng),和我們的
    發(fā)表于 12-05 16:51 ?12次下載
    為什么航天器、導(dǎo)彈喜歡<b class='flag-5'>用</b>單片機(jī),<b class='flag-5'>而</b>不是<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>?

    ”---嵌入式系統(tǒng)

    綜上所屬,我們可以簡(jiǎn)單的小結(jié)一,嵌入式系統(tǒng)是一個(gè)面向應(yīng)用高度裁減的專用計(jì)算機(jī)系統(tǒng)——是不是覺(jué)得都是廢話了?哈哈哈哈,說(shuō)明你理解了。下一篇,我們將更深層次的揭示隱藏在
    的頭像 發(fā)表于 04-13 15:34 ?434次閱讀