娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月29日(星期三)

2020年01月29日 | 基于AVR微控制器的時(shí)間觸發(fā)多任務(wù)調(diào)度器的設(shè)計(jì)與應(yīng)用

發(fā)布者:創(chuàng)新驛站 來源: elecfans關(guān)鍵字:AVR微控制器  時(shí)間觸發(fā)  任務(wù)調(diào)度器 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1.前言

近年來,嵌入式發(fā)展迅速,采用51單片機(jī)死循環(huán)的事件觸發(fā)編程方式已逐漸不能滿足企業(yè)對(duì)產(chǎn)品穩(wěn)定性和安全性的要求。目前,嵌入式系統(tǒng)軟件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技術(shù)上的考慮,微控制器往往不會(huì)選取其進(jìn)行設(shè)計(jì)。在實(shí)際應(yīng)用中,往往會(huì)面臨同時(shí)應(yīng)付多外設(shè)、多任務(wù)的情況,則對(duì)它們的相互調(diào)度必不可少。時(shí)間觸發(fā)嵌入式系統(tǒng)就是這樣的簡單實(shí)用的操作系統(tǒng)


本文設(shè)計(jì)了基于AVR微控制器的時(shí)間觸發(fā)多任務(wù)調(diào)度器并應(yīng)用于實(shí)際。該調(diào)度器使用傳遞消息(message)的方式使得微控制器在多個(gè)任務(wù)及設(shè)備間切換。


2.AVR微控制器的結(jié)構(gòu)特點(diǎn)

AVR是目前使用以該系列的ATmega128為例說明,它采用哈佛結(jié)構(gòu),RISC指令集、低功耗、片上資源豐富的特點(diǎn),極大簡化了外圍電路,使系統(tǒng)更加穩(wěn)定可靠。其特點(diǎn)為嵌入式系統(tǒng)設(shè)計(jì)提供了良好的硬件保證。


3.嵌入式兩種觸發(fā)方式的對(duì)比

在嵌入式系統(tǒng)中,通常采用兩種本質(zhì)上不同的調(diào)度方式:事件觸發(fā)和時(shí)間觸發(fā)。事件觸發(fā)方式往往使用多級(jí)中斷來實(shí)現(xiàn),其發(fā)生時(shí)間具有隨機(jī)性;而時(shí)間觸發(fā)方式由一個(gè)全局時(shí)鐘驅(qū)動(dòng),系統(tǒng)的行為在功能與時(shí)間上都是確定的,即具有可預(yù)測(cè)性。


3.1 事件觸發(fā)方式存在的問題

嵌入式系統(tǒng)開發(fā)人員有一種中斷事件絕不會(huì)丟失的錯(cuò)誤觀念,這往往給開發(fā)的產(chǎn)品帶來災(zāi)難性的后果。中斷事件丟失在實(shí)際應(yīng)用中是一個(gè)不爭的事實(shí),產(chǎn)生的原因有多方面,但無外乎內(nèi)因和外因兩種。外因指嵌入式系統(tǒng)外產(chǎn)生的原因,這里主要指中斷源信號(hào)丟失或過于頻繁;而內(nèi)因又可分為硬件原因和軟件原因,硬件原因主要由所用嵌入式器件的中斷嵌套能力所致,軟件原因主要由開發(fā)者編程時(shí)對(duì)任務(wù)中斷優(yōu)先級(jí)設(shè)置錯(cuò)誤以及任務(wù)處理不當(dāng)所致。


例如,中斷0是一個(gè)高優(yōu)先級(jí)中斷,而中斷1是一個(gè)低優(yōu)先級(jí)中斷,則由高優(yōu)先級(jí)中斷激活的中斷服務(wù)程序不能被低優(yōu)先級(jí)的中斷打斷。于是,對(duì)第二個(gè)中斷的響應(yīng)將被延遲,甚至在一些情況下它有被完全忽略的可能。


