色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

嵌入式常用的軟件框架介紹與選擇

GReq_mcu168 ? 來源:CSDN ? 作者:CSDN ? 2022-03-12 09:33 ? 次閱讀

1、前言

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

我相信在嵌入式單片機(jī)軟件開發(fā)的初期大多數(shù)開發(fā)者采用的都是簡單的前后臺(tái)順序執(zhí)行架構(gòu)

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

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

可以說一個(gè)好的程序架構(gòu),是一個(gè)有經(jīng)驗(yàn)的工程師和一個(gè)初學(xué)者的分水嶺。

軟件架構(gòu)對(duì)于開發(fā)人員是友好的,你希望先執(zhí)行什么任務(wù)后執(zhí)行什么任務(wù),或者這一個(gè)時(shí)間點(diǎn)執(zhí)行什么任務(wù)下一個(gè)執(zhí)行什么任務(wù),又或者什么事件會(huì)同步到某個(gè)任務(wù)等等,在不同的軟件架構(gòu)下,解決上述問題的具體方法都是有所區(qū)別的。

軟件架構(gòu)對(duì)開發(fā)者最大的幫助是:

幫助開發(fā)者掌控整個(gè)工程的框架,當(dāng)你熟練使用其中某一個(gè)程序架構(gòu)后,對(duì)于系統(tǒng)中出現(xiàn)的bug你一定能夠快速的定位并解決。

當(dāng)然,我建議要根據(jù)需要選擇合適的軟件架構(gòu)進(jìn)行開發(fā),具體原因在文章后面會(huì)進(jìn)行介紹。

3、介紹三種程序架構(gòu)

三種常用的軟件架構(gòu)有:順序執(zhí)行的前后臺(tái)系統(tǒng)、時(shí)間片輪詢系統(tǒng)和多任務(wù)操作系統(tǒng)

為了讓大家有一個(gè)更為清晰的認(rèn)識(shí),我分別用三種軟件架構(gòu)對(duì)一個(gè)實(shí)例進(jìn)行介紹說明。這個(gè)實(shí)例如下:

它有4個(gè)任務(wù),這4個(gè)任務(wù)為按鍵掃描、聲光報(bào)警、顯示屏刷新和超聲波測距。這個(gè)實(shí)例的具體功能是通過按鍵設(shè)置測量距離的閾值,當(dāng)測距距離低于設(shè)置的閾值時(shí),觸發(fā)聲光報(bào)警并且將測量距離實(shí)時(shí)顯示在顯示屏上(這個(gè)應(yīng)用是汽車倒車?yán)走_(dá)的具體體現(xiàn))。

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

在順序執(zhí)行的前后臺(tái)系統(tǒng)中,我會(huì)把鍵盤掃描用查詢的方式放在while(1)中,而顯示屏刷新和超聲波測距使用中斷,在中斷服務(wù)函數(shù)中獲取測量距離后進(jìn)行顯示,在主函數(shù)的循環(huán)中進(jìn)行按鍵的檢測,聲光處理也放在主循環(huán)中。

這樣整個(gè)程序就以變量標(biāo)志的同步方式在主循環(huán)和后臺(tái)中斷中執(zhí)行,對(duì)應(yīng)的程序代碼如圖所示:

0d83b6dc-9fb2-11ec-952b-dac502259ad0.png

0d99c0d0-9fb2-11ec-952b-dac502259ad0.png

這種架構(gòu)的優(yōu)點(diǎn)是使用簡單易于理解,而缺點(diǎn)是每個(gè)任務(wù)所占的CPU時(shí)間過長的話,會(huì)導(dǎo)致程序的實(shí)時(shí)性能差,就比如按鍵的檢測等。

3.2 時(shí)間片輪詢系統(tǒng)和多任務(wù)操作系統(tǒng)

時(shí)間片輪詢法實(shí)際上通常出現(xiàn)在操作系統(tǒng)中,也就是說他屬于操作系統(tǒng),但在這里所說的是基于前后臺(tái)系統(tǒng)的時(shí)間片輪詢。

時(shí)間片輪詢法的實(shí)質(zhì)其實(shí)就是選出一個(gè)定時(shí)器,沒進(jìn)一次定時(shí)中斷對(duì)計(jì)數(shù)值進(jìn)行自加,在主循環(huán)中根據(jù)這個(gè)計(jì)數(shù)值執(zhí)行任務(wù),這個(gè)計(jì)數(shù)值也就是任務(wù)輪詢的時(shí)間片。

