99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

嵌入式軟件分層隔離的典范是什么?

汽車(chē)電子技術(shù) ? 來(lái)源:嵌入式系統(tǒng) ? 作者: 嵌入式系統(tǒng) ? 2023-01-20 11:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言嵌入式軟件開(kāi)發(fā)分層、模塊化是理想狀態(tài),實(shí)際開(kāi)發(fā)中因各種限制而有所取舍,但這不妨礙學(xué)習(xí)參考優(yōu)秀軟件架構(gòu),即使有部分思想在項(xiàng)目中落實(shí),也是大有裨益的。

1、AUTOSAR的軟件分層理論

汽車(chē)電子消費(fèi)電子不同,其硬件、軟件都更關(guān)注可靠性、安全性和長(zhǎng)效性。其軟件需要兼容不同供應(yīng)商、在不同車(chē)型可復(fù)用,汽車(chē)電子行業(yè)的軟件架構(gòu)AUTOSAR(Automotive Open System Architecture)可以作為參考對(duì)象。因?yàn)椴辉褂煤拖到y(tǒng)學(xué)習(xí),基于有限信息理解其軟件分層思想,可能有所偏差。

AUTOSAR是一種汽車(chē)開(kāi)放系統(tǒng)架構(gòu),AUTOSAR規(guī)范的運(yùn)用使得電子控制單元的接口特征標(biāo)準(zhǔn)化,應(yīng)用軟件具備更好的可擴(kuò)展性以及可移植性,實(shí)現(xiàn)對(duì)現(xiàn)有軟件的重用,提高軟件產(chǎn)品的質(zhì)量。

傳統(tǒng)的汽車(chē)電子軟件開(kāi)發(fā)流程存在很多不足:

1、軟件復(fù)用性極差

2、硬件平臺(tái)各式各樣,接口難以統(tǒng)一

3、功能差異性導(dǎo)致軟件模塊化極其有限

4、嵌入式系統(tǒng)不支持硬件抽象

這也是芯片供應(yīng)緊缺或升級(jí)迭代加快,頻繁更換物料時(shí)嵌入式設(shè)備軟件開(kāi)發(fā)所面臨的問(wèn)題,重復(fù)的無(wú)用功太多。

如車(chē)載空調(diào)ECU零件(Electronic Control Unit 電子控制單元),在A款車(chē)型上進(jìn)行首次開(kāi)發(fā),可通過(guò)實(shí)體按鍵操作調(diào)節(jié)溫度。但是同樣的空調(diào)、同樣的ECU,換到B款車(chē)型上做開(kāi)發(fā)時(shí),想用中控大屏幕來(lái)控制溫度,之前寫(xiě)的控制代碼就不管用了,需要從頭開(kāi)始重新開(kāi)發(fā)?;蛘哒f(shuō),同樣的A款車(chē)型,想升級(jí)換另一個(gè)空調(diào)零件,那么軟件也得重新開(kāi)發(fā)。

微信截圖_20230105161930.png

深度耦合的架構(gòu),導(dǎo)致新項(xiàng)目很難復(fù)用以前的代碼,幾乎每一個(gè)新項(xiàng)目都是從頭開(kāi)始。

而AUTOSAR的目的就是建立分層的體系架構(gòu)和制定接口規(guī)范,將分層架構(gòu)高度抽象,使得汽車(chē)嵌入式系統(tǒng)軟硬件耦合度降低。

微信截圖_20230105161930.png

應(yīng)用軟件層專(zhuān)注于業(yè)務(wù)功能開(kāi)發(fā),不關(guān)注底層硬件細(xì)節(jié);基礎(chǔ)軟件層針對(duì)不同的硬件適配提供基礎(chǔ)接口,不關(guān)注業(yè)務(wù)邏輯。各個(gè)供應(yīng)商或廠家按統(tǒng)一的標(biāo)準(zhǔn)實(shí)現(xiàn)各自的功能,互不干擾。

基礎(chǔ)軟件層框架:

微信截圖_20230105161930.png

