From 05e0935e0d3db98e2b604fc75bdac1c4d8951257 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Thu, 2 Oct 2008 15:38:35 +0000 Subject: [PATCH] Userspace example with priority. --- examples/user/main.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/examples/user/main.c b/examples/user/main.c index f545a1c6..a9a88333 100644 --- a/examples/user/main.c +++ b/examples/user/main.c @@ -4,15 +4,19 @@ * ****************************************************************************/ -#include -#include -#include #include -#include #include +#include +#include +#include +#include +#include +#include #include "ecrt.h" +#define PRIORITY 1 + /****************************************************************************/ static unsigned int sig_alarms = 0; @@ -50,9 +54,17 @@ int main(int argc, char **argv) if (!sc) return -1; + printf("Activating master...\n"); if (ecrt_master_activate(master)) return -1; +#if PRIORITY + pid_t pid = getpid(); + if (setpriority(PRIO_PROCESS, pid, -19)) + fprintf(stderr, "Warning: Failed to set priority: %s\n", + strerror(errno)); +#endif + sa.sa_handler = signal_handler; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; @@ -61,25 +73,27 @@ int main(int argc, char **argv) return -1; } + printf("Starting timer...\n"); tv.it_interval.tv_sec = 0; - tv.it_interval.tv_usec = 10000; + tv.it_interval.tv_usec = 100000; tv.it_value.tv_sec = 0; - tv.it_value.tv_usec = 1; + tv.it_value.tv_usec = 1000; if (setitimer(ITIMER_REAL, &tv, NULL)) { fprintf(stderr, "Failed to start timer: %s\n", strerror(errno)); return 1; } + printf("Started.\n"); while (1) { sleep(1); - while (sig_alarms != user_alarms) { - -#if 0 - struct timeval t; - gettimeofday(&t, NULL); - printf("%u %u\n", t.tv_sec, t.tv_usec); +#if 1 + struct timeval t; + gettimeofday(&t, NULL); + printf("%u.%06u\n", t.tv_sec, t.tv_usec); #endif + + while (sig_alarms != user_alarms) { ecrt_master_receive(master); ecrt_master_send(master);