在這個(gè)實(shí)例中,如果采用時(shí)間片輪詢系統(tǒng)的話,首先選用主控芯片的任一定時(shí)器,定時(shí)器定時(shí)時(shí)間周期由我們決定,為了保證實(shí)時(shí)性和運(yùn)行效率,這個(gè)值通常取10ms、30ms、50ms等,我會(huì)將按鍵掃描輪值值設(shè)置為20ms,因?yàn)榘存I抖動(dòng)的時(shí)長一般為20ms,這樣處理既達(dá)到了消抖的目的,又不會(huì)漏掉按鍵的檢測;而顯示屏的刷新設(shè)置為30ms,如果你覺得刷新反應(yīng)慢了也可以修改這一輪詢值得到改善;

而超聲波測距的輪詢值設(shè)置為100ms,即每隔100模式觸發(fā)測距一次,這個(gè)測距頻率已經(jīng)能夠滿足大多數(shù)的情況了。

程序代碼如下:

0daaa31e-9fb2-11ec-952b-dac502259ad0.png

0dbdf9b4-9fb2-11ec-952b-dac502259ad0.png

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

3.3 多任務(wù)操作系統(tǒng)

操作系統(tǒng)的本身是一個(gè)比較復(fù)雜的東西,任務(wù)的管理和調(diào)度實(shí)現(xiàn)的底層是很復(fù)雜和困難的。但是呢,我們一般都是把操作系統(tǒng)本身作為一個(gè)工具一個(gè)平臺(tái),我們的目的是使用它的功能而不是開發(fā)一個(gè)操作系統(tǒng)。

我使用過ucosfreertos小型的實(shí)時(shí)操作系統(tǒng),也使用過Linux大型的操作系統(tǒng),有了操作系統(tǒng),不管是對(duì)于程序的穩(wěn)定性和開發(fā)的效率都會(huì)好很多。我們?cè)谑褂貌僮飨到y(tǒng)的時(shí)候更多的需要去學(xué)習(xí)和理解它的一些調(diào)度和通信的方式。

實(shí)際上真正能使用操作系統(tǒng)的人并不多,反而是跑裸機(jī)的占大多數(shù),這也和產(chǎn)品的具體要求有關(guān),很多簡單的系統(tǒng)只需要裸機(jī)即可滿足。

在這里本我不過多的介紹操作系統(tǒng)本身,因?yàn)椴僮飨到y(tǒng)確實(shí)挺復(fù)雜的,下面圖例中的代碼是在freertos中創(chuàng)建按鍵控制LED亮滅的程序結(jié)構(gòu),大家可以對(duì)比一下:

0dd78df2-9fb2-11ec-952b-dac502259ad0.png

0df1a9da-9fb2-11ec-952b-dac502259ad0.png

4、系統(tǒng)框架選擇

0e1c1a9e-9fb2-11ec-952b-dac502259ad0.png

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

    關(guān)注

    5083

    文章

    19131

    瀏覽量

    305495
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4953

    瀏覽量

    87546

