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

當前位置:首頁 > 技術學院 > 技術前線
[導讀]嵌入式軟件,受限于硬件資源,時常會出現(xiàn)驅動與應用緊密耦合的情況。然而,對于大型項目而言,充足的資源使得我們能夠采用更為復雜的架構模式來應對業(yè)務邏輯的復雜性以及后續(xù)的擴展維護需求。這些架構模式,如分層架構、多層架構、管道-過濾器架構等,都是為了解決特定問題而設計的。

嵌入式軟件開發(fā)是一門應用廣泛且不斷發(fā)展的技術領域,為了滿足不同應用場景的需求,開發(fā)人員可以采用多種架構方法。

0、前言

在嵌入式軟件開發(fā),包括單片機開發(fā)中,軟件架構對于開發(fā)人員是一個必須認真考慮的問題。軟件架構對于系統(tǒng)整體的穩(wěn)定性和可靠性是非常重要的,一個合適的軟件架構不僅結構清晰,并且便于開發(fā)。

我相信在嵌入式或單片機軟件開發(fā)的初期大多數(shù)開發(fā)者采用的都是簡單的前后臺順序執(zhí)行架構(我就是這樣的)。

在嵌入式軟件開發(fā)中,程序架構主要分為三種,本篇文章將對這三種程序架構做出詳解。

1、軟件架構存在的意義

可以說一個好的程序架構,是一個有經(jīng)驗的工程師和一個初學者的分水嶺。軟件架構對于開發(fā)人員是友好的,你希望先執(zhí)行什么任務后執(zhí)行什么任務,或者這一個時間點執(zhí)行什么任務下一個執(zhí)行什么任務,又或者什么事件會同步到某個任務等等,在不同的軟件架構下,解決上述問題的具體方法都是有所區(qū)別的。軟件架構對開發(fā)者最大的幫助是:幫助開發(fā)者掌控整個工程的框架,當你熟練使用其中某一個程序架構后,對于系統(tǒng)中出現(xiàn)的bug你一定能夠快速的定位并解決。當然,我建議要根據(jù)需要選擇合適的軟件架構進行開發(fā),具體原因在文章后面會進行介紹。

2、深入介紹三種不同的程序架構

三種常用的軟件架構有:順序執(zhí)行的前后臺系統(tǒng)、時間片輪詢系統(tǒng)和多任務操作系統(tǒng)。為了讓大家有一個更為清晰的認識,我分別用三種軟件架構對一個實例進行介紹說明。這個實例如下:它有4個任務,這4個任務為按鍵掃描、聲光報警、顯示屏刷新和超聲波測距。這個實例的具體功能是通過按鍵設置測量距離的閾值,當測距距離低于設置的閾值時,觸發(fā)聲光報警并且將測量距離實時顯示在顯示屏上(這個應用是汽車倒車雷達的具體體現(xiàn))。

2.1順序執(zhí)行的前后臺系統(tǒng)

在順序執(zhí)行的前后臺系統(tǒng)中,我會把鍵盤掃描用查詢的方式放在while(1)中,而顯示屏刷新和超聲波測距使用中斷,在中斷服務函數(shù)中獲取測量距離后進行顯示,在主函數(shù)的循環(huán)中進行按鍵的檢測,聲光處理也放在主循環(huán)中。這樣整個程序就以變量標志的同步方式在主循環(huán)和后臺中斷中執(zhí)行,對應的程序代碼如圖所示:

順序執(zhí)行前后臺系統(tǒng)的主函數(shù)

順序執(zhí)行前后臺系統(tǒng)的中斷服務函數(shù)

在本文中,我們將探討嵌入式軟件開發(fā)中常用的三種架構:前后臺順序執(zhí)行法、時間片法和操作系統(tǒng)。

01.

前后臺順序執(zhí)行法

前后臺順序執(zhí)行法也稱為單任務執(zhí)行法,是最簡單、最常見的嵌入式軟件架構之一。

在這種架構中,系統(tǒng)按照程序代碼的順序依次執(zhí)行任務。所有任務都在一個循環(huán)中執(zhí)行,每次只執(zhí)行其中一個任務,其余任務被掛起。這種架構適用于簡單的應用,如傳感器數(shù)據(jù)采集、控制器等。

