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

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

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

嵌入式軟件時序設(shè)計(jì)相關(guān)的問題

麥辣雞腿堡 ? 來源:嵌入式系統(tǒng) ? 作者:嵌入式系統(tǒng) ? 2023-12-07 16:31 ? 次閱讀

軟件時序設(shè)計(jì)相關(guān)的問題時序問題是最容易出問題的地方,“時”代表時間順序和時效性,一旦執(zhí)行順序錯亂,或執(zhí)行過慢失去時效,就會導(dǎo)致錯誤。

消息的串行化處理

每個任務(wù)、線程,只能按順序的處理串行的消息,然而,其他線程發(fā)送過來的消息并不是串行發(fā)送的,不同線程都是并行、異步發(fā)送消息的,這會導(dǎo)致線程在沒有處理完一個消息,另一個消息又回來了。如何把外部的并發(fā)消息轉(zhuǎn)換成線程的串行處理呢?

每個任務(wù)、線程都應(yīng)有一個消息隊(duì)列,外部線程向消息隊(duì)列中發(fā)送數(shù)據(jù),目標(biāo)線程從消息隊(duì)列中讀取消息,這樣所有的消息被串行在消息隊(duì)列中,線程就會串行的處理每個消息,只有當(dāng)一個消息處理完(函數(shù)調(diào)用返回)時,才會處理另一個消息。參考《嵌入式軟件的設(shè)計(jì)模式(上)》中的 第3.3節(jié) “隊(duì)列模式”。

超時或消息丟失引發(fā)的問題

一個任務(wù)、線程給另一個任務(wù)、線程發(fā)送消息,等待對方的應(yīng)答,有時候?qū)Ψ矫?,發(fā)送時隊(duì)列滿發(fā)送失敗,或者接收方?jīng)]有處理回復(fù),等待一段時間后空閑了才處理該消息并應(yīng)答時,但對于發(fā)送方已經(jīng)超時。發(fā)送方超時,就需要進(jìn)入異常處理。這里容易出問題,它可能會引發(fā)一連串的異常處理反應(yīng),也有可能影響后續(xù)的正常消息的處理。

消息丟失是必須考慮情況,發(fā)送方不能假設(shè)接收方一定能夠收到消息,也不能假設(shè)接收方一定能夠及時的回應(yīng),必須充分考慮到消息因?yàn)閭鬏數(shù)膯栴}丟失或?qū)Ψ矫Γ瑳]有及時回應(yīng)的情形。

消息丟失就容易產(chǎn)生理論上該執(zhí)行的動作沒有執(zhí)行,或者消息里面動態(tài)內(nèi)存未釋放。或者消息處理慢導(dǎo)致對外設(shè)的控制延遲產(chǎn)生異常,曾經(jīng)出現(xiàn)共享單車鎖里面的馬達(dá)停止消息處理不及時導(dǎo)致車鎖無法再次上鎖。尤其處理通信時序要求嚴(yán)格,或外設(shè)控制要及時的場景需要注意。

性能本身問題

數(shù)據(jù)處理尤其是復(fù)雜算法耗時,導(dǎo)致消息處理不及時,最終對外設(shè)的控制或者通信交互時序狀態(tài)延遲,產(chǎn)生異常。這種只能優(yōu)化算法,或?qū)r序部分單獨(dú)特殊處理,不考慮設(shè)計(jì)模式保執(zhí)行效率?;蛘咴u估階段就選擇性能資源更佳的硬件方案。

異常處理不充分問題

軟件設(shè)計(jì)一般是考慮正常流程,然而實(shí)際運(yùn)行中,并非是理想狀態(tài),系統(tǒng)總會遇到各種異常,健壯的系統(tǒng),能夠充分考慮到各種異常情況,一旦異常發(fā)生,程序也不會輕易崩潰。

超時:增加超時定時器事件以及事件處理,不能假設(shè)對方一定應(yīng)答消息。

空指針:不能假設(shè)一定能夠申請到內(nèi)存,要考慮到返回為NULL的情形,通過指針訪問內(nèi)存對象時需要及時的檢查指針是否為空。

并發(fā)訪問:在并發(fā)執(zhí)行的系統(tǒng)中,如果要訪問全局變量,不能假設(shè)只有一個線程訪問全局變量,需要通過鎖對全局共享資源進(jìn)行加鎖,特別是要訪問全局的數(shù)據(jù)結(jié)構(gòu)。