原文標(biāo)題:嵌入式常用的軟件框架介紹與選擇

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎么選擇合適的嵌入式設(shè)計(jì)軟件

    選擇嵌入式設(shè)計(jì)的軟件時(shí),你需要進(jìn)行以下五點(diǎn)考量,沒有最好的,只有最合適的。
    發(fā)表于 05-06 09:41 ?1471次閱讀

    嵌入式框架

    1.overview 圖1-1 嵌入式框架嵌入式系統(tǒng)分為硬件以及軟件兩大部分,大多數(shù)人參與的是嵌入式
    發(fā)表于 10-27 08:26

    cola os程序框架介紹

    系列文章目錄嵌入式開發(fā)|嵌入式軟件框架《一》常用軟件框架
    發(fā)表于 11-08 08:17

    使用C++構(gòu)建嵌入式開發(fā)框架

    框架作為一種大粒度的重用技術(shù)在桌面軟件開發(fā)中得到了廣泛應(yīng)用,而在嵌入式開發(fā)領(lǐng)域,目前還沒有一套完整的標(biāo)準(zhǔn)框架可供使用。本文以通信領(lǐng)域的嵌入式
    發(fā)表于 05-15 15:42 ?12次下載

    嵌入式Linux軟件測試框架的研究

    嵌入式Linux 軟件是最難測試的一類軟件。在測試過程中通過使用有效的測試框架,可以顯著提高測試效率,最終確保軟件質(zhì)量。通過對(duì)
    發(fā)表于 06-07 17:14 ?29次下載

    嵌入式軟件建立統(tǒng)一框架方法的研究

    介紹嵌入式系統(tǒng)軟件的特點(diǎn)#說明要建立統(tǒng)一嵌入式軟件系統(tǒng)框架的原因,指出
    發(fā)表于 11-07 16:02 ?27次下載

    嵌入式應(yīng)用框架EAF詳解

    EAF是Embedded Application Framework 的縮寫,即嵌入式應(yīng)用框架嵌入式應(yīng)用框架是 Application framework的一種, 是在
    發(fā)表于 12-02 11:30 ?2857次閱讀

    關(guān)于嵌入式應(yīng)用框架(EAF)的分析

    EAF是Embedded Application Framework 的縮寫,即嵌入式應(yīng)用框架嵌入式應(yīng)用框架是 Application framework的一種, 是在
    發(fā)表于 01-01 09:50 ?1533次閱讀

    嵌入式開發(fā)中常用的工具軟件

    嵌入式開發(fā)中那些常用的工具軟件
    的頭像 發(fā)表于 01-14 17:00 ?1.4w次閱讀

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

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

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

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

    嵌入式系統(tǒng)框架----硬件篇

    1.系統(tǒng)框架圖對(duì)于一個(gè)嵌入式系統(tǒng),最重要的當(dāng)然是運(yùn)算以及存儲(chǔ)單元,基本的嵌入式系統(tǒng)可以簡化成如下系統(tǒng)框架圖:
    發(fā)表于 10-20 11:51 ?3次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>框架</b>----硬件篇

    嵌入式開發(fā)|嵌入式軟件框架《一》常用軟件框架介紹選擇

    1、前言在嵌入式軟件開發(fā),包括單片機(jī)開發(fā)中,軟件架構(gòu)對(duì)于開發(fā)人員是一個(gè)必須認(rèn)真考慮的問題。軟件架構(gòu)對(duì)于系統(tǒng)整體的穩(wěn)定性和可靠性是非常重要的,一個(gè)合適的
    發(fā)表于 10-20 19:20 ?7次下載
    <b class='flag-5'>嵌入式</b>開發(fā)|<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>框架</b>《一》<b class='flag-5'>常用</b>的<b class='flag-5'>軟件</b><b class='flag-5'>框架</b><b class='flag-5'>介紹</b>與<b class='flag-5'>選擇</b>

    嵌入式系統(tǒng)框架----軟件

    1.overview 圖1-1 嵌入式框架嵌入式系統(tǒng)分為硬件以及軟件兩大部分,大多數(shù)人參與的是
    發(fā)表于 10-20 19:21 ?5次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>框架</b>----<b class='flag-5'>軟件</b>篇

    嵌入式開發(fā)|嵌入式軟件框架《二》前后臺(tái)任務(wù)框架-cola os系統(tǒng)

    系列文章目錄嵌入式開發(fā)|嵌入式軟件框架《一》常用軟件框架
    發(fā)表于 11-03 13:51 ?18次下載
    <b class='flag-5'>嵌入式</b>開發(fā)|<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>框架</b>《二》前后臺(tái)任務(wù)<b class='flag-5'>框架</b>-cola os系統(tǒng)
    主站蜘蛛池模板: 红尘影院手机在线观看| 免费精品国产人妻国语麻豆| 爱爱好爽好大好紧视频| 办公室沙发口爆12P| 囯产愉拍亚洲精品一区| 国产激情文学| 狠狠色丁香久久婷婷综合_中| 久久电影精品久久99久久| 噜噜噜狠狠夜夜躁精品| 免费特黄一区二区三区视频一| 欧美黄色xxx| 丝瓜视频樱桃视频在线观看免费| 丫鬟粗大狠狠贯穿h| 永久久久免费人妻精品| 且试天下芒果免费观看| 日韩欧美国产免费看清风阁| 午夜影院老司机| 一个人免费观看在线视频播放 | 国产久久精品热99看| 久久99精品AV99果冻传媒| 门事件快播| 色欲AV无码乱码精品国产| 亚洲福利区| 506070老熟肥妇bbwxx视频| 制服的微热| 草莓视频在线观看免费观看高清| 国产精品2020观看久久| 精品久久久亚洲精品中文字幕| 国产手机在线亚洲精品观看| 精品亚洲永久免费精品| 女人吃男人的鸡鸡| 手机在线观看毛片| 在线看片韩国免费人成视频| 伊人成综合网伊人222| 99久久久无码国产精品AAA| 国产精品成人A蜜柚在线观看| 久久大胆视频| 色色色五的天| 4399亚洲AV无码V无码网站| 第一次破女视频出血视频| 国产精品久久久久成人免费|