日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式大雜燴
[導(dǎo)讀]C與C的選擇其實是“面向過程”與“面向?qū)ο蟆钡倪x擇。Sugar認(rèn)為這兩種編程思想的選擇取決于軟件的特性,軟件特性包括幾個方面,都是Sugar總結(jié)出來的經(jīng)驗。本文力求把“軟件特性”與“語言選擇”結(jié)合圖示理清晰。嵌入式最簡IO模型“最簡IO模型”自然是輸入直接輸出,比如房間里的照明燈...

CC 的選擇其實是“面向過程”與“面向?qū)ο蟆钡倪x擇。Sugar 認(rèn)為這兩種編程思想的選擇取決于軟件的特性,軟件特性包括幾個方面,都是 Sugar 總結(jié)出來的經(jīng)驗。本文力求把“軟件特性”與“語言選擇”結(jié)合圖示理清晰。

嵌入式最簡 IO 模型

“最簡 IO 模型”自然是輸入直接輸出,比如房間里的照明燈給電就亮,這是不需要嵌入式的。按現(xiàn)在的潮流說法,加嵌入式進(jìn)去那得叫智能硬件。因此,嵌入式的最簡 IO 模型就是在輸入和輸出之間加入“嵌入式運算平臺”,如“圖1”。

圖1. 嵌入式最簡 IO 模型



在嵌入式最簡 IO 模型下的產(chǎn)品功能大多都相對簡單,有明確的輸入和明確的輸出,也就是說嵌入式軟件的運算過程是明確的。這是自然“面向過程”的情況,這種情況下選 C 還是 C 沒有多大差別。簡單的控制過程就算選 C 也是寫面向過程的軟件。

舉個例子來說就是現(xiàn)在小孩子都玩兒膩了的“巡線小車”,上電就跟著線跑。這個用 Arduino C 來實現(xiàn)就可以了,其實 Arduino 是 C 庫,在這種簡單功能上體現(xiàn)不出 CC 有多大區(qū)別。

嵌入式受控 IO 模型

所謂“嵌入式受控 IO 模型”可以認(rèn)為是一個遙控智能車一樣的設(shè)備。在受控模型下,嵌入式硬件平臺多了一路“指令”輸入。這時候不妨再加個顯示器,用于顯示當(dāng)前處于“受控模式”還是“自動模式”,如“圖2”。

圖2. 嵌入式受控 IO 模型



這里引入的“模式”是一個軟件概念,軟件是有無限可能的,能加一個模式進(jìn)去就有可能再加很多個模式。模式在軟件流程上是一個環(huán)節(jié),但這個環(huán)節(jié)如上所述有多種不同的可能,這種情況最適合用 C 的面向?qū)ο笏枷雭韺懗绦颉?/p>即:軟件上“單點多樣”的情況下用 C 使軟件模塊化,用父、子類來實現(xiàn),代碼的可讀性和可維護(hù)性都會遠(yuǎn)強(qiáng)于用 C 來寫。有關(guān)“模式”的詳細(xì)展開請看《從 ArduPilot 學(xué)習(xí)模式管理機(jī)制并移植和改進(jìn)》。

嵌入式終級 IO 模型

隨著人工智能的逐步發(fā)展,越來越多的算法需要強(qiáng)勁的 CPU 甚至 GPU,這都不是嵌入式平臺能做的。嵌入式平臺長于實時控制而非快速大量運算,因此需要與機(jī)載 PC 配合工作。這樣種情況下的模型如“圖3”。

圖3. 嵌入式終級 IO 模型



這樣的模型毫無疑問用 C 會得到可維護(hù)性更好的嵌入式軟件。如上所述 C 用在“單點多樣”的環(huán)節(jié),也就是說在考慮 C 代碼之前要先確認(rèn)有“哪些點”以及每個點有“哪些樣”。

嵌入式軟件的語言選擇

下面基于“嵌入式終極 IO 模型”展開說嵌入式軟件的語言選擇。在嵌軟部分從前往后展開,首先是傳感器輸入數(shù)據(jù)。