基礎(chǔ)層基于硬件實(shí)現(xiàn)基礎(chǔ)的驅(qū)動(dòng)功能,類(lèi)似BSP效果,但進(jìn)行了一定抽象封裝,與硬件解耦。

應(yīng)用層實(shí)現(xiàn)業(yè)務(wù)功能,為保證業(yè)務(wù)功能和底層的解耦,中間是運(yùn)行時(shí)環(huán)境RTE隔離。RTE是AUTOSAR 體系的核心,支持軟件組件間、基礎(chǔ)軟件間、軟件組件與基礎(chǔ)軟件之間的通信。

AUTOSAR的標(biāo)準(zhǔn)化,使軟件開(kāi)發(fā)合作如同堆積木一樣,可以按需修改和更換不同的子模塊,其核心思想是“統(tǒng)一標(biāo)準(zhǔn)、分散實(shí)施、集中配置”。軟件系統(tǒng)的開(kāi)放化和標(biāo)準(zhǔn)化提高軟件開(kāi)發(fā)的效率和質(zhì)量。

2、軟件分層實(shí)施

軟件分層理論不錯(cuò),但如汽車(chē)電子的AUTOSAR的復(fù)雜架構(gòu)需要工具配置保證接口和規(guī)范,對(duì)于消費(fèi)電子或者小公司無(wú)法滿足條件的,如何結(jié)合實(shí)情進(jìn)行簡(jiǎn)化實(shí)施呢?

以電子產(chǎn)品充電時(shí)需要亮LED為例,即主芯片的某個(gè)GPIO控制LED亮滅的需求,拋磚引玉的發(fā)表見(jiàn)解。

主控芯片可能有C1、C2、C3三種,而不同的產(chǎn)品形態(tài)導(dǎo)致硬件布局差異,即使都是C1主控方案,可能采用P1、P2、P3三個(gè)引腳的其中一個(gè)用于LED控制,對(duì)于點(diǎn)亮LED,P1、P2是輸出高亮燈,而P3是輸出低亮燈。

針對(duì)這個(gè)需求,充電時(shí)亮燈屬于業(yè)務(wù)需求,按需求執(zhí)行亮燈接口;底層提供GPIO輸出,對(duì)于LED的控制屬于運(yùn)行時(shí)環(huán)境。為了簡(jiǎn)化稱(chēng)呼,自定義為三層結(jié)構(gòu),即平臺(tái)適配層---功能組件層---業(yè)務(wù)層 ,最下層為芯片原廠庫(kù)或者SDK。

微信截圖_20230105161930.png

軟件開(kāi)發(fā)從底層開(kāi)始,不同的芯片控制GPIO的接口不同,因此需要封裝一層,使用固定的pal_gpio_write接口,至于最終使用哪顆芯片的HAL庫(kù)或者SDK,需要根據(jù)芯片類(lèi)型配置決定,這樣功能組件層不關(guān)注芯片差異導(dǎo)致的GPIO控制接口差異,只需要關(guān)注具體的GPIO引腳,而這個(gè)由LED功能里的配置決定。最終提供給業(yè)務(wù)層的接口就只有l(wèi)ed_charge_show(),具體這個(gè)接口運(yùn)行在什么平臺(tái)、控制哪個(gè)端口都是封閉的。對(duì)于業(yè)務(wù)層開(kāi)發(fā),只需要知道,充電時(shí)LED的工作狀態(tài)執(zhí)行l(wèi)ed_charge_show即可,其內(nèi)部細(xì)節(jié)不關(guān)注。

這其中除了C源碼開(kāi)發(fā),對(duì)腳本處理及其擴(kuò)展也是軟件分層實(shí)現(xiàn)的基礎(chǔ),僅僅使用IDE開(kāi)發(fā)工具是無(wú)法做到的。按開(kāi)發(fā)環(huán)境選擇合適的腳本語(yǔ)言,分層配置,最后統(tǒng)一使用某個(gè)項(xiàng)目宏,即開(kāi)啟對(duì)應(yīng)的項(xiàng)目宏。編譯時(shí)選擇對(duì)應(yīng)的C文件或者宏定義,實(shí)現(xiàn)一套代碼選擇性的編譯匹配不同的硬件主板或軟件需求。腳本方面可以參考微信公眾號(hào)** 嵌入式系統(tǒng)** 的 《[項(xiàng)目配置與編譯自動(dòng)化]

