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

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

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

不能獨(dú)立開發(fā),是因?yàn)槟悴欢浖軜?gòu)

朱老師物聯(lián)網(wǎng)大講堂 ? 2024-03-15 08:09 ? 次閱讀

嵌入式軟件架構(gòu)設(shè)計(jì)一般采用分層思想,稱為“分層架構(gòu)”。

part1

一、什么是分層架構(gòu)?

分層架構(gòu)(Layered Architecture)是一種將系統(tǒng)分為互相隔離的層,每一層完成特定功能的設(shè)計(jì)方式。這種架構(gòu)有助于提高代碼的可管理性和可維護(hù)性。在嵌入式系統(tǒng)中,分層架構(gòu)常常如下劃分:

物理硬件層:這是系統(tǒng)最底層,包括微處理器、存儲(chǔ)設(shè)備、傳感器、執(zhí)行器等具體的物理硬件。

硬件抽象層(HAL):提供一個(gè)與硬件通信的統(tǒng)一API,使上層軟件不用關(guān)心硬件的具體實(shí)現(xiàn)細(xì)節(jié)。HAL定義了一組標(biāo)準(zhǔn)的函數(shù)或指令集,用于訪問接口硬件。

低級(jí)驅(qū)動(dòng)層:包括直接與硬件組件如GPIO、ADC、UART等進(jìn)行通信的驅(qū)動(dòng)程序。這些驅(qū)動(dòng)封裝了對硬件的訪問,供高級(jí)應(yīng)用使用。

操作系統(tǒng)層:如果嵌入式系統(tǒng)采用了操作系統(tǒng)(如Linux、RTOS等),則該層負(fù)責(zé)管理硬件資源、任務(wù)調(diào)度、內(nèi)存管理、設(shè)備管理等。

中間件層:提供一種抽象層,協(xié)助開發(fā)者處理如通信協(xié)議、數(shù)據(jù)格式轉(zhuǎn)換、設(shè)備配置、系統(tǒng)服務(wù)等復(fù)雜的功能。

應(yīng)用層:該層包含用于執(zhí)行特定任務(wù)的應(yīng)用程序。它使用下層提供的服務(wù),并通過用戶接口與用戶互動(dòng)。

part2

二、分層架構(gòu)有哪些實(shí)例?

01

51e3a420-e260-11ee-9118-92fbcf53809c.png

RT-Thread

51ecff16-e260-11ee-9118-92fbcf53809c.png

51f260a0-e260-11ee-9118-92fbcf53809c.png

02

51e3a420-e260-11ee-9118-92fbcf53809c.png

華為LiteOS

51ecff16-e260-11ee-9118-92fbcf53809c.png

520f6bf0-e260-11ee-9118-92fbcf53809c.png

03

51e3a420-e260-11ee-9118-92fbcf53809c.png

基于STM32G474雙向DCDC數(shù)字電源項(xiàng)目

51ecff16-e260-11ee-9118-92fbcf53809c.png

523acc28-e260-11ee-9118-92fbcf53809c.png

- 點(diǎn)擊查看-

【基于STM32G474的DCDC數(shù)字電源】項(xiàng)目詳情介紹

part3

三、為什么要使用分層架構(gòu)?

使用分層架構(gòu)主要是因?yàn)樗峁┝巳缦聨讉€(gè)重要的優(yōu)勢:

抽象性和解耦:分層架構(gòu)通過在硬件和應(yīng)用代碼之間提供抽象層,允許應(yīng)用程序開發(fā)者編寫與特定硬件實(shí)現(xiàn)無關(guān)的代碼。這降低了各組件之間的耦合度,方便了軟件維護(hù)和升級(jí)。

可維護(hù)性和可測試性:分層架構(gòu)提高了代碼的可維護(hù)性,因?yàn)槊繉佣伎梢元?dú)立地開發(fā)和測試,問題定位也更為直接。

模塊化和重用性:嵌入式系統(tǒng)往往需要在不同產(chǎn)品或項(xiàng)目間重復(fù)使用某些模塊。分層架構(gòu)設(shè)計(jì)的系統(tǒng)可以更容易地重用某層代碼,減少開發(fā)工作量和成本。

跨平臺(tái)移植性:當(dāng)嵌入式系統(tǒng)需要移植到新的硬件平臺(tái)時(shí),分層架構(gòu)使得只需要改動(dòng)硬件抽象層和設(shè)備驅(qū)動(dòng)層,而應(yīng)用層和中間件層可以不作或少作修改。

更好的協(xié)作:分層架構(gòu)使得工作可以在項(xiàng)目團(tuán)隊(duì)成員間更高效地分工。例如,一些成員可以專注于底層驅(qū)動(dòng),而其他人可以專注于業(yè)務(wù)邏輯和用戶界面。

安全性和隔離:通過在不同層之間設(shè)立防火墻,可以抵御系統(tǒng)級(jí)別的故障擴(kuò)散。若一層出現(xiàn)問題,不會(huì)直接影響到其他層,這在安全關(guān)鍵的嵌入式系統(tǒng)中尤其重要。

簡化復(fù)雜性:嵌入式系統(tǒng)往往需要處理許多低級(jí)硬件操作,將這些細(xì)節(jié)隱藏在底層可以簡化上層的邏輯,使得開發(fā)更為簡單。

規(guī)范開發(fā)流程:分層架構(gòu)通過對功能和責(zé)任的清晰劃分,幫助制定標(biāo)準(zhǔn)化的開發(fā)流程,這使得項(xiàng)目更容易管理和跟蹤。

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

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305299
  • 華為
    +關(guān)注

    關(guān)注

    216

    文章

    34440

    瀏覽量

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

    關(guān)注

    0

    文章

    64

    瀏覽量

    10288