消息隊(duì)列:不能假設(shè)消息隊(duì)列始終有效,要考慮消息隊(duì)列滿或空的情形。

設(shè)計(jì):在軟件設(shè)計(jì)時就考慮軟件的異常處理機(jī)制,功能層面就支持異常記錄、售后調(diào)試的需求,而不是把這個工作留給編程人員。

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

    關(guān)注

    0

    文章

    610

    瀏覽量

    28599
  • 嵌入式軟件
    +關(guān)注

    關(guān)注

    4

    文章

    240

    瀏覽量

    26672
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    391

    瀏覽量

    37367
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式軟件相關(guān)資料分享

    嵌入式軟件軟件通常指運(yùn)行在嵌入式系統(tǒng)內(nèi)的軟件,如車載控制器中的軟件。
    發(fā)表于 12-24 06:00

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

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

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

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

    嵌入式軟件技術(shù)應(yīng)用設(shè)計(jì)方案匯總  

    程序及其文檔組成,可細(xì)分成系統(tǒng)軟件、支撐軟件、應(yīng)用軟件三類,是嵌入式系統(tǒng)的重要組成部分。本文為大家介紹嵌入式
    發(fā)表于 10-16 16:44 ?4次下載

    嵌入式軟件時序異常檢測

    時序特性是嵌入式軟件的重要特性,實(shí)時嵌入式軟件運(yùn)行的正確性不僅依賴于任務(wù)執(zhí)行結(jié)果,更依賴于任務(wù)執(zhí)行時間,執(zhí)行任務(wù)往往具有多個時間約束,且相互
    發(fā)表于 01-27 11:02 ?0次下載

    基于執(zhí)行片段的嵌入式軟件時序特性檢測方法

    時序特性是嵌入式軟件的重要特性,實(shí)時嵌入式軟件運(yùn)行的正確性不僅依賴于任務(wù)執(zhí)行結(jié)果,更依賴于任務(wù)執(zhí)行時間,執(zhí)行任務(wù)往往具有多個時間約束,且相互
    發(fā)表于 01-31 10:24 ?0次下載

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

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

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

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

    嵌入式軟件測試參考書籍

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

    嵌入式系統(tǒng)的軟件組成

    嵌入式系統(tǒng)軟件的重要組成部分1.1:嵌入式軟件的特點(diǎn)嵌入式軟件除了具有計(jì)算機(jī)
    發(fā)表于 10-20 12:36 ?4次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的<b class='flag-5'>軟件</b>組成

    嵌入式軟件測試研究意義,嵌入式軟件測試的研究

    摘要:嵌入式系統(tǒng)在人類生活中發(fā)揮著重要的作用,包括飛行控制器這樣的控制系統(tǒng),以及洗衣機(jī)這樣的家用電器。日前,嵌入式系統(tǒng)中軟件的比重越來越大,也越來越復(fù)雜,保證嵌入式
    發(fā)表于 10-20 17:20 ?17次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>測試研究意義,<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>測試的研究

    嵌入式軟件概述及相關(guān)測試特點(diǎn)

    概述:什么是嵌入式軟件?與傳統(tǒng)軟件不同,嵌入式軟件需要將軟件分析、設(shè)計(jì)、編碼后燒錄至硬件環(huán)境中才
    發(fā)表于 10-21 11:36 ?13次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>概述及<b class='flag-5'>相關(guān)</b>測試特點(diǎn)

    嵌入式軟件開發(fā)環(huán)境

    嵌入式軟件開發(fā)環(huán)境1 簡介嵌入式軟件定義嵌入式系統(tǒng)構(gòu)成2 環(huán)境搭建2.1 Qt2.2 CLion2.3 Source Insight + v
    發(fā)表于 10-21 12:21 ?7次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發(fā)環(huán)境

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

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

    談?wù)勂?b class='flag-5'>嵌入式軟件

    嵌入式軟件就是嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件,它在產(chǎn)業(yè)中的關(guān)聯(lián)關(guān)系體現(xiàn)為:芯片設(shè)計(jì)制造→嵌入式系統(tǒng)
    發(fā)表于 10-27 10:28 ?1130次閱讀