如果多個(gè)中斷源可能在“隨機(jī)的”時(shí)間間隔產(chǎn)生中斷,則中斷響應(yīng)可能被遺漏。實(shí)際上,在同時(shí)有幾個(gè)有效的中斷源的情況下,幾乎不可能創(chuàng)建程序代碼來正確地處理所有可能的中斷組合。并且同時(shí)處理多個(gè)事件不但增加了系統(tǒng)復(fù)雜性,而且降低了系統(tǒng)在所有情況下的行為預(yù)測(cè)能力。至于使用效率,Metzner討論并得出結(jié)論:一個(gè)包含27個(gè)任務(wù)、采用RM調(diào)度算法的事件觸發(fā)系統(tǒng),CPU的實(shí)際利用率僅為18%.


3.2 時(shí)間觸發(fā)方式的優(yōu)勢(shì)

在該系統(tǒng)中,設(shè)計(jì)人員能夠通過仔細(xì)安排可控的順序,保證一次只處理一個(gè)事件。它的可預(yù)測(cè)性使其成為安全相關(guān)的系統(tǒng)的首選。


Kopetz首先提出:使用基于時(shí)間觸發(fā)的合作式調(diào)度器會(huì)使得系統(tǒng)有非常好的可預(yù)測(cè)性。除可提高可靠性之外,使用該方式有助于減輕CPU的負(fù)荷及存儲(chǔ)器的使用量。


4.時(shí)間觸發(fā)嵌入式系統(tǒng)的設(shè)計(jì)

在該調(diào)度器中,定時(shí)器的設(shè)置被分離出來,并使之不依賴于編譯器的數(shù)據(jù)類型以及處理器的位數(shù),通過修改該部分可以輕松移植到多種硬件平臺(tái)。系統(tǒng)整體方框圖如圖1所示:

基于AVR的時(shí)間觸發(fā)嵌入式系統(tǒng)的設(shè)計(jì)與應(yīng)用

4.1 消息隊(duì)列

消息隊(duì)列是調(diào)度器的核心,它是用戶自定義的數(shù)據(jù)類型,包括了每個(gè)任務(wù)所需要的信息。盡量將其存儲(chǔ)在DATA區(qū),以供快速存取。


對(duì)于基于時(shí)間觸發(fā)的混合式調(diào)度器,使用如下的數(shù)據(jù)結(jié)構(gòu),對(duì)于每個(gè)任務(wù)存儲(chǔ)器的開銷僅為8個(gè)字節(jié)。即使是使用32位處理器,每個(gè)任務(wù)的開銷也僅為14個(gè)字節(jié)。

基于AVR的時(shí)間觸發(fā)嵌入式系統(tǒng)的設(shè)計(jì)與應(yīng)用

4.2 調(diào)度器定時(shí)器初始化函數(shù)

該函數(shù)用來產(chǎn)生驅(qū)動(dòng)調(diào)度器的定時(shí)時(shí)標(biāo)。

本文所選用AVR系列的ATmega128微控制器具有四個(gè)定時(shí)器(兩個(gè)8位,兩個(gè)16位),任一個(gè)都能用來驅(qū)動(dòng)調(diào)度器,權(quán)衡考慮選用定時(shí)器0.

void SCH_Init_T0(void){逐個(gè)刪除各個(gè)任務(wù);停止定時(shí)器0;設(shè)置時(shí)間大小函數(shù);使能定時(shí)器0方式;啟動(dòng)定時(shí)器0;}

注:在此期間不可開啟總中斷,即:

SREG=0&TImes;80或SEI();調(diào)度器必須先設(shè)定一個(gè)默認(rèn)的時(shí)間片,這并不是件簡單的事。時(shí)間片過長會(huì)導(dǎo)致系統(tǒng)對(duì)交互行為的響應(yīng)表現(xiàn)欠佳;時(shí)間片太短又會(huì)明顯地增大調(diào)度器處理耗時(shí),而留給任務(wù)運(yùn)行的時(shí)間卻很短。