收藏 人收藏

    評論

    相關(guān)推薦

    為什么不會(huì)接開關(guān)呢?是因?yàn)?/b>不懂這些

    電工技術(shù)
    學(xué)習(xí)電子知識(shí)
    發(fā)布于 :2022年10月13日 20:58:36

    工作之所以成為工作,是因?yàn)?/b>只需要工作而不需要...

    有這么一句名言: 工作,它之所以成為工作,是因?yàn)?/b>只需要工作而不需要思考。   也許會(huì)對這句話有異議,但是大部分人和大部分工作確實(shí)是這樣的。工廠員工在流水線上機(jī)械地組裝,服務(wù)員每天重復(fù)著招待
    發(fā)表于 11-19 16:47

    AD仿真,這個(gè)錯(cuò)誤是因?yàn)?/b>什么?

    這個(gè)錯(cuò)誤是因?yàn)?/b>什么?
    發(fā)表于 11-03 21:53

    代碼閱讀能力不行,是因?yàn)?/b>沒看到此文!

    提高代碼閱讀技巧的方法,以下是譯文。在軟件開發(fā)人員的職位描述中有閱讀源代碼。然而,這體驗(yàn)并不總能令人愉悅。不是每個(gè)人都喜歡閱讀別人的代碼,因?yàn)?/b>他們覺得那很乏味,甚至有時(shí)令人感到沮喪。有些案例中,開始
    發(fā)表于 10-21 11:18

    不懂編程的人可以用哪些代碼開發(fā)平臺(tái)

    直接參與開發(fā),甚至是獨(dú)立開發(fā),那么無代碼開發(fā)平臺(tái)是唯一的選擇。對于不懂編程技術(shù)的業(yè)務(wù)人員,哪怕是一句代碼,都會(huì)被難倒。讓業(yè)務(wù)人員可以自行搭建
    發(fā)表于 04-29 14:37

    嵌入式軟件開發(fā)中的程序架構(gòu)

    在嵌入式軟件開發(fā),包括單片機(jī)開發(fā)中,軟件架構(gòu)對于開發(fā)人員是一個(gè)必須認(rèn)真考慮的問題。軟件
    發(fā)表于 02-02 06:58

    軟件架構(gòu)存在的意義

    有經(jīng)驗(yàn)的工程師和一個(gè)初學(xué)者的分水嶺。軟件架構(gòu)對于開發(fā)人員是友好的,希望先執(zhí)行什么任務(wù)后執(zhí)行什么任務(wù),
    發(fā)表于 10-27 09:34

    stlink無法識(shí)別是因?yàn)?/b>什么?

    stlink無法識(shí)別是因?yàn)?/b>什么
    發(fā)表于 10-31 06:40

    MiniGUI 的軟件架構(gòu)

    MiniGUI 的軟件架構(gòu) 4.1 基于 MiniGUI 的嵌入式系統(tǒng)結(jié)構(gòu)為什么 MiniGUI 能夠在如此眾多的嵌入式操作系統(tǒng)上運(yùn)行?這是因?yàn)?/b> MiniGUI 具有良
    發(fā)表于 03-28 12:04 ?2567次閱讀
    MiniGUI 的<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>

    白皮書_為的設(shè)計(jì)選擇正確的軟件架構(gòu)

    白皮書_為的設(shè)計(jì)選擇正確的軟件架構(gòu)
    發(fā)表于 12-25 22:17 ?0次下載

    嵌入式開發(fā)中常用的軟件架構(gòu)

    在嵌入式軟件開發(fā),包括單片機(jī)開發(fā)中,軟件架構(gòu)對于開發(fā)人員是一個(gè)必須認(rèn)真考慮的問題。軟件
    的頭像 發(fā)表于 01-01 10:16 ?5591次閱讀
    嵌入式<b class='flag-5'>開發(fā)</b>中常用的<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>

    嵌入式開發(fā)軟件架構(gòu)存在的意義

    在嵌入式軟件開發(fā),包括單片機(jī)開發(fā)中,軟件架構(gòu)對于開發(fā)人員是一個(gè)必須認(rèn)真考慮的問題。軟件
    的頭像 發(fā)表于 09-08 09:18 ?2386次閱讀
    嵌入式<b class='flag-5'>開發(fā)</b>中<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>存在的意義

    汽車功能安全軟件開發(fā)階段軟件架構(gòu)安全設(shè)計(jì)

    軟件安全架構(gòu)旨在刻畫出實(shí)現(xiàn)軟件功能安全基本的軟件框架,需要在系統(tǒng)架構(gòu)的基礎(chǔ)上,對其軟件部分進(jìn)行進(jìn)
    發(fā)表于 10-08 10:45 ?2390次閱讀

    磐石測控:深圳按鍵開關(guān)不靈敏是因?yàn)?/b>什么?

    磐石測控:深圳按鍵開關(guān)不靈敏是因?yàn)?/b>什么?
    的頭像 發(fā)表于 10-31 11:46 ?698次閱讀
    磐石測控:深圳按鍵開關(guān)不靈敏<b class='flag-5'>是因?yàn)?/b>什么?

    錫膏不上錫是因?yàn)?/b>活性不足嗎?

    眾所周知,有時(shí)候錫膏不上錫是因?yàn)?/b>活性不足,還有人會(huì)說活性越多越好。有時(shí)候錫膏不掛錫是因?yàn)?/b>活性不足嗎。這樣的話,會(huì)覺得錫膏的活性越高越好嗎?下一步由深圳錫膏廠家為大家分析一下:大家都知道錫膏中有許多
    的頭像 發(fā)表于 01-04 15:46 ?643次閱讀
    錫膏不上錫<b class='flag-5'>是因?yàn)?/b>活性不足嗎?