欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SylixOS高精度時鐘分析

1.Tick工作原理簡介

Tick工作原理其實就是硬件定時器的工作原理,1個系統(tǒng)tick就代表一個定時器硬件中斷。定時器的工作原理很簡單,就是內(nèi)部有一個遞減的計數(shù)器,當(dāng)減到0時產(chǎn)生一個中斷,如圖 1-1所示:

成都創(chuàng)新互聯(lián)公司是專業(yè)的烏拉特后網(wǎng)站建設(shè)公司,烏拉特后接單;提供網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行烏拉特后網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

SylixOS高精度時鐘分析

圖 1-1定時器工作原理

假設(shè)定時器模塊的輸入頻率是1MHz,系統(tǒng)定義的1S內(nèi)tick數(shù)是100,也就是100Hz,可以計算出遞減計數(shù)器要設(shè)置的值為1MHz/100Hz=10000??梢钥闯鲞f減計數(shù)器相當(dāng)于一個分頻器,輸入端每來一個脈沖,其值就減去1,當(dāng)減到0時產(chǎn)生一個中斷,同時其值自動重載成10000,如此循環(huán)下去。

2.系統(tǒng)獲取時間操作

系統(tǒng)獲取時間相關(guān)接口是基于tick來工作的,但是這是有誤差的,如圖 2-1所示:

SylixOS高精度時鐘分析

圖 2-1系統(tǒng)獲取時間

虛線表示下一個tick中斷還未產(chǎn)生,如果此時來獲取時間,獲取到的時間只是之前tick累計的時間。假設(shè)tick中斷產(chǎn)生時刻和獲取時間那一時刻之間的跨度是4ms,那么獲取的時間就有4ms的誤差,高精度時鐘就是為了消除這種誤差而誕生的。

3.高精度時鐘原理

3.1基本原理

上述誤差產(chǎn)生的根本原因是沒有將tick中斷產(chǎn)生時刻和獲取時間那一時刻之間的跨度更新到時間里去,如果計算出這段時間并加到獲取的時間里去就可以校正獲取的時間了。結(jié)合圖 1-1和圖 2-1,基本的校正原理如下所述:

  • 1個tick時間等價于遞減計數(shù)器的初始值,假設(shè)是10000,也就是說遞減10000次相當(dāng)于過了一個tick時間

  • 用1000 * 1000 * 1000 / 10000得到遞減一次的時間,單位是ns

  • 用計數(shù)器初始值減去獲取時間那一時刻計數(shù)器中的值,就得到了獲取時間時刻計數(shù)器已經(jīng)遞減的次數(shù)

  • 用遞減一次的時間 *遞減的次數(shù),就得到tick中斷產(chǎn)生時刻和獲取時間那一時刻之間的時間跨度

3.2特殊情況

當(dāng)系統(tǒng)是多核時,系統(tǒng)產(chǎn)生一個由CPU0來處理的tick中斷,當(dāng)CPU0還沒有更新整個系統(tǒng)的tick數(shù)時,這時CPU1來獲取時間,按照基本原理的計算之后還要加上一個tick的時間才是正確的。

4.代碼展示

程序清單 4-1

VOID bspTickHighResolution (struct timespec *ptv)

{

REGISTER UINT32 uiCntCur, uiDone;

 

uiCntCur = (UINT32)timerGetCnt(4);

uiDone = GuiFullCnt - uiCntCur;

 

/*

*檢查是否有 TICK中斷請求

*/

if (rSRCPND & BIT_TIMER4) {

/*

*這里由于 TICK沒有及時更新,所以需要重新獲取并且加上一個 TICK的時間

*/

uiCntCur = (UINT32)timerGetCnt(4);

uiDone = GuiFullCnt - uiCntCur;

 

if (uiCntCur != 0) {

uiDone += GuiFullCnt;

}

}

 

ptv->tv_nsec += (LONG)((Gui64NSecPerCnt7 * uiDone) >> 7);

if (ptv->tv_nsec >= 1000000000) {

ptv->tv_nsec -= 1000000000;

ptv->tv_sec++;

}

}

  • GuiFullCnt表示遞減計數(shù)器的初始值,也就是產(chǎn)生1個tick時間的計數(shù)值;Gui64NSecPerCnt7表示遞減一次的時間,但是這個時間被擴(kuò)大了128倍,目的是為了提高計算精度

  • uiDone表示獲取時間時刻計數(shù)器已經(jīng)遞減的次數(shù),uiCntCur表示獲取時間時刻計數(shù)器當(dāng)前值

  • if (rSRCPND & BIT_TIMER4)用于特殊情況的判斷,條件成立表示系統(tǒng)的tick數(shù)還沒來得及更新,不成立表示系統(tǒng)的tick數(shù)已經(jīng)被更新

  • 當(dāng)uiCntCur=0時,表示tick中斷剛剛產(chǎn)生,這時uiDone就已經(jīng)代表一個tick的計數(shù)值,所以就無需再加上一個tick的計數(shù)值了

  • 最后將修正后的時間賦值給tv_nsec成員

網(wǎng)站題目:SylixOS高精度時鐘分析
轉(zhuǎn)載源于:http://aaarwkj.com/article24/pjcoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號App設(shè)計、全網(wǎng)營銷推廣、建站公司、用戶體驗軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
亚洲精品91在线中文字幕| 欧美日本一道本一区二区三区| 日韩中文字幕综合不卡| 亚洲av无毛在线观看| 日韩二区三区在线视频| 91精品国产在线观看| 国产精品99久久久久久人| 青春草草视频在线观看| 国产黄色片子在线观看| 日韩av天堂在线观看| 国产三级亚洲三级在线理论| 亚洲av男人的天堂看| 亚洲一区麻豆文化传媒| 一区二区三区欧美小黄片| 中文字幕人成乱码在线观看| 国产成人性生交大片免费| 国产精品视频黄色一区| 国产一区二区精品久久岳| 亚洲av成人在线观看| 日本一区二区国产在线| 日韩经典三级精品自拍| 国产伦理免费精品中文字幕| 2021最新四虎永久免费| 国产精品日本欧美一区二区| 国产精品久久久久久爽| 国产成人啪精品视频免费| 色偷拍亚洲偷自拍二区| 国产综合精品一区二区| 未满十八在线观看网址| 国产有码视频一区二区三区| 高清av在线国产成人精品自拍| 一区二区三区四区自拍偷拍视频| 久久偷拍女生厕所尿尿| 久久热在线观看免费高清| 97免费人妻在线视频| 人妻一区二区三区久久| 久久综合亚洲一区二区三区色| 首页亚洲一区二区三区| 午夜福利中文字幕在线亚洲| 日韩av亚洲在线观看| 欧美日韩中文字幕精品视频|