3、小節(jié)

因?yàn)榻涌跇?biāo)準(zhǔn)化,軟件與硬件解耦,業(yè)務(wù)邏輯和驅(qū)動(dòng)模塊解耦,功能組件相互獨(dú)立解耦,軟件復(fù)用度提高,多人并行開(kāi)發(fā),軟件質(zhì)量和進(jìn)度大大提高。

分層隔離的優(yōu)點(diǎn)很多,但也存在些弊端。

**1、資源消耗大 ** 因?yàn)槟K化、分層,存在冗余兼容代碼,對(duì)代碼存儲(chǔ)和RAM有一定要求,過(guò)于低端或者資源緊缺的芯片估計(jì)難以實(shí)現(xiàn),但也可局部分層。

**2、配置多 ** 因?yàn)檐浖枰嫒莶煌酒⒉煌靼?、以及各種功能組合,每個(gè)具體項(xiàng)目存在很多配置項(xiàng),而且部分配置互相關(guān)聯(lián),如果不熟悉或者沒(méi)有類(lèi)似AUTOSAR的可視化工具,新加項(xiàng)目或者更換主板可能需要點(diǎn)時(shí)間。

**3、邏輯流程繁瑣 **分層軟件的特點(diǎn)是各種指針和內(nèi)存共享等,而且因?yàn)楦綦x,原本很簡(jiǎn)單的操作需要經(jīng)過(guò)不同組件間接操作,流程不夠直接,代碼出現(xiàn)問(wèn)題,排查比較困難。

總體來(lái)說(shuō),分層和模塊化是一種開(kāi)發(fā)思想,需要結(jié)合硬件資源和團(tuán)隊(duì)特性來(lái)實(shí)施。

更多開(kāi)發(fā)技巧與思路,請(qǐng)關(guān)注微信公眾號(hào) 嵌入式系統(tǒng)。