根據(jù)筆者經(jīng)驗(yàn),一個(gè)較為可取的時(shí)間片是略大于一次典型的交互所需要的時(shí)間,使大多數(shù)進(jìn)程在一個(gè)時(shí)間片內(nèi)完成。經(jīng)反復(fù)嘗試,時(shí)間片選擇在1~5ms之間執(zhí)行效率較高,這樣既可滿足響應(yīng)速度的要求又能把任務(wù)執(zhí)行的時(shí)間降到最低。該時(shí)間與任務(wù)個(gè)數(shù)和任務(wù)運(yùn)行時(shí)間均有關(guān),具體大小視情況而定。


4.3 中斷服務(wù)程序

建議該函數(shù)由CTC方式激活,當(dāng)某任務(wù)需要運(yùn)行時(shí),使之處于就緒態(tài)等待被執(zhí)行。該函數(shù)內(nèi)容由具體任務(wù)而定。

4.4 調(diào)度器任務(wù)添加函數(shù)

關(guān)鍵字:AVR微控制器  時(shí)間觸發(fā)  任務(wù)調(diào)度器 引用地址:基于AVR微控制器的時(shí)間觸發(fā)多任務(wù)調(diào)度器的設(shè)計(jì)與應(yīng)用

上一篇:基于AVR芯片的光照和CO2控制系統(tǒng)分析
下一篇:以AVR為核心控制器的可預(yù)置程控寬帶直流功率放大電路設(shè)計(jì)

推薦閱讀

  25日,高通在北京舉辦技術(shù)峰會(huì),以一種極其少見的“陣仗”邀請(qǐng)了幾乎所有重要的中國合作伙伴,包括中芯國際、中國移動(dòng)、聯(lián)想、小米、OPPO、vivo、中興等一眾大佬悉數(shù)登臺(tái)助陣,攜手繪就5G共贏之路的藍(lán)圖。下面就隨手機(jī)便攜小編一起來了解一下相關(guān)內(nèi)容吧。  此刻的高通,既面臨歐盟以及臺(tái)灣地區(qū)反壟斷罰款,又身處競爭對(duì)手惡意并購的漩渦之中,而在這...
華為有這么摳門,連辦公用的鍵盤鼠標(biāo)都舍不得配嘛?其實(shí)也不是。公司買的東西,有些人嫌質(zhì)量差,有些人嫌不夠順手。吃飯的家伙是自備順手一點(diǎn)好呢?還是公司應(yīng)該多花點(diǎn)錢配質(zhì)量好的?總之是吵開了。這么一點(diǎn)小破事還驚動(dòng)了老板任正非。老板不管那么多,加了一個(gè)按語就晾曬出來了。轉(zhuǎn)發(fā)《華為公司到底在咸魚上淘了多少二手的鼠標(biāo)和鍵盤》按語:木匠要斧子好...
一、系統(tǒng)總線時(shí)序圖二、分析第一個(gè)時(shí)鐘周期開始,系統(tǒng)地址總線給出需要訪問的存儲(chǔ)空間地址。經(jīng)過Tacs時(shí)間后,片選信號(hào)也相應(yīng)給出,并且鎖存當(dāng)前地址線上地址信息。再經(jīng)過Tcso時(shí)間后,處理器給出當(dāng)前操作是讀(nOE為低)還是寫(new為低)。在Tacc時(shí)間內(nèi)將數(shù)據(jù)數(shù)據(jù)準(zhǔn)備好放之總線上,Tacc時(shí)間后(并查看nWAIT信號(hào),為低則延長本次總線操作),nOE 拉高,鎖...
安川機(jī)器人驅(qū)動(dòng)器維修常見報(bào)警代碼對(duì)照表:

史海拾趣

問答坊 | AI 解惑

