equal
deleted
inserted
replaced
35 void TimerInit(void) |
35 void TimerInit(void) |
36 { |
36 { |
37 int ret = 0; |
37 int ret = 0; |
38 char taskname[32]; |
38 char taskname[32]; |
39 |
39 |
|
40 // lock process in to RAM |
40 mlockall(MCL_CURRENT | MCL_FUTURE); |
41 mlockall(MCL_CURRENT | MCL_FUTURE); |
41 |
42 |
42 snprintf(taskname, sizeof(taskname), "S1-%d", getpid()); |
43 snprintf(taskname, sizeof(taskname), "S1-%d", getpid()); |
43 rt_sem_create(&CanFestival_mutex, taskname, 1, S_FIFO); |
44 rt_sem_create(&CanFestival_mutex, taskname, 1, S_FIFO); |
44 |
45 |
75 { |
76 { |
76 rt_sem_delete(&CanFestival_mutex); |
77 rt_sem_delete(&CanFestival_mutex); |
77 rt_mutex_delete(&condition_mutex); |
78 rt_mutex_delete(&condition_mutex); |
78 rt_cond_delete(&timer_set); |
79 rt_cond_delete(&timer_set); |
79 rt_sem_delete(&control_task); |
80 rt_sem_delete(&control_task); |
|
81 rt_task_delete(&timerloop_task); |
80 } |
82 } |
81 |
83 |
82 /** |
84 /** |
83 * Take a semaphore |
85 * Take a semaphore |
84 */ |
86 */ |
101 * Timer Task |
103 * Timer Task |
102 */ |
104 */ |
103 void timerloop_task_proc(void *arg) |
105 void timerloop_task_proc(void *arg) |
104 { |
106 { |
105 int ret = 0; |
107 int ret = 0; |
106 // lock process in to RAM |
|
107 mlockall(MCL_CURRENT | MCL_FUTURE); |
|
108 |
108 |
109 getElapsedTime(); |
109 getElapsedTime(); |
110 last_timeout_set = 0; |
110 last_timeout_set = 0; |
111 last_occured_alarm = last_time_read; |
111 last_occured_alarm = last_time_read; |
112 |
112 |
147 if(exitall){ |
147 if(exitall){ |
148 EnterMutex(); |
148 EnterMutex(); |
149 exitall(NULL,0); |
149 exitall(NULL,0); |
150 LeaveMutex(); |
150 LeaveMutex(); |
151 } |
151 } |
152 |
|
153 rt_task_delete(&timerloop_task); |
|
154 } |
152 } |
155 |
153 |
156 /** |
154 /** |
157 * Create the Timer Task |
155 * Create the Timer Task |
158 * @param _init_callback |
156 * @param _init_callback |