然而,前后臺順序執(zhí)行法有一定的局限性。

首先,它無法充分利用處理器資源,因為每次只執(zhí)行一個任務,其他任務處于掛起狀態(tài)。其次,任務之間無法靈活共享資源,容易造成資源浪費和效率低下。在一些對實時性要求較高的場景中,這種架構無法滿足要求。

02.

時間片法

時間片法是一種多任務執(zhí)行法,它通過為每個任務分配一定的執(zhí)行時間片,使得所有任務都能夠按照一定的時間間隔交替執(zhí)行。

任務執(zhí)行的時間片是固定的,當一個任務的時間片用完后,系統(tǒng)切換到下一個任務執(zhí)行。這種方式使得多個任務能夠并行執(zhí)行,提高了系統(tǒng)的資源利用率和效率。

時間片法適用于中等復雜度的嵌入式系統(tǒng),可以滿足對實時性要求較高的場景。它需要合理設置任務的優(yōu)先級和時間片大小,以確保重要任務優(yōu)先執(zhí)行,并且每個任務都能在適當?shù)臅r間內(nèi)完成。

03.

操作系統(tǒng)

操作系統(tǒng)是一種更為復雜和強大的嵌入式軟件架構。它能夠管理和協(xié)調多個任務的執(zhí)行,并提供一系列的系統(tǒng)服務,如任務調度、內(nèi)存管理、設備驅動、通信機制等。操作系統(tǒng)為開發(fā)人員提供了更高層次的抽象,使得軟件開發(fā)更加靈活、高效。

在操作系統(tǒng)架構下,每個任務都有自己的優(yōu)先級和狀態(tài),操作系統(tǒng)通過任務調度算法決定哪個任務優(yōu)先執(zhí)行。任務之間可以共享資源,通過互斥機制來實現(xiàn)對共享資源的訪問控制,確保系統(tǒng)穩(wěn)定和安全。

操作系統(tǒng)適用于復雜度較高、實時性要求嚴格的嵌入式應用,如智能手機、工業(yè)自動化控制系統(tǒng)等。它提供了更大的靈活性和可擴展性,使得開發(fā)人員能夠更容易地實現(xiàn)復雜的功能和算法。

綜上所述,嵌入式軟件開發(fā)中常用的三種架構分別是前后臺順序執(zhí)行法、時間片法和操作系統(tǒng)。

選擇適合的架構取決于應用的復雜性、實時性要求和資源限制等因素。開發(fā)人員需要根據(jù)具體情況,靈活選擇合適的架構,并結合系統(tǒng)要求進行合理的設計和優(yōu)化,以確保嵌入式系統(tǒng)的穩(wěn)定性、可靠性和高效性。

嵌入式軟件,受限于硬件資源,時常會出現(xiàn)驅動與應用緊密耦合的情況。然而,對于大型項目而言,充足的資源使得我們能夠采用更為復雜的架構模式來應對業(yè)務邏輯的復雜性以及后續(xù)的擴展維護需求。這些架構模式,如分層架構、多層架構、管道-過濾器架構等,都是為了解決特定問題而設計的。

在眾多架構模式中,分層架構是最為常見的一種。它主要由展現(xiàn)層、業(yè)務層、持久層和數(shù)據(jù)庫層四個部分組成,通過這種方式,軟件能夠更加清晰地分離不同的功能模塊,從而提高代碼的可讀性和可維護性。


超詳細解析!嵌入式開發(fā)中的三種程序構架

1)背景

隨著系統(tǒng)復雜性的增加,各個部分的需求和衍化往往獨立發(fā)展。為了更好地管理和維護這樣的系統(tǒng),開發(fā)者需要明確地分離關注點,使各個模塊能夠獨立進行開發(fā)和演進。

2)挑戰(zhàn)

軟件架構需要設計成一種方式,使得各個模塊能夠單獨開發(fā)和變化,同時減少模塊間的交互,從而確保系統(tǒng)的可移植性、可修改性和復用性。

3)解決方案

分層架構模式應運而生,它將軟件劃分為不同的邏輯單元,即“層”。每一層都包含一組高度內(nèi)聚的模塊,提供特定的服務,并且其使用是單向的。通過分層,軟件被劃分為多個獨立的分區(qū),每個分區(qū)都暴露一個公開的接口。

