Enable and fix warnings (#123)

* cleanup CMakeLists.txt

* build with more warnings, warnings as errors

* fix expression has no effect warning

* fix unused parameter warnings

* fix loss of precision warning

* remove obsolete files
This commit is contained in:
Hans-Erik Floryd 2017-08-16 13:48:51 +02:00 committed by nakarlsson
parent 0ece3165a0
commit da7d55e893
12 changed files with 99 additions and 150 deletions

138
CMakeLists.txt Normal file → Executable file
View File

@ -1,70 +1,68 @@
cmake_minimum_required(VERSION 2.8.4) cmake_minimum_required(VERSION 2.8.4)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules")
project(SOEM C) project(SOEM C)
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
# Default to installing in SOEM source directory # Default to installing in SOEM source directory
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install) set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install)
endif() endif()
set(SOEM_INCLUDE_INSTALL_DIR include/soem) set(SOEM_INCLUDE_INSTALL_DIR include/soem)
message("CMAKE_SYSTEM_NAME is ${CMAKE_SYSTEM_NAME}") if(WIN32)
set(OS "win32")
if(WIN32) include_directories(oshw/win32/wpcap/Include)
set(OS "win32") link_directories(${CMAKE_SOURCE_DIR}/oshw/win32/wpcap/Lib)
include_directories(oshw/win32/wpcap/Include) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_NO_WARNINGS")
link_directories(${CMAKE_SOURCE_DIR}/oshw/win32/wpcap/Lib) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
elseif(UNIX) set(OS_LIBS wpcap.lib Packet.lib Ws2_32.lib Winmm.lib)
set(OS "linux") elseif(UNIX)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") set(OS "linux")
set(OS "rtk") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror")
message("ARCH is ${ARCH}") set(OS_LIBS pthread rt)
message("BSP is ${BSP}") elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel")
include_directories(oshw/${OS}/${ARCH}) set(OS "rtk")
add_definitions("-Wno-unused-but-set-variable") message("ARCH is ${ARCH}")
add_definitions("-Wno-unused-function") message("BSP is ${BSP}")
add_definitions("-Wno-format") include_directories(oshw/${OS}/${ARCH})
endif() file(GLOB OSHW_EXTRA_SOURCES oshw/${OS}/${ARCH}/*.c)
set(OSHW_SOURCES "${OS_HW_SOURCES} ${OSHW_ARCHSOURCES}")
message("OS is ${OS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable")
include_directories(soem) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
include_directories(osal) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format")
include_directories(osal/${OS}) set(OS_LIBS "-Wl,--start-group -l${BSP} -l${ARCH} -lkern -ldev -lsio -lblock -lfs -lusb -llwip -leth -li2c -lrtc -lcan -lnand -lspi -lnor -lpwm -ladc -ltrace -lc -lm -Wl,--end-group")
include_directories(oshw/${OS}) endif()
if (MSVC) message("OS is ${OS}")
set(CMAKE_C_FLAGS_RELEASE "/D _CRT_SECURE_NO_WARNINGS /EHsc")
set(CMAKE_C_FLAGS_DEBUG "/D _CRT_SECURE_NO_WARNINGS /EHsc /ZI /Od") file(GLOB SOEM_SOURCES soem/*.c)
endif() file(GLOB OSAL_SOURCES osal/${OS}/*.c)
file(GLOB OSHW_SOURCES oshw/${OS}/*.c)
file(GLOB SOEM_SOURCES soem/*.c)
file(GLOB OSAL_SOURCES osal/${OS}/*.c) file(GLOB SOEM_HEADERS soem/*.h)
file(GLOB OSHW_SOURCES oshw/${OS}/*.c) file(GLOB OSAL_HEADERS osal/osal.h osal/${OS}/*.h)
file(GLOB OSHW_HEADERS oshw/${OS}/*.h)
if(WIN32)
set(SOEM_SOURCES ${SOEM_SOURCES}) include_directories(soem)
endif() include_directories(osal)
include_directories(osal/${OS})
file(GLOB SOEM_HEADERS soem/*.h) include_directories(oshw/${OS})
file(GLOB OSAL_HEADERS osal/osal.h osal/${OS}/*.h)
file(GLOB OSHW_HEADERS oshw/${OS}/*.h) add_library(soem STATIC
${SOEM_SOURCES}
if(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") ${OSAL_SOURCES}
file(GLOB OSHW_ARCHSOURCES oshw/${OS}/${ARCH}/*.c) ${OSHW_SOURCES}
endif() ${OSHW_EXTRA_SOURCES})
target_link_libraries(soem ${OS_LIBS})
add_library(soem STATIC ${SOEM_SOURCES} ${OSAL_SOURCES} ${OSHW_SOURCES} ${OSHW_ARCHSOURCES})
if(WIN32) install(TARGETS soem DESTINATION lib)
target_link_libraries(soem wpcap.lib Packet.lib Ws2_32.lib Winmm.lib ${HDF5_LIBRARIES}) install(FILES
elseif(UNIX) ${SOEM_HEADERS}
target_link_libraries(soem pthread rt) ${OSAL_HEADERS}
endif() ${OSHW_HEADERS}
DESTINATION ${SOEM_INCLUDE_INSTALL_DIR})
install(TARGETS soem DESTINATION lib)
install(FILES ${SOEM_HEADERS} ${OSAL_HEADERS} ${OSHW_HEADERS} DESTINATION ${SOEM_INCLUDE_INSTALL_DIR}) add_subdirectory(test/linux/slaveinfo)
add_subdirectory(test/linux/eepromtool)
add_subdirectory(test/linux/slaveinfo) add_subdirectory(test/linux/simple_test)
add_subdirectory(test/linux/eepromtool)
add_subdirectory(test/linux/simple_test)

View File

@ -1,3 +0,0 @@
LIBNAME = osal
include $(PRJ_ROOT)/make/lib.mk

3
osal/linux/osal.c Normal file → Executable file
View File

@ -25,12 +25,13 @@ int osal_gettimeofday(struct timeval *tv, struct timezone *tz)
{ {
struct timespec ts; struct timespec ts;
int return_value; int return_value;
(void)tz; /* Not used */
/* Use clock_gettime to prevent possible live-lock. /* Use clock_gettime to prevent possible live-lock.
* Gettimeofday uses CLOCK_REALTIME that can get NTP timeadjust. * Gettimeofday uses CLOCK_REALTIME that can get NTP timeadjust.
* If this function preempts timeadjust and it uses vpage it live-locks. * If this function preempts timeadjust and it uses vpage it live-locks.
* Also when using XENOMAI, only clock_gettime is RT safe */ * Also when using XENOMAI, only clock_gettime is RT safe */
return_value = clock_gettime(CLOCK_MONOTONIC, &ts), 0; return_value = clock_gettime(CLOCK_MONOTONIC, &ts);
tv->tv_sec = ts.tv_sec; tv->tv_sec = ts.tv_sec;
tv->tv_usec = ts.tv_nsec / 1000; tv->tv_usec = ts.tv_nsec / 1000;
return return_value; return return_value;

View File

@ -1,2 +0,0 @@
LIBNAME = osal
include $(PRJ_ROOT)/make/lib.mk

View File

@ -1,21 +0,0 @@
#******************************************************************************
# * *** ***
# *** *** ***
# *** **** ********** *** ***** *** **** *****
# ********* ********** *** ********* ************ *********
# **** *** *** *** *** **** ***
# *** *** ****** *** *********** *** **** *****
# *** *** ****** *** ************* *** **** *****
# *** **** **** *** *** *** **** ***
# *** ******* ***** ************** ************* *********
# *** ***** *** ******* ** ** ****** *****
# t h e r e a l t i m e t a r g e t e x p e r t s
#
# http://www.rt-labs.com
# Copyright (C) 2009. rt-labs AB, Sweden. All rights reserved.
#------------------------------------------------------------------------------
# $Id: Makefile 262 2012-08-14 06:14:07Z rtlaka $
#------------------------------------------------------------------------------
LIBNAME = osal
include $(PRJ_ROOT)/make/lib.mk

View File

@ -1,2 +0,0 @@
LIBNAME = oshw
include $(PRJ_ROOT)/make/lib.mk

View File

View File

@ -1,12 +1,5 @@
set(SOURCES eepromtool.c) set(SOURCES eepromtool.c)
add_executable(eepromtool ${SOURCES}) add_executable(eepromtool ${SOURCES})
target_link_libraries(eepromtool soem) target_link_libraries(eepromtool soem)
install(TARGETS eepromtool DESTINATION bin)
if(WIN32)
target_link_libraries(eepromtool wpcap.lib Packet.lib Ws2_32.lib Winmm.lib)
elseif(UNIX)
target_link_libraries(eepromtool pthread rt)
endif()
install(TARGETS eepromtool DESTINATION bin)

View File

@ -225,25 +225,25 @@ int eeprom_read(int slave, int start, int length)
for (i = start ; i < (start + length) ; i+=ainc) for (i = start ; i < (start + length) ; i+=ainc)
{ {
b8 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP); b8 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP);
ebuf[i] = b8; ebuf[i] = b8 & 0xFF;
ebuf[i+1] = b8 >> 8; ebuf[i+1] = (b8 >> 8) & 0xFF;
ebuf[i+2] = b8 >> 16; ebuf[i+2] = (b8 >> 16) & 0xFF;
ebuf[i+3] = b8 >> 24; ebuf[i+3] = (b8 >> 24) & 0xFF;
ebuf[i+4] = b8 >> 32; ebuf[i+4] = (b8 >> 32) & 0xFF;
ebuf[i+5] = b8 >> 40; ebuf[i+5] = (b8 >> 40) & 0xFF;
ebuf[i+6] = b8 >> 48; ebuf[i+6] = (b8 >> 48) & 0xFF;
ebuf[i+7] = b8 >> 56; ebuf[i+7] = (b8 >> 56) & 0xFF;
} }
} }
else else
{ {
for (i = start ; i < (start + length) ; i+=ainc) for (i = start ; i < (start + length) ; i+=ainc)
{ {
b4 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP); b4 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP) & 0xFFFFFFFF;
ebuf[i] = b4; ebuf[i] = b4 & 0xFF;
ebuf[i+1] = b4 >> 8; ebuf[i+1] = (b4 >> 8) & 0xFF;
ebuf[i+2] = b4 >> 16; ebuf[i+2] = (b4 >> 16) & 0xFF;
ebuf[i+3] = b4 >> 24; ebuf[i+3] = (b4 >> 24) & 0xFF;
} }
} }

