<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 通過(guò)任務(wù)分割提高嵌入式系統的實(shí)時(shí)性

通過(guò)任務(wù)分割提高嵌入式系統的實(shí)時(shí)性

作者: 時(shí)間:2010-01-15 來(lái)源:網(wǎng)絡(luò ) 收藏


圖3中,Δt是人手按鍵的時(shí)間,一般為100~300ms。為了能說(shuō)明問(wèn)題,這里取100ms。

令 t1'-t1=Δt1,t2'-t2=Δt2

則一次鍵盤(pán)的執行時(shí)間

Δt'=t'2-t'1=t2+(t'2-t2)-[t1+(t'1-t1)]=

t2+Δt2-t1-Δt1=

t2-t1+(Δt2+Δt1)=

Δt+(Δt2-Δt1)

由圖3可知

Δt1≤tms Δt2≤5ms

實(shí)際上,由于兩次執行的情況不完全相同,Δt1與Δt2可能會(huì )有相當于幾個(gè)指令周期的時(shí)間差異,但也只是μs級的誤差。而且,這里是以時(shí)間片的形式來(lái)計算的,所以依然可以認為

Δt2-Δt1=0

因而有

Δt'=Δt+(Δt2-Δt1)=Δt=100ms(20個(gè)時(shí)間片)

也就是說(shuō),在這20個(gè)時(shí)鐘片內只執行1次鍵盤(pán),大部分的時(shí)間都在空等待。在此期間,中會(huì )有20-1=19次其它任務(wù)的執行被錯過(guò),圖3中虛線(xiàn)所示就是在此100ms期間被錯過(guò)執行的19個(gè)任務(wù)。顯然,這在大多數多任務(wù)中都是不允許的。

因此,在這個(gè)多任務(wù)實(shí)時(shí)中,鍵盤(pán)任務(wù)是個(gè)典型的長(cháng)任務(wù),要使其它19次任務(wù)中斷都有被應用的機會(huì ),必須對該鍵盤(pán)任務(wù)進(jìn)行。

4.3 鍵盤(pán)任務(wù)的

鍵盤(pán)的方法是將一次鍵盤(pán)任務(wù)分成多個(gè)小任務(wù),多次任務(wù)中斷來(lái)完成。我們將其放在任務(wù)4中(80ms執行1次)。這樣有ttask4≤ttask≤2ttask4,即可以保證鍵盤(pán)任務(wù)完整可靠地執行,又了CPU的效率。圖4是分割后的鍵盤(pán)任務(wù)的執行過(guò)程。

本文引用地址:http://dyxdggzs.com/article/152132.htm



從圖4可以看出,1次完整的鍵盤(pán)任務(wù)是由2~3次任務(wù)中斷來(lái)完成的。情況a中,每一次任務(wù)中斷發(fā)生在ta1時(shí)刻,在接下來(lái)的一個(gè)時(shí)間片(5ms)內,檢測到有鍵按下,調用查詢(xún)值任務(wù);第一次任務(wù)中斷發(fā)生在ta2時(shí)刻,在接下來(lái)的一個(gè)時(shí)間片(5ms)內,檢測到按鍵已釋放,跳轉并執行相應鍵處理程序。

情況b中,第二次任務(wù)中斷時(shí)(tb2時(shí)刻),鍵還沒(méi)有松開(kāi),因此實(shí)際上什么也不做;第三次中斷(tb3時(shí)刻)才跳到與鍵值對應的子程序。

這樣的分割,每個(gè)子任務(wù)都可以在5ms 內完成。如果系統中還有大于5ms的長(cháng)任務(wù)的話(huà),可按此法繼續進(jìn)行分割;如果沒(méi)有的話(huà),系統任務(wù)級響應時(shí)間一定小于5ms。這樣,此系統的大大,由100ms到5ms。本刊網(wǎng)絡(luò )補充版(http://www.dpj.com.cn)中,介紹了此任務(wù)改進(jìn)后的部分源程序。

結語(yǔ)

任務(wù)分割,可以顯著(zhù)地提高多任務(wù)系統的。本文改進(jìn)后的源程序已經(jīng)在基于MC68HC908GP32的溫室控制器中成功地運行過(guò)。除此以外,還成功地對LED和SCI任務(wù)進(jìn)行了分割。改進(jìn)后,除了大大提高外,CPU的執行效率也有顯著(zhù)提高。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>