chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

我快閉嘴 ? 來源:騰訊網 ? 作者:玩轉嵌入式 ? 2021-01-01 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

嵌入式軟件開發(fā),包括單片機開發(fā)中,軟件架構對于開發(fā)人員是一個必須認真考慮的問題。軟件架構對于系統(tǒng)整體的穩(wěn)定性和可靠性是非常重要的,一個合適的軟件架構不僅結構清晰,并且便于開發(fā)。我相信在嵌入式單片機軟件開發(fā)的初期大多數開發(fā)者采用的都是簡單的前后臺順序執(zhí)行架構(我就是這樣的)。在嵌入式軟件開發(fā)中,程序架構主要分為三種,本篇文章將對這三種程序架構做出詳解。

1、軟件架構存在的意義

可以說一個好的程序架構,是一個有經驗的工程師和一個初學者的分水嶺。軟件架構對于開發(fā)人員是友好的,你希望先執(zhí)行什么任務后執(zhí)行什么任務,或者這一個時間點執(zhí)行什么任務下一個執(zhí)行什么任務,又或者什么事件會同步到某個任務等等,在不同的軟件架構下,解決上述問題的具體方法都是有所區(qū)別的。

軟件架構對開發(fā)者最大的幫助是:幫助開發(fā)者掌控整個工程的框架,當你熟練使用其中某一個程序架構后,對于系統(tǒng)中出現的bug你一定能夠快速的定位并解決。當然,我建議要根據需要選擇合適的軟件架構進行開發(fā),具體原因在文章后面會進行介紹。

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

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

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

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

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

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

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

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

這種架構的優(yōu)點是使用簡單易于理解,而缺點是每個任務所占的CPU時間過長的話,會導致程序的實時性能差,就比如按鍵的檢測等。

2.2時間片輪詢系統(tǒng)和多任務操作系統(tǒng)

時間片輪詢法實際上通常出現在操作系統(tǒng)中,也就是說他屬于操作系統(tǒng),但在這里所說的是基于前后臺系統(tǒng)的時間片輪詢。時間片輪詢法的實質其實就是選出一個定時器,沒進一次定時中斷對計數值進行自加,在主循環(huán)中根據這個計數值執(zhí)行任務,這個計數值也就是任務輪詢的時間片。在這個實例中,如果采用時間片輪詢系統(tǒng)的話,首先選用主控芯片的任一定時器,定時器定時時間周期由我們決定,為了保證實時性和運行效率,這個值通常取10ms、30ms、50ms等,我會將按鍵掃描輪值值設置為20ms,因為按鍵抖動的時長一般為20ms,這樣處理既達到了消抖的目的,又不會漏掉按鍵的檢測;而顯示屏的刷新設置為30ms,如果你覺得刷新反應慢了也可以修改這一輪詢值得到改善;而超聲波測距的輪詢值設置為100ms,即每隔100模式觸發(fā)測距一次,這個測距頻率已經能夠滿足大多數的情況了。

程序代碼如下:

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

時間片輪詢系統(tǒng)的主函數

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

時間片輪詢系統(tǒng)的定時器中斷函數

可以看出時間片輪詢法相比順序執(zhí)行還是有很大優(yōu)勢的,既有順序執(zhí)行法的優(yōu)點,也有操作系統(tǒng)的部分優(yōu)點。

2.3多任務操作系統(tǒng)

操作系統(tǒng)的本身是一個比較復雜的東西,任務的管理和調度實現的底層是很復雜和困難的。但是呢,我們一般都是把操作系統(tǒng)本身作為一個工具一個平臺,我們的目的是使用它的功能而不是開發(fā)一個操作系統(tǒng)。我使用過ucosfreertos小型的實時操作系統(tǒng),也使用過Linux大型的操作系統(tǒng),有了操作系統(tǒng),不管是對于程序的穩(wěn)定性和開發(fā)的效率都會好很多。我們在使用操作系統(tǒng)的時候更多的需要去學習和理解它的一些調度和通信的方式。實際上真正能使用操作系統(tǒng)的人并不多,反而是跑裸機的占大多數,這也和產品的具體要求有關,很多簡單的系統(tǒng)只需要裸機即可滿足。

