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