




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 C/OS-II軟件定時(shí)器管理算法分析及改進(jìn)摘要:實(shí)現(xiàn)了一種全集成可變帶寬中頻寬帶低通濾波器,討論分析了跨導(dǎo)放大器-電容(OTAC)連續(xù)時(shí)間型濾波器的結(jié)構(gòu)、設(shè)計(jì)和具體實(shí)現(xiàn),使用外部可編程電路對所設(shè)計(jì)濾波器帶寬進(jìn)行控制,并利用ADS軟件進(jìn)行電路設(shè)計(jì)和仿真驗(yàn)證。仿真結(jié)果表明,該濾波器帶寬的可調(diào)范圍為126 MHz,阻帶抑制率大于35 dB,帶內(nèi)波紋小于05 dB,采用18 V電源,TSMC 018m CMOS工藝庫仿真,功耗小于21 mW,頻響曲線接近理想狀態(tài)。關(guān)鍵詞:Butte 1、概述軟件定時(shí)器是一種軟件措施,通過它可以使一項(xiàng)特定的任務(wù)在
2、給定的時(shí)間段后被執(zhí)行。軟件定時(shí)器廣泛地應(yīng)用于內(nèi)核設(shè)計(jì)和應(yīng)用程序設(shè)計(jì)中,例如,一個(gè)進(jìn)程使用軟件定時(shí)器等待其他的進(jìn)程完成特定的動(dòng)作,以使任務(wù)間的操作同步等,因此,對軟件定時(shí)器的高效實(shí)現(xiàn)對提升系統(tǒng)的響應(yīng)效率是至關(guān)重要的。作為一種基礎(chǔ)的軟件措施,C/OS-II1的 V2.86版本中增加了對軟件定時(shí)器的支持。使用C/OS-II提供的軟件定時(shí)器,應(yīng)用程序可以方便地完成特定的定時(shí)任務(wù)。本文對C/OS-II的軟件定時(shí)器的實(shí)現(xiàn)機(jī)制進(jìn)行簡要分析,然后提出了對C/OS-II的軟件定時(shí)器的實(shí)現(xiàn)進(jìn)行改進(jìn)的方法。2、C/OS-II軟件定時(shí)器的實(shí)現(xiàn)機(jī)制及算法分析2.1 C/OS-II軟件定時(shí)器的核心數(shù)據(jù)結(jié)構(gòu)C/OS-II實(shí)
3、現(xiàn)軟件定時(shí)器的核心數(shù)據(jù)結(jié)構(gòu)是 OS_TMR,其定義如下:typedef struct os_tmr INT8U OSTmrType; /*應(yīng)該設(shè)置為OS_TMR_TYPE*/OS_TMR_CALLBACK OSTmrCallback; /*指定時(shí)間到達(dá)時(shí)要執(zhí)行的回調(diào)函數(shù)*/void *OSTmrCallbackArg; /*傳遞給回調(diào)函數(shù)的參數(shù)*/void *OSTmrNext; /*軟件定時(shí)器鏈表管理指針*/void *OSTmrPrev;INT32U OSTmrMatch; /*當(dāng)OSTmrTime = OSTmrMatch 時(shí)表示定時(shí)器時(shí)間到*/INT32U OSTmrDly; /*對于
4、周期性定時(shí)器,再次啟動(dòng)定時(shí)器前的延時(shí)時(shí)間*/INT32U OSTmrPeriod; /*對于周期性定時(shí)器,時(shí)鐘周期的長度*/INT8U OSTmrOpt; /*選項(xiàng) (如 OS_TMR_OPT_xxx 等) */INT8U OSTmrState; /*定時(shí)器的狀態(tài)*/ OS_TMR;每個(gè) OS_TMR結(jié)構(gòu)的實(shí)例定義了一個(gè)軟件定時(shí)器,多個(gè)軟件定時(shí)器通過結(jié)構(gòu)中的 OSTmrNext和 OSTmrPrev構(gòu)成一個(gè)定時(shí)器雙向鏈表。為了提高對軟件定時(shí)器的管理效率,C/OS-II引入了“定時(shí)器輪”數(shù)據(jù)結(jié)構(gòu),所謂定時(shí)器輪,是將定時(shí)器實(shí)例中的 OSTmrMatch域的值參照某一個(gè)預(yù)先設(shè)計(jì)的數(shù)(稱為輪數(shù))進(jìn)行求
5、余運(yùn)算,并根據(jù)求余結(jié)果將定時(shí)器進(jìn)行分組以改善對到期定時(shí)器的命中率。定時(shí)器輪數(shù)缺省配置如下:typedef struct os_tmr_wheel OS_TMR *OSTmrFirst; /*指向第一定時(shí)器的指針*/INT16U OSTmrEntries; /*該定時(shí)器輪中的定時(shí)器項(xiàng)數(shù)*/ OS_TMR_WHEEL;缺省配置下,C/OS-II 定義的輪數(shù)為8,因此,C/OS-II 的定時(shí)器輪為如下的一個(gè)數(shù)組:OS_TMR_WHEEL OSTmrWheelTbl8;例如,在某一個(gè)特定的時(shí)刻,此處假設(shè)時(shí)刻5,系統(tǒng)中有定時(shí)時(shí)間為2ticks、4ticks、5ticks、32ticks、161ticks
6、、357ticks的軟件定時(shí)器,那么,這些定時(shí)器將在時(shí)鐘滴答分別為7、9、10、37、166、362時(shí)到期,則此時(shí)系統(tǒng)的定時(shí)器輪的實(shí)例如圖 1所示: 2.2 C/OS-II軟件定時(shí)器的處理算法分析C/OS-II對定時(shí)器的超時(shí)處理在一個(gè)稱為“uC/OS-II Tmr”的任務(wù)中進(jìn)行,該任務(wù)是通過信號量 OSTmrSemSignal來激活?;谝陨隙x的定時(shí)器輪,C/OS-II對定時(shí)器的處理算法如下:static void OSTmr_Task (void *p_arg)for(;)等待OSTmrSemSignal 信號量并獲得OSTmrWheelTbl 的訪問權(quán);STmrTi
7、me = OSTmrTime+1,并對8 求余后得到對應(yīng)的定時(shí)器輪項(xiàng)索引index;for OSTmrWheelTblindex定時(shí)器輪中的每一個(gè)定時(shí)器ptmr,doif (OSTmrTime = ptmr->OSTmrMatch) 執(zhí)行ptmr 軟件定時(shí)器中的回調(diào)函數(shù);對于單次定時(shí)器,從定時(shí)器輪中刪除該時(shí)鐘;對于周期性定時(shí)器,則重置該定時(shí)器的OSTmrMatch 值;釋放對OSTmrWheelTbl 的訪問權(quán);2.3 C/OS-II的定時(shí)器處理算法的效率分析 采用上面的例子,對C/OS-II的定時(shí)器處理算法效率進(jìn)行一個(gè)簡單的分析:在下一次時(shí)鐘滴答,也就是時(shí)鐘滴答 6時(shí),沒有定時(shí)器到期,
8、而 for循環(huán)必須對每個(gè)時(shí)鐘進(jìn)行檢查,類似的情況還發(fā)生在自時(shí)鐘到達(dá) 10以后的多個(gè)檢查中。根據(jù)系統(tǒng)中的定時(shí)器的數(shù)量,這種無謂的檢查將占用大量的 CPU時(shí)間。3、對C/OS-II的定時(shí)器管理算法的改進(jìn)3.1 改進(jìn)以后的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)對C/OS-II的定時(shí)器管理算法進(jìn)行改進(jìn)的主要目標(biāo)是:要么不對定時(shí)器進(jìn)行檢查,要檢查則一定有定時(shí)器到期2。為了達(dá)到這個(gè)設(shè)計(jì)目標(biāo),需要對C/OS-II的定時(shí)器輪進(jìn)行重新設(shè)計(jì)。采用同樣的 OS_TMR數(shù)據(jù)結(jié)構(gòu)和 OS_TMR_WHEEL定時(shí)器輪結(jié)構(gòu),但是,對定時(shí)器輪的每一個(gè)項(xiàng)的功能進(jìn)行重新規(guī)劃:(1)定時(shí)器輪的第 1項(xiàng)到第 7項(xiàng),即 OSTmrWheelTbl1到 OSTm
9、rWheelTbl7的定時(shí)器輪,分別表示將在此后的第 1個(gè)時(shí)鐘滴答到第 7個(gè)時(shí)鐘滴答將到期的定時(shí)器項(xiàng),此時(shí),每個(gè)定時(shí)器結(jié)構(gòu)的 OSTmrMatch中的值表示需要經(jīng)過多少個(gè)時(shí)鐘滴答該定時(shí)器項(xiàng)將到期。在同一個(gè)定時(shí)器輪中的多個(gè)定時(shí)器項(xiàng)通過 OSTmrNext和 OSTmrPrev指針構(gòu)成雙向鏈表。(2)定時(shí)器輪的第 0項(xiàng),表示將至少需要經(jīng)過 8個(gè)時(shí)鐘滴答才到期的定時(shí)器,并通過OSTmrNext和 OSTmrPrev指針將這些定時(shí)器構(gòu)成雙向鏈表。 針對上面的同一個(gè)例子,按照此規(guī)劃形成的新的定時(shí)器輪如圖 2所示: 3.2 改進(jìn)的處理算法對定時(shí)器的超時(shí)處理仍然在“uC/OS-II T
10、mr”任務(wù)中進(jìn)行,該任務(wù)還是通過信號量OSTmrSemSignal來激活,因此,對于基于該接口調(diào)用的應(yīng)用程序可以不做任何修改即可正常運(yùn)行?;谛乱?guī)劃的定時(shí)器輪,對定時(shí)器的處理算法如下:static void OSTmr_Task (void *p_arg)STmrTime = 0;for(;)等待OSTmrSemSignal 信號量并獲得OSTmrWheelTbl 的訪問權(quán);STmrTime = OSTmrTime+1;if (OSTmrTime < 8)for OSTmrWheelTblOSTmrTime定時(shí)器輪中的每一個(gè)定時(shí)器ptmr,do執(zhí)行ptmr 軟件定時(shí)器中的回調(diào)函數(shù);對于單
11、次定時(shí)器,從定時(shí)器輪中刪除該定時(shí)器;對于周期性定時(shí)器,則重置該定時(shí)器的OSTmrMatch 值;else / STmrTime = 8for OSTmrWheelTbl0定時(shí)器輪中的每一個(gè)定時(shí)器ptmr,doptmr->OSTmrMatch = ptmr->OSTmrMatch 8;/已經(jīng)經(jīng)過了8 個(gè)時(shí)鐘滴答;if (ptmr->OSTmrMatch = 0) /到期定時(shí)值正好是8 的倍數(shù)執(zhí)行ptmr 軟件定時(shí)器中的回調(diào)函數(shù);對于單次時(shí)鐘,從定時(shí)器輪中刪除該定時(shí)器;對于周期性時(shí)鐘重置該定時(shí)器的OSTmrMatch 值;continue;if (ptmr->OSTmrMa
12、tch < 8) /少于8 個(gè)ticks 將到期的定時(shí)器根據(jù)ptmr->OSTmrMatch 的值將ptmr 插入到相應(yīng)的OSTmrWheelTbl定時(shí)器輪中;STmrTime = 0; /重新計(jì)數(shù)滴答;釋放對OSTmrWheelTbl 的訪問權(quán);3.3改進(jìn)的處理算法的效率分析通過對改進(jìn)以后的算法進(jìn)行分析可以發(fā)現(xiàn):在每一個(gè)時(shí)鐘滴答,如果對應(yīng)的定時(shí)器輪的OSTmrFirst指針不為NULL,則在該時(shí)鐘滴答有到期的定時(shí)器,需要調(diào)用對應(yīng)的回調(diào)函數(shù)。通過對定時(shí)器輪進(jìn)行重新規(guī)劃,避免了不必要的定時(shí)器到期檢查,從而可節(jié)省 CPU時(shí)間,提高了運(yùn)行效率。4、結(jié)束語針對本文提出的改進(jìn)算法,本文在基于 ARM7核的 LP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年曲靖貨運(yùn)從業(yè)資格考題
- 鋼板彈簧培訓(xùn)課件
- 2025年海口危貨車押運(yùn)證模擬考試0題
- 影像培訓(xùn)課件
- 質(zhì)量方面培訓(xùn)課件
- 飯店新店開業(yè)活動(dòng)方案
- 寫作基礎(chǔ)題目大全及答案
- 小豬蓋新房題目及答案
- 小學(xué)音高訓(xùn)練題目及答案
- 中式點(diǎn)心線上教學(xué)案例
- 物流司機(jī)獎(jiǎng)罰管理制度
- 體裁教學(xué)法在高中英語閱讀教學(xué)中的應(yīng)用研究-以說明文為例
- 7數(shù)滬科版期末考試卷-2024-2025學(xué)年七年級(初一)數(shù)學(xué)下冊期末考試模擬卷02
- 【KAWO科握】2025年中國社交媒體平臺(tái)指南報(bào)告
- 公司輸煤皮帶著火應(yīng)急演練方案
- chinese-name-culture中國姓名文化課件
- 閩教版小學(xué)四年級英語下冊期末總復(fù)習(xí)
- 全面質(zhì)量管理TQM培訓(xùn)課件
- 35KV集電線路鐵塔組立專項(xiàng)方案
- 自然拼讀測試題
- (完整版)熱食類食品制售操作流程
評論
0/150
提交評論