熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 高效使用單片機(jī)放棄程序中延時(shí)函數(shù)

高效使用單片機(jī)放棄程序中延時(shí)函數(shù)

作者: 時(shí)間:2014-01-16 來源:網(wǎng)絡(luò) 收藏
-family: Tahoma, Arial, sans-serif; font-size: 14px; text-align: justify; ">這樣,在前后臺(tái)系統(tǒng)中主程序?qū)⑷蝿?wù)分配完,還有很多余力處理很多事。

本文引用地址:http://www.bjwjmy.cn/article/226910.htm

比如有很多個(gè)鍵盤、LED點(diǎn)陣、數(shù)碼管等,它們都需要實(shí)時(shí)響應(yīng),很容造成編程困難、響應(yīng)遲鈍,其實(shí)只要把延時(shí)的時(shí)間回收,處理這些就非常從容了。

可能還有人會(huì)說,有些項(xiàng)目用不了這么苛刻的時(shí)間,你回收的時(shí)間用不了,要那么多干嘛?

其實(shí)這時(shí),你就可以用死循環(huán)掃描事件,可以實(shí)時(shí)響應(yīng)。你的系統(tǒng)跟原來空循環(huán)延時(shí)比,實(shí)時(shí)性要高了不知多少倍。2、變異的協(xié)作式內(nèi)核

先說說嵌入式操作系統(tǒng)的內(nèi)核,簡(jiǎn)單的說,它就是個(gè)任務(wù)調(diào)度器,讓多個(gè)任務(wù)在同一個(gè)CPU上同時(shí)執(zhí)行,所謂同時(shí)也是相對(duì)的,無非就第一個(gè)任務(wù)執(zhí)行幾毫秒、第二個(gè)任務(wù)在執(zhí)行幾毫秒。。。外表看起來就是同時(shí)執(zhí)行。

至于可剝奪式內(nèi)核和協(xié)作式內(nèi)核的區(qū)別,大家可以百度一下。

說道能在上用的嵌入式操作系統(tǒng),大家會(huì)說出一些如uCosII、FreeOS等操作系統(tǒng)。

還有很多人對(duì)這些操作系統(tǒng)十分抗拒、十分反對(duì),他們的理由是什么?

1、這些操作系統(tǒng)占用大量RAM、ROM

2、這些實(shí)時(shí)操作系統(tǒng)所謂的實(shí)時(shí)是相對(duì)非實(shí)時(shí)操作系統(tǒng)的,跟裸機(jī)比實(shí)際上是慢了

這些理由不是沒道理,因?yàn)檫@些商用操作系統(tǒng)都是可剝奪式內(nèi)核,它們的原則是保證最高優(yōu)先級(jí)任務(wù)在可確定的時(shí)間內(nèi)響應(yīng)。

它們的有優(yōu)點(diǎn)是任務(wù)切換時(shí)間是確定的,不會(huì)隨任務(wù)的多少而改變。

有了這些確定性,讓它們?cè)谏逃卯a(chǎn)品大放光彩。因?yàn)槠鋾r(shí)間穩(wěn)定性。

但它們的缺點(diǎn)也很明顯,中斷級(jí)節(jié)拍浪費(fèi)很多時(shí)間。任務(wù)間同時(shí)調(diào)用時(shí)引發(fā)同步問題而引入許多如信號(hào)量、郵箱等機(jī)制浪費(fèi)大量RAM、ROM。

綜上,可剝奪式內(nèi)核穩(wěn)定可定量,在越高級(jí)的上越有優(yōu)勢(shì),在8位機(jī)上可用,但需要大量裁剪,并不一定合適。

而協(xié)作式內(nèi)核的核心思想是什么?它不像剝奪式內(nèi)核保證最高級(jí)任務(wù)速度最快,而是保證所有任務(wù)的平均速度最快!

正如我前面的說法,我連續(xù)兩個(gè)之間的代碼很難超過1ms,甚至很難超過100us,我們可以將其忽略。這樣10個(gè)任務(wù),第一個(gè)執(zhí)行完主動(dòng)放棄控制權(quán),交給第二個(gè)任務(wù),第二個(gè)任務(wù)執(zhí)行完主動(dòng)放棄控制權(quán),交給第三個(gè)任務(wù)。10個(gè)任務(wù)之間無間隙,每一個(gè)任務(wù)需要延時(shí)時(shí),就主動(dòng)放棄控制權(quán)。

基于這種思想,我們的就達(dá)到了回收空轉(zhuǎn)延時(shí)的目的,而且應(yīng)為每個(gè)任務(wù)是執(zhí)行完后主動(dòng)放棄,所以不存在剝奪式內(nèi)核的同步問題,基本不需要郵箱、信號(hào)量等機(jī)制,對(duì)RAM、ROM的要求就非常低了。

這樣來看,協(xié)作式內(nèi)核非常適合8位機(jī)。但可能有太多嵌入式系統(tǒng)的書中對(duì)剝奪式內(nèi)核不分場(chǎng)合的認(rèn)可,造成很多人誤解。而且uCos等系統(tǒng)的權(quán)威,也讓很多RTOS作者爭(zhēng)相效仿,沒用對(duì)8位機(jī)的場(chǎng)合做合理分析。

商用系統(tǒng)中沒有協(xié)作式內(nèi)核,而民用的,還少有優(yōu)秀的協(xié)作式內(nèi)核,都是基于傳統(tǒng)節(jié)拍。

傳統(tǒng)協(xié)作式內(nèi)核需要定時(shí)中斷為時(shí)鐘基準(zhǔn),也會(huì)間歇性打斷任務(wù),造成不必要的損失,這并不是我們想要的。

我們其實(shí)可以僅僅是讓定時(shí)器以大分頻系數(shù)開著, 而不給其產(chǎn)生中斷的機(jī)會(huì)。當(dāng)任務(wù)將要放棄使用權(quán)時(shí),讀取定時(shí)器,作為時(shí)鐘基準(zhǔn),然后清零。

做法一句兩句說不清,而效果是什么?可以做到任務(wù)是以不受干擾,與裸機(jī)相同的工作狀態(tài),這是傳統(tǒng)協(xié)作式內(nèi)核做不到的,而僅當(dāng)它需要延時(shí)了,才放棄使用權(quán),將延時(shí)的時(shí)間給其它任務(wù)。這正符合我全文的目的 -- 回收空轉(zhuǎn)延時(shí)時(shí)間,這樣的內(nèi)核體積會(huì)非常小,運(yùn)行方式與裸機(jī)無異,僅僅是把空轉(zhuǎn)延時(shí)時(shí)間干些其它事。對(duì)使用者還沒什么要求,不想以往系統(tǒng)那么復(fù)雜。

可惜市面上并沒有基于這種方式的內(nèi)核,我已經(jīng)寫了一個(gè),非常精簡(jiǎn),運(yùn)行穩(wěn)定。但作為一個(gè)想應(yīng)用實(shí)際的內(nèi)核,還需要檢驗(yàn)。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