在這里本我不過多的介紹操作系統(tǒng)本身,因為操作系統(tǒng)確實挺復雜的,下面圖例中的代碼是在freertos中創(chuàng)建按鍵控制LED亮滅的程序結構,大家可以對比一下:

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

freertos多任務系統(tǒng)中主函數

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

freertos多任務操作系統(tǒng)中的任務回調函數

3、如何選擇合適的軟件架構

我使用過多種不同MCU做項目開發(fā),例如:STM32、STC15、新唐等,也接觸過復雜的設計需求,例如:車載智能系統(tǒng)和智能家居,跑過操作系統(tǒng)ucos、freertos和Linux等等,在回到裸機開發(fā)時,就會不然而然的去思考完整系統(tǒng)的軟件架構的設計問題,相信在讀者中開發(fā)裸機的也占大多數。

我認為沒有最好的軟件架構(程序架構),而是只有最合適的。因為在不同的應用場景中適合采用不同的程序設計,而單純的去比較哪種程序架構是最好的沒有什么實際的意義。那接下來我們來對具體的應用場景進行分析,在一些邏輯清晰功能單一的系統(tǒng)中就很適合選擇順序執(zhí)行的前后臺架構,這個軟件架構往往能夠滿足我們大部分的需求,比如電飯煲、電磁爐和聲控燈泡等;而在一些資源缺乏的單片機并且對系統(tǒng)可靠性要求較高的情況下非常適合,因為這種方法的系統(tǒng)耗費比較小,只是犧牲了一個定時器而已,但是選擇此種程序架構需要我們對時間片進行深思熟慮的劃分;最后,在一些功能復雜,邏輯控制較為困難的系統(tǒng)中就適合選擇多任務操作系統(tǒng),比如視頻監(jiān)控系統(tǒng)、無人機等等應用場景。