在分層架構中,每一層都扮演著特定的角色和職責。例如,展現(xiàn)層專門負責處理用戶界面相關的事務。這種明確的角色和職責劃分,使得構建高效的系統(tǒng)變得簡單明了。

此外,分層架構還是一種技術性的分區(qū)方式,而非領域性的。它由組件而非領域來組成,這意味著不同層之間的交互更加清晰和簡潔。

最后,分層架構中的每一層都被明確標記為封閉或開放。封閉層意味著請求必須經(jīng)過它下面的層次才能傳遞到下一層,從而保證了請求不會跳過任何層次。這種設計使得系統(tǒng)更加穩(wěn)健和可預測。


超詳細解析!嵌入式開發(fā)中的三種程序構架

4)潛在問題

采用分層架構雖然有助于提高系統(tǒng)的模塊化和可維護性,但也可能面臨性能方面的挑戰(zhàn)。在高性能應用程序中,由于業(yè)務請求需要經(jīng)過架構中的多層處理,這可能會降低響應效率。此外,分層架構的實施還可能增加系統(tǒng)的初期成本和整體復雜性。

5)適用范圍

盡管存在上述潛在問題,分層架構仍然是一種非常有用的設計模式。對于小型或簡單的應用程序而言,這種模式能夠有效地幫助開發(fā)者明確模塊間的職責和邊界,從而簡化開發(fā)和維護過程。因此,在適當?shù)那闆r下,我們應該考慮采用分層架構來構建高效、可維護的軟件系統(tǒng)。


超詳細解析!嵌入式開發(fā)中的三種程序構架

許多系統(tǒng)的執(zhí)行結構都采用了邏輯組件的分組方式,這些分組被稱作“層”。在分布式部署的環(huán)境中,經(jīng)常需要將系統(tǒng)的基礎設施拆分成不同的子集。這就引出了一個問題:如何合理地將系統(tǒng)分割成多個計算上獨立、又通過通信媒介相連的軟件和硬件組件?然而,這種分割方式也面臨一些挑戰(zhàn),包括前期投入的大量成本和系統(tǒng)整體復雜性的增加。盡管如此,管道-過濾器(pipe-filter)架構在軟件架構中仍是一種常見的模式,它為這類問題提供了有效的解決方案。


超詳細解析!嵌入式開發(fā)中的三種程序構架

1)背景

在許多系統(tǒng)中,離散數(shù)據(jù)流從輸入到輸出的轉換是一個核心需求。由于這類轉換在實踐中經(jīng)常重復出現(xiàn),因此將其模塊化并創(chuàng)建成可復用的組件,是提高效率和靈活性的理想選擇。

2)挑戰(zhàn)

為了實現(xiàn)這種模塊化,系統(tǒng)需要被分割成松耦合的組件,這些組件之間通過簡單通用的交互機制進行連接。這樣的設計使得組件能夠靈活地組合與復用,同時支持并行的執(zhí)行方式。

3)架構解析

管道-過濾器架構為此類需求提供了一種解決方案。在這種架構中,管道充當了過濾器之間的通信通道。每個管道都是非定向和點對點的,它們接受來自一個源的輸入,并直接將輸出傳遞給另一個源,從而確保了數(shù)據(jù)流的高效傳輸。

此外,該架構還定義了四種關鍵角色:producer(或source)作為過程的起點,transformer(或map)負責對數(shù)據(jù)進行轉換,tester(或reduce)用于測試條件,而consumer(或sink)則作為終點處理數(shù)據(jù)。

4)局限性

盡管管道-過濾器架構具有諸多優(yōu)點,但它也有其適用范圍。對于需要高度交互性的系統(tǒng)來說,這種架構可能不太適合。此外,過多的解析和反解析操作也可能導致性能損失,并增加編寫過濾器的復雜性。

5)應用場景

管道-過濾器架構在各種應用程序中都有廣泛的應用,特別是那些需要簡化單項處理任務的系統(tǒng)。通過合理運用這種架構,可以有效地提高系統(tǒng)的可維護性、靈活性和性能。

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