傳感器輸入部分的語言選擇

圖4. 傳感器輸入部分語言選擇



軟件特性語言
軟件運行平臺的相關(guān)硬件不經(jīng)常改變C
軟件運行平臺的相關(guān)硬件經(jīng)常改變C
上表根據(jù)軟件的運行平臺差異直接給出了選擇建議,平臺差異也決定了軟件特性的不同。

對于醫(yī)療、工業(yè)、運輸/鐵路、航空航天設(shè)備、汽車、核應(yīng)用、家電系列產(chǎn)品,一般生產(chǎn)出來之后嵌入式硬件將不再改變,這類產(chǎn)品開發(fā)就適合選擇 C 語言。在這些產(chǎn)品上 C 語言占用資源相對少、較率相對高。因為硬件固定所以軟件源文件數(shù)量也是明確的,源碼文件管理的負(fù)擔(dān)也不重。另外傳感器驅(qū)動開發(fā)這件事本身就是“面向過程”的,開發(fā)經(jīng)驗是決定開發(fā)效率的關(guān)鍵,“面向?qū)ο蟆痹陂_發(fā)效率上的優(yōu)勢于這種情況下很難體現(xiàn)出來。

對于玩具、教具類產(chǎn)品或者是開源軟件,靈活適配同類硬件是基本要求。這類嵌軟的特點是同一種硬件需要適配不同廠家、不同型號的“同功能設(shè)備”,這就符合“面向?qū)ο蟆钡乃枷搿>鸵?GPS 來說,不論哪個廠家都要輸出經(jīng)緯度、速度、時間戳這些數(shù)據(jù),我們可以把這些共性數(shù)據(jù)做成 C 的基類,用子類解決廠家差異。這部分 Sugar 在《一文讀懂 ArduPilot 的前后臺架構(gòu)》中有詳述。

嵌入式運算部分的語言選擇

圖5. 嵌入式運算部分語言選擇



這一部分的軟件特性是:算法與硬件平臺無關(guān)。算法本身是數(shù)學(xué)和邏輯,平臺提供運算能力,因此運算部分理應(yīng)在任何運算能力達(dá)到要求的平臺上都能夠運行。另外算法本身具有多樣性,一個目標(biāo)往往不只一種算法可以達(dá)到。

“單點多樣”、“跨平臺”這兩點對軟件代碼的文件管理都有比較高的要求,這些要求用 C 就非常容易滿足。

協(xié)議數(shù)據(jù)部分的語言選擇

圖6. 協(xié)議數(shù)據(jù)部分語言選擇



協(xié)議本質(zhì)是對傳輸數(shù)據(jù)的打包和解包,這是一個面向過程的事,所以用 C 語言來實現(xiàn)協(xié)議代碼最合適。

從數(shù)據(jù)傳輸方面考慮,在把數(shù)據(jù)送給協(xié)議代碼打包前,最好將數(shù)據(jù)分類,以明確數(shù)據(jù)是“給誰”和“干什么”的,這些事 Sugar 統(tǒng)稱為“協(xié)議數(shù)據(jù)管理”。從嵌入式軟件整體來看“協(xié)議數(shù)據(jù)管理”就是整體中的“一個點”,而嵌入式平臺的通信對象可能不唯一,比如“圖6”中就有給顯示器的和給機(jī)載 PC 的,也就是說管理起來是“多樣的”。這從軟件整體來看也是一個典型的“單點多樣”,所以協(xié)議數(shù)據(jù)管理這部分選 C 面向?qū)ο髮戃浖袃?yōu)勢。

往期推薦:

嵌入式開發(fā)小記,實用小知識分享

分享幾個Ubuntu必裝的軟件

嵌入式行業(yè)需要什么樣的技術(shù)人才?

常用的開源協(xié)議有哪些?

在公眾號聊天界面回復(fù)1024,可獲取嵌入式資源;回復(fù)?m?,可查看文章匯總。


點擊閱讀原文,查看更多分享。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