* [Xenomai] rt_task_shadow - Switches
@ 2015-06-22 8:16 Jan Carstensen
0 siblings, 0 replies; only message in thread
From: Jan Carstensen @ 2015-06-22 8:16 UTC (permalink / raw)
To: Xenomai
Hi All,
i am currently working to get the ach ipc library up and running, after
a lot of debugging i got a sample running, but after switching from
rt_task_create to rt_task_shadow i am getting tones of mode-switches
which i cannot locate.
I am using Ubuntu 14.04 with a 3.16.7 and xenomai 2.6.4
The test program i am using:
________________________________________________________________________
#include "std_msgs/UInt32.h"
#include "Ach.hpp"
#include "ach.h"
#include <sys/mman.h>
#include "rtdk.h"
#include "native/task.h"
#include "native/timer.h"
#include "std_msgs/Time.h"
using namespace std;
RT_TASK demo_task;
void demo(void *arg){
ach_channel_t publish_channel;
std::string topic = "rt_test";
int r = ach_create( topic.c_str() , 0, 0, NULL);
assert( ACH_OK == r || ACH_EEXIST == r );
int rs = ach_open(&publish_channel, topic.c_str() , NULL);
assert( ACH_OK == rs );
std_msgs::Time ros_msg;
double period = 1000000000llu / 1;
rt_task_set_periodic(NULL, TM_NOW, period);
while(1) {
RTIME now = rt_timer_read();
ros::Time rosTime;
rosTime.fromNSec(now);
rt_printf("%f \n", rosTime.toSec());
ros_msg.data = rosTime;
ach_put(&publish_channel, &ros_msg, sizeof(ros_msg) );
rt_task_wait_period(NULL);
}
rt_printf("stoped task\n");
}
int main(int argc, char* argv[]){
rt_print_auto_init(1);
mlockall(MCL_CURRENT|MCL_FUTURE);
rt_task_create(&demo_task, "rts_put_ach", 0, 51, T_JOINABLE);
rt_task_start(&demo_task, &demo, 0);
rt_task_join (&demo_task);
// RT_TASK main_shadow_task;
// int ret = rt_task_shadow(NULL, "rts_put_ach", 51, T_FPU);
// void* vpoint;
// demo(&vpoint);
}
___________________________________________________________________________
when i use rt_task_create (as currently commented in):
CPU PID MSW CSW PF STAT %CPU NAME
0 0 0 225982254 0 00500080 100.0 ROOT/0
1 0 0 2113 0 00500080 100.0 ROOT/1
2 0 0 2109 0 00500080 100.0 ROOT/2
3 0 0 2109 0 00500080 100.0 ROOT/3
0 10278 1 1 0 00b00380 0.0 talker_rts_ach
0 10287 1 8 0 00340184 0.0 rts_put_ach
1 0 0 1419312 0 00000000 0.0 IRQ16641:[timer]
2 0 0 1419317 0 00000000 0.0 IRQ16641: [timer]
3 0 0 1419302 0 00000000 0.0 IRQ16641: [timer]
when i use rt_task_shadow:
CPU PID MSW CSW PF STAT %CPU NAME
0 0 0 226711353 0 00500080 83.9 ROOT/0
1 0 0 2113 0 00500080 100.0 ROOT/1
2 0 0 2109 0 00500080 100.0 ROOT/2
3 0 0 2109 0 00500080 100.0 ROOT/3
0 10446 729096 729096 0 00b40188 15.5 talker_rts_ach
1 0 0 1508065 0 00000000 0.0 IRQ16641: [timer]
2 0 0 1508070 0 00000000 0.0 IRQ16641: [timer]
3 0 0 1508056 0 00000000 0.0 IRQ16641: [timer]
i am grateful for any advice you may have.
Regards,
Jan Carstensen
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-06-22 8:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-22 8:16 [Xenomai] rt_task_shadow - Switches Jan Carstensen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.