Hi,
Currently I'm upgrading my system to Xenomai 2.6.2.1 and the Linux kernel
3.5.7. Everything looks fine. I see the services starting in the dmesg and the
latency test runs without problems (besides some high latencies :-)). But I
have a problem with the shared memory. When I run my project in the old system,
everything works fine and I saw an entry in /dev/shm. With my new system I get
segmentations faults when I try to write to the shared memory I created.
Futhermore I have no entries in /dev/shm. If I compile the code (in my cmake
file it is possible to change between "normal" compiling and compiling with
xenomai) without xenomai everything works good and I get an entry in /dev/shm.
Does somebody else have the same problems with the shared memory in the new
xenomai version or is something wrong with my code. Here is a small example
with the corresponding cmake-file (I get no errors):
#include <errno.h>
#include <fcntl.h>anybody
int main(int argc, char *argv[])
{
int fd = shm_open("MeinSHM", O_CREAT | O_RDWR, 0777);
if (fd == -1)
{
printf("shm_open: %d\n", errno);
return -errno;
}
if (ftruncate(fd, 65536))
{
printf("ftruncate: %d\n", errno);
}
exit(0);
}
I use this cmake file:
cmake_minimum_required(VERSION 2.8)
##################################
# BEGIN OF EDITING THIS TEMPLATE #
##################################
############################################
# PLEASE ENTER HERE THE NAME OF YOUR PROJECT
set(ProjectName "kogmo_man")
PROJECT(${ProjectName})
###############################################
# ENTER HERE THE VERSION NUMBER OF YOUR PROJECT
set(${ProjectName}_VERSION_MAJOR 1)
set(${ProjectName}_VERSION_MINOR 0)
###############################################
# ENABLE OR DIABLE THE USE OF XENOMAI AND QT
option(${ProjectName}_USE_XENOMAI "xenomai" OFF )
set(INSTALLDIR ${MAIN_DIR}/bin)
######
# CPPs
set(SOURCES
main.c
)
message ("Usage of Xenomai: ${${ProjectName}_USE_XENOMAI}")
IF(${ProjectName}_USE_XENOMAI)
message(STATUS "Starting Xenomai configuration")
find_package(PkgConfig)
if(NOT DEFINED ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} $ENV{PKG_CONFIG_PATH}
"/usr/xenomai/lib/pkgconfig")
endif(NOT DEFINED ENV{PKG_CONFIG_PATH})
pkg_search_module(XENOMAI libxenomai_posix)
if (XENOMAI_FOUND)
set(EXTRA_DEFINITIONS ${EXTRA_DEFINITIONS} ${XENOMAI_CFLAGS})
set(EXTRA_LIBS ${EXTRA_LIBS} ${XENOMAI_LDFLAGS})
ADD_DEFINITIONS(${EXTRA_DEFINITIONS})
else(XENOMAI_FOUND)
set(XENOMAI_DIR "/usr/xenomai")
set(XENOMAI_INCLUDE_DIR ${XENOMAI_DIR}/include)
set(XENOMAI_INCLUDE_POSIX_DIR ${XENOMAI_DIR}/include/posix)
exec_program("${XENOMAI_DIR}/bin/xeno-config --skin=posix --ldflags"
OUTPUT_VARIABLE XENOMAI_EXE_LINKER_FLAGS)
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}
${XENOMAI_EXE_LINKER_FLAGS})
exec_program("${XENOMAI_DIR}/bin/xeno-config --skin=posix --cflags"
OUTPUT_VARIABLE XENOMAI_DEFINITIONS)
set(EXTRA_DEFINITIONS ${EXTRA_DEFINITIONS} ${XENOMAI_DEFINITIONS})
ADD_DEFINITIONS(${EXTRA_DEFINITIONS})
set(EXTRA_LIBS ${EXTRA_LIBS} rtdk)
endif (XENOMAI_FOUND)
message(STATUS "Xenomai configuration finished")
ELSE(${ProjectName}_USE_XENOMAI)
set(EXTRA_DEFINITIONS ${EXTRA_DEFINITIONS} "-O2 -fno-strict-aliasing
-Wstrict-prototypes -O2 -g -Wall")
set(EXTRA_DEFINITIONS ${EXTRA_DEFINITIONS} "-D_GNU_SOURCE -D_REENTRANT")
find_library(THREAD_LIB pthread ../usr/lib)
set(EXTRA_LIBS ${EXTRA_LIBS} ${THREAD_LIB})
find_library(C_LIB c ../usr/lib)
set(EXTRA_LIBS ${EXTRA_LIBS} ${C_LIB})
find_library(RT_LIB rt ../usr/lib)
set(EXTRA_LIBS ${EXTRA_LIBS} ${RT_LIB})
ENDIF(${ProjectName}_USE_XENOMAI)
ADD_DEFINITIONS(${EXTRA_DEFINITIONS})
add_executable(${ProjectName} ${SOURCES})
TARGET_LINK_LIBRARIES(${ProjectName} ${EXTRA_LIBS})
install(TARGETS ${ProjectName} DESTINATION ${INSTALLDIR})
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai