女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

汽車電子技術 ? 來源:嵌入式系統 ? 作者: 嵌入式系統 ? 2023-01-20 11:08 ? 次閱讀

引言嵌入式軟件開發分層、模塊化是理想狀態,實際開發中因各種限制而有所取舍,但這不妨礙學習參考優秀軟件架構,即使有部分思想在項目中落實,也是大有裨益的。

1、AUTOSAR的軟件分層理論

汽車電子消費電子不同,其硬件、軟件都更關注可靠性、安全性和長效性。其軟件需要兼容不同供應商、在不同車型可復用,汽車電子行業的軟件架構AUTOSAR(Automotive Open System Architecture)可以作為參考對象。因為不曾使用和系統學習,基于有限信息理解其軟件分層思想,可能有所偏差。

AUTOSAR是一種汽車開放系統架構,AUTOSAR規范的運用使得電子控制單元的接口特征標準化,應用軟件具備更好的可擴展性以及可移植性,實現對現有軟件的重用,提高軟件產品的質量。

傳統的汽車電子軟件開發流程存在很多不足:

1、軟件復用性極差

2、硬件平臺各式各樣,接口難以統一

3、功能差異性導致軟件模塊化極其有限

4、嵌入式系統不支持硬件抽象

這也是芯片供應緊缺或升級迭代加快,頻繁更換物料時嵌入式設備軟件開發所面臨的問題,重復的無用功太多。

如車載空調ECU零件(Electronic Control Unit 電子控制單元),在A款車型上進行首次開發,可通過實體按鍵操作調節溫度。但是同樣的空調、同樣的ECU,換到B款車型上做開發時,想用中控大屏幕來控制溫度,之前寫的控制代碼就不管用了,需要從頭開始重新開發。或者說,同樣的A款車型,想升級換另一個空調零件,那么軟件也得重新開發。

微信截圖_20230105161930.png

深度耦合的架構,導致新項目很難復用以前的代碼,幾乎每一個新項目都是從頭開始。

而AUTOSAR的目的就是建立分層的體系架構和制定接口規范,將分層架構高度抽象,使得汽車嵌入式系統軟硬件耦合度降低。

微信截圖_20230105161930.png

應用軟件層專注于業務功能開發,不關注底層硬件細節;基礎軟件層針對不同的硬件適配提供基礎接口,不關注業務邏輯。各個供應商或廠家按統一的標準實現各自的功能,互不干擾。

基礎軟件層框架:

微信截圖_20230105161930.png

基礎層基于硬件實現基礎的驅動功能,類似BSP效果,但進行了一定抽象封裝,與硬件解耦。

應用層實現業務功能,為保證業務功能和底層的解耦,中間是運行時環境RTE隔離。RTE是AUTOSAR 體系的核心,支持軟件組件間、基礎軟件間、軟件組件與基礎軟件之間的通信

AUTOSAR的標準化,使軟件開發合作如同堆積木一樣,可以按需修改和更換不同的子模塊,其核心思想是“統一標準、分散實施、集中配置”。軟件系統的開放化和標準化提高軟件開發的效率和質量。

2、軟件分層實施

軟件分層理論不錯,但如汽車電子的AUTOSAR的復雜架構需要工具配置保證接口和規范,對于消費電子或者小公司無法滿足條件的,如何結合實情進行簡化實施呢?

以電子產品充電時需要亮LED為例,即主芯片的某個GPIO控制LED亮滅的需求,拋磚引玉的發表見解。

主控芯片可能有C1、C2、C3三種,而不同的產品形態導致硬件布局差異,即使都是C1主控方案,可能采用P1、P2、P3三個引腳的其中一個用于LED控制,對于點亮LED,P1、P2是輸出高亮燈,而P3是輸出低亮燈。

針對這個需求,充電時亮燈屬于業務需求,按需求執行亮燈接口;底層提供GPIO輸出,對于LED的控制屬于運行時環境。為了簡化稱呼,自定義為三層結構,即平臺適配層---功能組件層---業務層 ,最下層為芯片原廠庫或者SDK。

微信截圖_20230105161930.png

軟件開發從底層開始,不同的芯片控制GPIO的接口不同,因此需要封裝一層,使用固定的pal_gpio_write接口,至于最終使用哪顆芯片的HAL庫或者SDK,需要根據芯片類型配置決定,這樣功能組件層不關注芯片差異導致的GPIO控制接口差異,只需要關注具體的GPIO引腳,而這個由LED功能里的配置決定。最終提供給業務層的接口就只有led_charge_show(),具體這個接口運行在什么平臺、控制哪個端口都是封閉的。對于業務層開發,只需要知道,充電時LED的工作狀態執行led_charge_show即可,其內部細節不關注。

