clock_nanosleep() 還是不準的問題... - Linux
By Barb Cronin
at 2014-07-17T21:54
at 2014-07-17T21:54
Table of Contents
我不確定這問題要發在linux板或C_and_CPP板比較好,
目前我打算用嵌入式開發板 beaglebone black 上安裝Debian, kernel 3.15,
因為某些需要,所以時間精度要求要在 1us 以下,所以我打算用clock_nanosleep()實現
但我給 1s 的delay,他實際睡眠時間卻是 1s 又 120us,我是在clock_nanosleep()前後
加上clock_gettime(),然後把兩個時間相減得到的數字.. 總是會睡過頭。
另外我有用linuxPTP(某種利用PTP校正系統時間(CLOCK_REALTIME)的軟體),並且將示波器
接上GPIO看1PPS的準確度,delay也是多了100us左右...
請問有辦法讓系統達到至少 1us 以下的時間精度嗎? 譬如我設delay 1s,實際delay是
1s 又 200ns 之類的,用realtime OS有幫助嗎? 或者這是kernel counter的問題(但我對
linux的時間設計並不是很了解,只知道作業系統的計時跟counter有關)?
希望能獲前輩指教,謝謝。
下面是我其中的三組數據:
da 69033 dan 946956445
db 69034 dbn 947070913
da 69035 dan 947355036
db 69036 dbn 947490079
da 69037 dan 947738536
db 69038 dbn 947863215
左邊是秒(絕對時間),右邊是奈秒(絕對時間),故上下兩組相減可看到多了快100us...
--
目前我打算用嵌入式開發板 beaglebone black 上安裝Debian, kernel 3.15,
因為某些需要,所以時間精度要求要在 1us 以下,所以我打算用clock_nanosleep()實現
但我給 1s 的delay,他實際睡眠時間卻是 1s 又 120us,我是在clock_nanosleep()前後
加上clock_gettime(),然後把兩個時間相減得到的數字.. 總是會睡過頭。
另外我有用linuxPTP(某種利用PTP校正系統時間(CLOCK_REALTIME)的軟體),並且將示波器
接上GPIO看1PPS的準確度,delay也是多了100us左右...
請問有辦法讓系統達到至少 1us 以下的時間精度嗎? 譬如我設delay 1s,實際delay是
1s 又 200ns 之類的,用realtime OS有幫助嗎? 或者這是kernel counter的問題(但我對
linux的時間設計並不是很了解,只知道作業系統的計時跟counter有關)?
希望能獲前輩指教,謝謝。
下面是我其中的三組數據:
da 69033 dan 946956445
db 69034 dbn 947070913
da 69035 dan 947355036
db 69036 dbn 947490079
da 69037 dan 947738536
db 69038 dbn 947863215
左邊是秒(絕對時間),右邊是奈秒(絕對時間),故上下兩組相減可看到多了快100us...
--
Tags:
Linux
All Comments
By Margaret
at 2014-07-18T00:24
at 2014-07-18T00:24
By Lily
at 2014-07-21T02:07
at 2014-07-21T02:07
By Lydia
at 2014-07-23T10:35
at 2014-07-23T10:35
By Damian
at 2014-07-23T20:39
at 2014-07-23T20:39
By Christine
at 2014-07-28T16:53
at 2014-07-28T16:53
By Cara
at 2014-07-28T20:40
at 2014-07-28T20:40
By Leila
at 2014-07-30T04:38
at 2014-07-30T04:38
By Damian
at 2014-08-02T00:37
at 2014-08-02T00:37
By Victoria
at 2014-08-05T17:58
at 2014-08-05T17:58
By Annie
at 2014-08-06T12:35
at 2014-08-06T12:35
By Eartha
at 2014-08-10T00:30
at 2014-08-10T00:30
By Andy
at 2014-08-12T10:51
at 2014-08-12T10:51
By Mary
at 2014-08-15T20:06
at 2014-08-15T20:06
By Kumar
at 2014-08-19T11:14
at 2014-08-19T11:14
By Odelette
at 2014-08-23T09:29
at 2014-08-23T09:29
By Oscar
at 2014-08-28T05:50
at 2014-08-28T05:50
By Elma
at 2014-08-29T20:18
at 2014-08-29T20:18
By Olivia
at 2014-09-03T18:37
at 2014-09-03T18:37
Related Posts
Ubnutu 12.04 移除預設資料夾捷徑
By Gilbert
at 2014-07-17T13:53
at 2014-07-17T13:53
Ubnutu 12.04 移除預設資料夾捷徑
By Dinah
at 2014-07-17T12:36
at 2014-07-17T12:36
查看開機時啟動的服務 (Ubuntu)
By Damian
at 2014-07-17T09:44
at 2014-07-17T09:44
Re: cdlinux在安裝無線網卡驅動程式的問題
By Quintina
at 2014-07-16T23:31
at 2014-07-16T23:31
判斷指令檔是否存在
By Barb Cronin
at 2014-07-16T12:20
at 2014-07-16T12:20