濾波的問題誰能幫忙解釋一下

這是從本壇下載的一段程序,繞得頭暈,哪位能在后面注釋一下啊。先謝了! ;中值濾波,采樣值分別放在R2,r3,r4中, 結(jié)果從小到大排序放在R2,R3,R4中 ;R3為中值 FILT2:MOV A,R2        CLR C      &nbs ...…

查看全部問答∨

智能循跡小車全部資料.rar

本帖最后由 paulhyde 于 2014-9-15 03:14 編輯 循跡 [ 本帖最后由 open82977352 于 2009-12-20 16:27 編輯 ]  …

查看全部問答∨

超酷的未來筆記本~~

http://digibbs.tech.163.com/bbs/article.jsp?boardid=notebook&articleid=155219764 如果可以嵌入優(yōu)酷的視頻就好了 [ 本帖最后由 空氣 于 2009-11-3 13:35 編輯 ]…

查看全部問答∨

有計(jì)劃的工作,有計(jì)劃的生活

這是我們領(lǐng)導(dǎo)提倡的!…

查看全部問答∨

EVC開發(fā)響應(yīng)左右軟鍵

EVC4.0開發(fā)一個(gè)界面,卻不知左右軟鍵功能開發(fā),用哪一個(gè)類,模擬器上沒有這兩個(gè)鍵的,也不知是VK_??啥子?望哪位仁兄不吝賜教。…

查看全部問答∨

包含了ntddndis.he為什么會(huì)出這樣的錯(cuò)誤。

rawethernet\\ntddndis.h(101) : error C2146: syntax error : missing \';\' before identifier \'Offset\' rawethernet\\ntddndis.h(101) : error C2501: \'ULONG_PTR\' : missing storage-class or type specifiers rawethernet\\ntddndis.h ...…

查看全部問答∨

大功率LED的可靠性解決方案

1 銀膠脫落  制程問題  支架用超聲波清洗,80度除濕4小時(shí),再開始作業(yè)。或者采用錫膏焊接(對(duì)晶片有要求) 2 A點(diǎn)脫落,大部分是晶片問題,也有制程問題,如焊線前除濕。 3 E點(diǎn)脫落,設(shè)備原因占50% 支架原因占40% ,10%是制程原因,設(shè)備 ...…

查看全部問答∨

【打聽帖】派睿電子大家知道不?用起來感覺怎么樣?

本帖最后由 ddllxxrr 于 2016-1-7 17:15 編輯   聽朋友說是小批量分銷商,很多大的企業(yè)都通過它購買,   大家使用過么?用起來怎么樣?速度啊?質(zhì)量啊?價(jià)格啊?等等 …

查看全部問答∨

收到【EEWORLD大學(xué)堂——玩轉(zhuǎn)LaunchPad及G2xx系列超值單片機(jī)】禮品啦!

  經(jīng)測(cè)試使用,一切 [ 本帖最后由 zdhm_Web 于 2011-11-30 12:05 編輯 ]…

查看全部問答∨

STM32串口通信問題

最近在學(xué)習(xí)串口通信的問題,采用DMA的通信方式,在中斷函數(shù)中處理收發(fā)數(shù)據(jù),但是為什么發(fā)送和接收數(shù)據(jù)只能是一個(gè)字符呢?…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 岳阳市| 水城县| 高淳县| 定结县| 沂源县| 焉耆| 巴马| 龙州县| 湖北省| 叶城县| 怀远县| 贵州省| 黔西| 赣榆县| 义马市| 洱源县| 西平县| 眉山市| 藁城市| 灯塔市| 巨野县| 凤山县| 武穴市| 呈贡县| 乌恰县| 临潭县| 承德市| 隆回县| 宜兰县| 唐山市| 隆安县| 连城县| 普安县| 离岛区| 萍乡市| 焦作市| 郑州市| 松阳县| 克山县| 门源| 临城县|