加利福尼亞州帕洛阿爾托和臺北2026年2月10日 /美通社/ -- Zettabyte與光寶科技(LiteOn)今日宣布達成一項研發(fā)合作,旨在評估一款部署于蜂窩基站或基站鄰近...

關鍵字: TE AI 分布式 軟件

隨著現(xiàn)代家庭生活方式不斷升級,廚房已不再只是功能空間,而逐漸成為融合審美表達、健康管理與智能體驗的重要場域。消費者在關注空間整體性的同時,也對食材儲存的安全性、潔凈度以及使用便利性提出了更高要求?;趯χ袊彝フ鎸嵤褂脠?..

關鍵字: 冰箱 嵌入式

在嵌入式系統(tǒng)、工業(yè)物聯(lián)網(wǎng)等各類電子設備中,UART與網(wǎng)口是兩種應用廣泛的通信接口,前者作為經(jīng)典的串行通信接口,承擔著簡單設備互聯(lián)、調試日志傳輸?shù)然A任務,后者則專注于高速、遠距離的數(shù)據(jù)交互,是設備接入網(wǎng)絡、實現(xiàn)大數(shù)據(jù)量傳...

關鍵字: 嵌入式 通信接口 網(wǎng)口通訊

在軟件開發(fā)領域,設計模式被譽為“解決特定問題的最佳實踐”,但在嵌入式開發(fā)中,它卻常常處于“邊緣地帶”。許多嵌入式工程師職業(yè)生涯中可能從未刻意使用過設計模式,甚至認為這些“軟件工程理論”與單片機、傳感器、實時系統(tǒng)等硬件緊密...

關鍵字: 嵌入式 設計模式

廣州2026年2月2日 /美通社/ -- 近日,由工業(yè)和信息化部電子第五研究所(中國賽寶實驗室)主辦的2025年度能力驗證總結暨優(yōu)秀實驗室表彰大會圓滿落幕。TÜV南...

關鍵字: 軟件 物聯(lián)網(wǎng) 測試 網(wǎng)絡安全

在居住結構持續(xù)演進與消費需求不斷升級的背景下,中國家庭廚房正經(jīng)歷從“功能集合”向“系統(tǒng)空間”的深層轉變。廚房不再只是烹飪的場所,而逐漸成為融合效率、健康、美學與家庭互動的重要生活空間?;趯@一趨勢的長期洞察,西門子家電...

關鍵字: 嵌入式 蒸玲瓏

在物聯(lián)網(wǎng)設備、工業(yè)控制系統(tǒng)和智能家居等嵌入式場景中,輕量級WEB服務器扮演著核心角色。它們不僅需要滿足資源受限環(huán)境下的性能需求,還需兼顧安全性、可擴展性和開發(fā)效率。本文從資源占用、功能特性、適用場景三個維度,對比分析六大...

關鍵字: 嵌入式 WEB服務器

在嵌入式軟件開發(fā)工具領域,一場悄然的變革正在發(fā)生。隨著全球軟件行業(yè)向訂閱制轉型,嵌入式軟件開發(fā)工具的授權模式也迎來了重要調整。市場上的嵌入式軟件開發(fā)工具基本可以分為三類:商用開發(fā)工具,開源開發(fā)工具和廠商私有開發(fā)工具,其中...

關鍵字: 嵌入式 MCU RISC-V

在資源受限的嵌入式系統(tǒng)中,傳統(tǒng)調試工具(如JTAG)往往成本高昂且占用引腳資源。本文介紹一種基于串口的低成本調試方案,通過自定義協(xié)議實現(xiàn)內(nèi)存數(shù)據(jù)的實時監(jiān)控,硬件成本可降低80%以上,特別適用于8/16位MCU開發(fā)場景。

關鍵字: 嵌入式 串口 內(nèi)存數(shù)據(jù)

隨著國家家電以舊換新補貼政策的持續(xù)推進,綠色節(jié)能、品質升級正成為越來越多家庭的新年煥新關鍵詞。面對消費者在居住空間、生活效率與健康體驗上的多元需求,西門子家電圍繞新春煥新節(jié)點,正式開啟“開門紅”煥新季,通過國家補貼與企業(yè)...

關鍵字: 嵌入式 咖啡機 嵌飲機
關閉