giang@domain.hidmples/rtdm/profiles/serial$ make XENO=/usr/xenomai/bin
--xeno-cflags is deprecated, use --skin=name --cflags instead
--xeno-ldflags is deprecated, use --skin=name --ldflags instead
gcc -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -Wall -Werror-implicit-function-declaration -pipe -D__XENO__ -L/usr/xenomai/lib -lxenomai -lpthread -lrt -lnative -lrtdm -Xlinker -rpath -Xlinker /usr/xenomai/lib cross-link.c -o cross-link
cross-link.c: In function ‘write_task_proc’:
cross-link.c:167: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘ssize_t’
cross-link.c:167: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘ssize_t’
cross-link.c: In function ‘read_task_proc’:
cross-link.c:227: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘ssize_t’
cross-link.c:227: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘ssize_t’
giang@domain.hid$ ./cross-link
Xenomai: binding failed: Operation not permitted.
giang@domain.hids/serial$ su
Mot de passe :
root@domain.hidi-2.6.0/examples/rtdm/profiles/serial# ./cross-link
main : write-file opened
main : write-config written
main : read-file opened
main : read-config written
main : write-task created
main : read-task created
main : starting write-task
main : starting read-task
Nr | write->irq | irq->read | write->read |
-----------------------------------------------------------
0 | 104495 | 617720 | 722215
1 | 104649 | 617061 | 721710
2 | 104360 | 617820 | 722180
3 | 104906 | 617050 | 721956
4 | 105794 | 617188 | 722982
5 | 103504 | 618103 | 721607
6 | 104643 | 617084 | 721727
7 | 106633 | 617767 | 724400
oh, it seems to work perfectly, i don't know why it works in this case when i lauched it in the terminal linux, i copied exactly the program in Eclipse C++ and it doesn't work. Ah the only thing i have changed (otherwise my program don't compile in Eclipse), is
static const struct rtser_config read_config = {
0xFFFF,
115200,
RTSER_DEF_PARITY,
RTSER_DEF_BITS,
RTSER_DEF_STOPB,
RTSER_DEF_HAND,
RTSER_DEF_FIFO_DEPTH,
RTSER_DEF_TIMEOUT,
RTSER_DEF_TIMEOUT,
1000000000, /* 1 s */
RTSER_RX_TIMESTAMP_HISTORY,
RTSER_EVENT_RXPEND,
};
static const struct rtser_config write_config = {
RTSER_SET_BAUD | RTSER_SET_TIMESTAMP_HISTORY,
115200,
RTSER_DEF_TIMESTAMP_HISTORY,
/* the rest implicitely remains default */
};