Hast du ein KKB (kurzes kompilierbares Beispiel) zum testen der Zeit von nanosleep?
Soft Realtime ist mit der Kerneloption PREEMPT schon im Defaultkernel aktiviert. Solltest du Hard Realtime benötigen, gibt es Xenomai, welche sich vor dem Linuxkernel schaltet.
Bzgl. den Steckverbindern, du brauchst sowieso das APF28-Devboard, außer du willst die Platine selber designen.
Code:
# cat /proc/timer_list Timer List Version: v0.6
HRTIMER_MAX_CLOCK_BASES: 2
now at 223022594011 nsecs
cpu: 0
clock 0:
.base: c05f7678
.index: 0
.resolution: 1 nsecs
.get_time: ktime_get_real
.offset: 9516562497 nsecs
active timers:
clock 1:
.base: c05f76a8
.index: 1
.resolution: 1 nsecs
.get_time: ktime_get
.offset: 0 nsecs
active timers:
#0: <c05f7be0>, tick_sched_timer, S:01
# expires at 223030000000-223030000000 nsecs [in 7405989 to 7405989 nsecs]
#1: <c7087f30>, hrtimer_wakeup, S:01
# expires at 223037001169-223037051169 nsecs [in 14407158 to 14457158 nsecs]
.expires_next : 223030000000 nsecs
.hres_active : 1
.nr_events : 4138
.nr_retries : 182
.nr_hangs : 0
.max_hang_time : 0 nsecs
.nohz_mode : 2
.idle_tick : 222980000000 nsecs
.tick_stopped : 0
.idle_jiffies : 4294959594
.idle_calls : 23304
.idle_sleeps : 11222
.idle_entrytime : 223010000001 nsecs
.idle_waketime : 223010000001 nsecs
.idle_exittime : 223010062503 nsecs
.idle_sleeptime : 213128532357 nsecs
.iowait_sleeptime: 0 nsecs
.last_jiffies : 4294959596
.next_jiffies : 4294959597
.idle_expires : 223010000000 nsecs
jiffies: 4294959598
Tick Device: mode: 1
Per CPU device: 0
Clock Event Device: mxs tick timer
max_delta_ns: 134218658631456
min_delta_ns: 468753
mult: 137438
shift: 32
mode: 3
next_event: 223030000000 nsecs
set_next_event: mxs_set_next_event
set_mode: mxs_set_mode
event_handler: hrtimer_interrupt
retries: 0
Lesezeichen