View File

@ -1,12 +1,5 @@
set(SOURCES simple_test.c) set(SOURCES simple_test.c)
add_executable(simple_test ${SOURCES}) add_executable(simple_test ${SOURCES})
target_link_libraries(simple_test soem) target_link_libraries(simple_test soem)
install(TARGETS simple_test DESTINATION bin)
if(WIN32)
target_link_libraries(simple_test wpcap.lib Packet.lib Ws2_32.lib Winmm.lib)
elseif(UNIX)
target_link_libraries(simple_test pthread rt)
endif()
install(TARGETS simple_test DESTINATION bin)

View File

@ -146,6 +146,7 @@ void simpletest(char *ifname)
OSAL_THREAD_FUNC ecatcheck( void *ptr ) OSAL_THREAD_FUNC ecatcheck( void *ptr )
{ {
int slave; int slave;
(void)ptr; /* Not used */
while(1) while(1)
{ {

19
test/linux/slaveinfo/CMakeLists.txt Normal file → Executable file
View File

@ -1,14 +1,5 @@
set(SOURCES slaveinfo.c) set(SOURCES slaveinfo.c)
add_executable(slaveinfo ${SOURCES}) add_executable(slaveinfo ${SOURCES})
target_link_libraries(slaveinfo soem) target_link_libraries(slaveinfo soem)
install(TARGETS slaveinfo DESTINATION bin)
if(WIN32)
target_link_libraries(slaveinfo wpcap.lib Packet.lib Ws2_32.lib Winmm.lib)
elseif(UNIX)
target_link_libraries(slaveinfo pthread rt)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel")
target_link_libraries(slaveinfo "-Wl,--start-group -l${BSP} -l${ARCH} -lkern -ldev -lsio -lblock -lfs -lusb -llwip -leth -li2c -lrtc -lcan -lnand -lspi -lnor -lpwm -ladc -ltrace -lc -lm -Wl,--end-group")
endif()
install(TARGETS slaveinfo DESTINATION bin)