作為一名嵌入式軟件工程師,掌握這三種軟件架構是非常有必要的,它們可以讓我們在設計程序時擁有更多的選擇和思考,而每一種不同的程序架構都具備它自己的優(yōu)勢與不足,這需要我們去用心實踐方可體會到它的奧妙。
責任編輯:tzh

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

    關注

    6074

    文章

    45457

    瀏覽量

    667101
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18787

    瀏覽量

    393005
  • 嵌入式
    +關注

    關注

    5193

    文章

    20276

    瀏覽量

    331734
  • 軟件
    +關注

    關注

    69

    文章

    5319

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式開發(fā)常用函數速查表

    嵌入式開發(fā)中,掌握常用函數的用法可以大大提高開發(fā)效率。無論是單片機初學者還是有一定經驗的工程師,熟悉函數庫和調用方式都是必備技能。今天,我們?yōu)榇蠹艺硪环?b class='flag-5'>嵌入式開發(fā)
    的頭像 發(fā)表于 01-19 09:06 ?195次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b><b class='flag-5'>常用</b>函數速查表

    什么是嵌入式應用開發(fā)?

    。 · ?醫(yī)療設備?:如心電圖儀、血壓計等。 開發(fā)工具和技術 嵌入式開發(fā)過程中常用的工具包括: · ?集成開發(fā)環(huán)境(IDE)?:用于編寫、編譯和調試代碼。 · ?編譯器?:將高級語言代碼轉換為機器語言
    發(fā)表于 01-12 16:13

    分享一個嵌入式開發(fā)學習路線

    拓展期(3-4個月) 學習嵌入式操作系統(tǒng)(RTOS)和物聯網通信技術,能開發(fā)“多任務、聯網”的復雜項目,理解企業(yè)級嵌入式開發(fā)的“架構思維”。這一階段的學習需要一定的自律和毅力,但與學
    發(fā)表于 12-04 11:01

    CW32嵌入式軟件開發(fā)的必備知識

    嵌入式軟件開發(fā)作為計算機科學和電子工程的交叉領域,要求開發(fā)人員具備一系列的專業(yè)知識和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識包括以下
    發(fā)表于 11-28 07:48

    嵌入式開發(fā)的關鍵點介紹

    設備和移動設備。因此,嵌入式開發(fā)需要考慮系統(tǒng)的功耗,并編寫節(jié)能的代碼以延長系統(tǒng)的使用壽命。 4. 軟件集成: 嵌入式系統(tǒng)通常需要與其他設備和系統(tǒng)進行集成,例如傳感器、網絡和云服務。因此,嵌入式
    發(fā)表于 11-13 08:12

    恩智浦如何攻克兩大嵌入式開發(fā)難題

    在我們的身邊,嵌入式系統(tǒng)無處不在。而隨著技術的進步和應用的拓展,今天的嵌入式開發(fā)也面臨著諸多新課題、新挑戰(zhàn)。
    的頭像 發(fā)表于 10-27 09:28 ?1523次閱讀

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現已推出

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構想到部署落地。 2025.1 版嵌入式
    的頭像 發(fā)表于 08-20 09:15 ?3838次閱讀

    嵌入式開發(fā)就業(yè)還有前景嗎?

    。在智能家居領域,嵌入式開發(fā)的主要工作是開發(fā)各種智能化設備和系統(tǒng),如智能照明、智能安防、智能家電等。嵌入式開發(fā)人員需要掌握相關的硬件和軟件技術,如處理器、傳感器、通信技術、操作系統(tǒng)等,
    發(fā)表于 07-16 10:47

    嵌入式軟件開發(fā)常用軟件有哪些?

    對于初學嵌入式的朋友們,會想要了解嵌入式軟件開發(fā)常用軟件有些,有什么用。那么看以下常用
    發(fā)表于 07-03 17:06

    嵌入式開發(fā)入門指南:從零開始學習嵌入式

    (設備驅動、內核編譯) 4. 推薦的學習資源書籍:《嵌入式系統(tǒng)軟件設計基礎》《ARM Cortex-M系列嵌入式開發(fā)》在線課程:慕課網、B站嵌入式教學視頻實踐平臺:Arduino、ST
    發(fā)表于 05-15 09:29

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    嵌入式開發(fā)的門檻,往往被培訓機構和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發(fā)是硬件與軟件深度融合的系統(tǒng)性工程
    的頭像 發(fā)表于 04-09 11:06 ?818次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>:高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    2025年嵌入式開發(fā)趨勢:新技術如何影響你的工作?

    嵌入式開發(fā)的世界正在快速變化,新技術的崛起正悄然改變硬件設計、軟件架構以及開發(fā)方式。無論你是剛入門的新手,還是經驗豐富的工程師,理解這些趨勢不僅能幫助你應對技術變革,還能在職業(yè)發(fā)展中占
    的頭像 發(fā)表于 03-14 17:36 ?3106次閱讀
    2025年<b class='flag-5'>嵌入式開發(fā)</b>趨勢:新技術如何影響你的工作?

    BlackBerry QNX推出通用嵌入式開發(fā)平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發(fā)平臺(General Embedded Development
    的頭像 發(fā)表于 03-11 16:04 ?1062次閱讀

    代碼+案例+生態(tài):武漢芯源半導體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    關于 CW32 單片機的書籍。在這本書中,我們從最基礎的知識講起,詳細介紹了 CW32 單片機的硬件架構、內核特性、存儲系統(tǒng)以及各類外設功能。無論是剛剛踏入嵌入式開發(fā)領域的新手,還是經驗豐富的專業(yè)人士
    發(fā)表于 03-03 15:14

    盤點工程師常用嵌入式開發(fā)工具

    嵌入式開發(fā)涉及硬件與軟件的緊密結合,開發(fā)工具的選擇對效率和質量至關重要。以下是嵌入式開發(fā)中常用的工具分類及代表性工具,涵蓋
    的頭像 發(fā)表于 02-07 10:06 ?4269次閱讀