這其中除了C源碼開發,對腳本處理及其擴展也是軟件分層實現的基礎,僅僅使用IDE開發工具是無法做到的。按開發環境選擇合適的腳本語言,分層配置,最后統一使用某個項目宏,即開啟對應的項目宏。編譯時選擇對應的C文件或者宏定義,實現一套代碼選擇性的編譯匹配不同的硬件主板或軟件需求。腳本方面可以參考微信公眾號** 嵌入式系統** 的 《[項目配置與編譯自動化]

3、小節

因為接口標準化,軟件與硬件解耦,業務邏輯和驅動模塊解耦,功能組件相互獨立解耦,軟件復用度提高,多人并行開發,軟件質量和進度大大提高。

分層隔離的優點很多,但也存在些弊端。

**1、資源消耗大 ** 因為模塊化、分層,存在冗余兼容代碼,對代碼存儲和RAM有一定要求,過于低端或者資源緊缺的芯片估計難以實現,但也可局部分層。

**2、配置多 ** 因為軟件需要兼容不同芯片、不同主板、以及各種功能組合,每個具體項目存在很多配置項,而且部分配置互相關聯,如果不熟悉或者沒有類似AUTOSAR的可視化工具,新加項目或者更換主板可能需要點時間。

**3、邏輯流程繁瑣 **分層軟件的特點是各種指針和內存共享等,而且因為隔離,原本很簡單的操作需要經過不同組件間接操作,流程不夠直接,代碼出現問題,排查比較困難。

總體來說,分層和模塊化是一種開發思想,需要結合硬件資源和團隊特性來實施。

更多開發技巧與思路,請關注微信公眾號 嵌入式系統。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5141

    文章

    19528

    瀏覽量

    314927
  • 開發
    +關注

    關注

    0

    文章

    373

    瀏覽量

    41343
  • 軟件架構
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10460
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式分層架構的相關資料分享

    最近重新進入嵌入式領域,有必要對嵌入式分層架構有一個清晰的理解。經過多方查閱以及個人的理解,本人對嵌入式分層架構概括總結如下:比較細的層次由
    發表于 10-28 08:42

    嵌入式軟件開發過程之程序代碼分層

    嵌入式軟件開發過程中,在程序架構的搭建完成之后,為了提高項目代碼的可讀性和可維護性等,應對程序代碼分層
    發表于 12-21 06:13

    嵌入式軟件基礎的四層架構分別是哪些

    嵌入式軟件分層架構基本原則有哪些?嵌入式軟件基礎的四層架構分別是哪些?
    發表于 12-24 07:57

    嵌入式操作系統時如何分層的?各層的功能是什么?

    嵌入式操作系統時如何分層的?各層的功能是什么?
    發表于 12-27 06:44

    探討一下嵌入式軟件分層設計

    嵌入式軟件分層設計嵌入式軟件就是某一項目的源碼文件集合,源碼文件的數量,根據項目復雜程度的不同而有規模和層次的差別。就拿簡單的一個芯片廠..
    發表于 02-14 07:19

    什么是嵌入式軟件開發

    嵌入式軟件開發又是指什么?   隨著嵌入式軟件系統結構越來越復雜,嵌入式軟件的開發已成
    發表于 04-20 08:43 ?8899次閱讀

    ARM嵌入式軟件開發

    ARM嵌入式軟件開發ARM嵌入式軟件開發ARM嵌入式軟件開發
    發表于 01-15 17:29 ?65次下載

    嵌入式軟件是什么意思_嵌入式軟件的分類有哪些

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

    嵌入式軟件的開發流程_嵌入式軟件的調試

    本文首先介紹了嵌入式軟件的發展,其次闡述了嵌入式軟件的開發流程,最后介紹了嵌入式軟件的調試。
    發表于 08-31 16:02 ?6486次閱讀

    嵌入式軟件測試參考書籍

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

    嵌入式框架-分層

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

    嵌入式分層概括總結

    最近重新進入嵌入式領域,有必要對嵌入式分層架構有一個清晰的理解。經過多方查閱以及個人的理解,本人對嵌入式分層架構概括總結如下:比較細的層次由
    發表于 10-21 10:51 ?11次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>分層</b>概括總結

    嵌入式軟件開發的特點、設計流程、嵌入式軟件的結構

    ? ? ? ?嵌入式軟件開發的特點、設計流程、嵌入式軟件的結構?一:嵌入式軟件開發的特點1.?
    發表于 11-03 15:21 ?38次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發的特點、設計流程、<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的結構

    嵌入式軟件架構設計之程序分層

    嵌入式MCU軟件開發過程中,程序分層設計也是重中之重,關系到整個軟件開發過程中的協同開發,降低系統軟件的復雜度(復雜問題分解)和依賴關系、
    的頭像 發表于 02-15 14:41 ?1655次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>架構設計之程序<b class='flag-5'>分層</b>

    聊聊嵌入式軟件分層

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