From: Tomas Nepivoda Date: Sun, 15 May 2016 21:11:11 +0000 (+0200) Subject: Added thread priority changing, renamed X-Git-Url: http://rtime.felk.cvut.cz/gitweb/fpga/zynq/mzed-dc-control-sw.git/commitdiff_plain/70ce7bc99035a5157c3999a3a3d8ecc66fa7bfa8?ds=sidebyside Added thread priority changing, renamed --- diff --git a/src/irc_test/irc.c b/src/irc_test/irc_rt.c similarity index 50% rename from src/irc_test/irc.c rename to src/irc_test/irc_rt.c index 881b7f7..26ae63f 100644 --- a/src/irc_test/irc.c +++ b/src/irc_test/irc_rt.c @@ -3,16 +3,43 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include + +int base_task_prio; void main(){ int i; struct pollfd pfd; - char array[10000][2]; + char array[50000][2]; char tmp[1]; + char a[2]; + char b[2]; - char a[2];ยจ + pthread_attr_t attr; + struct sched_param schparam; + if (pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED) != 0) { + fprintf(stderr, "pthread_attr_setinheritsched failed\n"); + } - char b[2]; + if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO) != 0) { + fprintf(stderr, "pthread_attr_setschedpolicy SCHED_FIFO failed\n"); + } + + int fifo_min_prio = sched_get_priority_min(SCHED_FIFO); + int fifo_max_prio = sched_get_priority_max(SCHED_FIFO); + base_task_prio = fifo_max_prio - 20; + if (base_task_prio < fifo_min_prio){ + base_task_prio = fifo_min_prio; + } + + schparam.sched_priority = base_task_prio; int irc_A, irc_B, irc_IRQ; irc_A = open("/sys/class/gpio/gpio917/value", O_RDONLY); @@ -24,7 +51,7 @@ void main(){ if(irc_IRQ < 0){ printf("IRC_IRQ export failed!"); } - for(i=0;i<10000;i++){ + for(i=0;i<50000;i++){ lseek(irc_IRQ, 0, SEEK_SET); read(irc_IRQ, tmp,1); @@ -40,7 +67,7 @@ void main(){ close(irc_IRQ); //printf(" flag\n"); - for(i=0;i<10000;i++){ + for(i=0;i<50000;i++){ printf("%c ", array[i][0]); printf("%c\n", array[i][1]); }