聲明:本文內(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19678

    瀏覽量

    317769
  • 開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    373

    瀏覽量

    41532
  • 軟件架構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    10499
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式分層架構(gòu)的相關(guān)資料分享

    最近重新進(jìn)入嵌入式領(lǐng)域,有必要對(duì)嵌入式分層架構(gòu)有一個(gè)清晰的理解。經(jīng)過(guò)多方查閱以及個(gè)人的理解,本人對(duì)嵌入式分層架構(gòu)概括總結(jié)如下:比較細(xì)的層次由
    發(fā)表于 10-28 08:42

    嵌入式軟件開(kāi)發(fā)過(guò)程之程序代碼分層

    嵌入式軟件開(kāi)發(fā)過(guò)程中,在程序架構(gòu)的搭建完成之后,為了提高項(xiàng)目代碼的可讀性和可維護(hù)性等,應(yīng)對(duì)程序代碼分層
    發(fā)表于 12-21 06:13

    嵌入式軟件基礎(chǔ)的四層架構(gòu)分別是哪些

    嵌入式軟件分層架構(gòu)基本原則有哪些?嵌入式軟件基礎(chǔ)的四層架構(gòu)分別是哪些?
    發(fā)表于 12-24 07:57

    嵌入式操作系統(tǒng)時(shí)如何分層的?各層的功能是什么?

    嵌入式操作系統(tǒng)時(shí)如何分層的?各層的功能是什么?
    發(fā)表于 12-27 06:44

    探討一下嵌入式軟件分層設(shè)計(jì)

    嵌入式軟件分層設(shè)計(jì)嵌入式軟件就是某一項(xiàng)目的源碼文件集合,源碼文件的數(shù)量,根據(jù)項(xiàng)目復(fù)雜程度的不同而有規(guī)模和層次的差別。就拿簡(jiǎn)單的一個(gè)芯片廠..
    發(fā)表于 02-14 07:19

    什么是嵌入式軟件開(kāi)發(fā)

    嵌入式軟件開(kāi)發(fā)又是指什么?   隨著嵌入式軟件系統(tǒng)結(jié)構(gòu)越來(lái)越復(fù)雜,嵌入式軟件的開(kāi)發(fā)已成
    發(fā)表于 04-20 08:43 ?8980次閱讀

    ARM嵌入式軟件開(kāi)發(fā)

    ARM嵌入式軟件開(kāi)發(fā)ARM嵌入式軟件開(kāi)發(fā)ARM嵌入式軟件開(kāi)發(fā)
    發(fā)表于 01-15 17:29 ?65次下載

    嵌入式軟件是什么意思_嵌入式軟件的分類(lèi)有哪些

    本文首先闡述了嵌入式軟件的概念,其次介紹了嵌入式軟件的特征,最后介紹了嵌入式軟件的分類(lèi)。
    發(fā)表于 08-31 15:54 ?1.7w次閱讀

    嵌入式軟件的開(kāi)發(fā)流程_嵌入式軟件的調(diào)試

    本文首先介紹了嵌入式軟件的發(fā)展,其次闡述了嵌入式軟件的開(kāi)發(fā)流程,最后介紹了嵌入式軟件的調(diào)試。
    發(fā)表于 08-31 16:02 ?6550次閱讀

    嵌入式軟件測(cè)試參考書(shū)籍

    嵌入式軟件測(cè)試的幾本參考書(shū)籍:1、《嵌入式軟件測(cè)試》;2、《嵌入式軟件測(cè)試 方法、案例與模板詳解
    發(fā)表于 10-20 12:06 ?51次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>測(cè)試參考書(shū)籍

    嵌入式框架-分層

    原有的代碼。接下來(lái)嵌入式ARM便和大家分享一下,嵌入式架構(gòu)那些事兒……01嵌入式系統(tǒng)的基本架構(gòu)嵌入式系統(tǒng)一般由軟件和硬件兩個(gè)部分組成,基中
    發(fā)表于 10-20 16:06 ?24次下載
    <b class='flag-5'>嵌入式</b>框架-<b class='flag-5'>分層</b>

    嵌入式分層概括總結(jié)

    最近重新進(jìn)入嵌入式領(lǐng)域,有必要對(duì)嵌入式分層架構(gòu)有一個(gè)清晰的理解。經(jīng)過(guò)多方查閱以及個(gè)人的理解,本人對(duì)嵌入式分層架構(gòu)概括總結(jié)如下:比較細(xì)的層次由
    發(fā)表于 10-21 10:51 ?11次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>分層</b>概括總結(jié)

    嵌入式軟件開(kāi)發(fā)的特點(diǎn)、設(shè)計(jì)流程、嵌入式軟件的結(jié)構(gòu)

    ? ? ? ?嵌入式軟件開(kāi)發(fā)的特點(diǎn)、設(shè)計(jì)流程、嵌入式軟件的結(jié)構(gòu)?一:嵌入式軟件開(kāi)發(fā)的特點(diǎn)1.?
    發(fā)表于 11-03 15:21 ?38次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開(kāi)發(fā)的特點(diǎn)、設(shè)計(jì)流程、<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的結(jié)構(gòu)

    嵌入式軟件架構(gòu)設(shè)計(jì)之程序分層

    嵌入式MCU軟件開(kāi)發(fā)過(guò)程中,程序分層設(shè)計(jì)也是重中之重,關(guān)系到整個(gè)軟件開(kāi)發(fā)過(guò)程中的協(xié)同開(kāi)發(fā),降低系統(tǒng)軟件的復(fù)雜度(復(fù)雜問(wèn)題分解)和依賴(lài)關(guān)系、
    的頭像 發(fā)表于 02-15 14:41 ?1797次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>架構(gòu)設(shè)計(jì)之程序<b class='flag-5'>分層</b>

    聊聊嵌入式軟件分層

    今天以控制LED閃爍為例,聊聊嵌入式軟件分層
    的頭像 發(fā)表于 12-28 09:22 ?941次閱讀