From da7d55e893cb99aaea016c61fefdf87e38489a0d Mon Sep 17 00:00:00 2001 From: Hans-Erik Floryd Date: Wed, 16 Aug 2017 13:48:51 +0200 Subject: [PATCH] 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 --- CMakeLists.txt | 138 +++++++++++++------------- osal/linux/Makefile | 3 - osal/linux/osal.c | 3 +- osal/rtk/Makefile | 2 - osal/win32/Makefile | 21 ---- oshw/linux/Makefile | 2 - test/.late | 0 test/linux/eepromtool/CMakeLists.txt | 17 +--- test/linux/eepromtool/eepromtool.c | 26 ++--- test/linux/simple_test/CMakeLists.txt | 17 +--- test/linux/simple_test/simple_test.c | 1 + test/linux/slaveinfo/CMakeLists.txt | 19 +--- 12 files changed, 99 insertions(+), 150 deletions(-) mode change 100644 => 100755 CMakeLists.txt delete mode 100644 osal/linux/Makefile mode change 100644 => 100755 osal/linux/osal.c delete mode 100644 osal/rtk/Makefile delete mode 100644 osal/win32/Makefile delete mode 100644 oshw/linux/Makefile delete mode 100644 test/.late mode change 100644 => 100755 test/linux/slaveinfo/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 index cf02ef0..b54bd56 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,70 +1,68 @@ -cmake_minimum_required(VERSION 2.8.4) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules") -project(SOEM C) - -if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - # Default to installing in SOEM source directory - set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install) -endif() - -set(SOEM_INCLUDE_INSTALL_DIR include/soem) - -message("CMAKE_SYSTEM_NAME is ${CMAKE_SYSTEM_NAME}") - -if(WIN32) - set(OS "win32") - include_directories(oshw/win32/wpcap/Include) - link_directories(${CMAKE_SOURCE_DIR}/oshw/win32/wpcap/Lib) -elseif(UNIX) - set(OS "linux") -elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") - set(OS "rtk") - message("ARCH is ${ARCH}") - message("BSP is ${BSP}") - include_directories(oshw/${OS}/${ARCH}) - add_definitions("-Wno-unused-but-set-variable") - add_definitions("-Wno-unused-function") - add_definitions("-Wno-format") -endif() - -message("OS is ${OS}") - -include_directories(soem) -include_directories(osal) -include_directories(osal/${OS}) -include_directories(oshw/${OS}) - -if (MSVC) - set(CMAKE_C_FLAGS_RELEASE "/D _CRT_SECURE_NO_WARNINGS /EHsc") - set(CMAKE_C_FLAGS_DEBUG "/D _CRT_SECURE_NO_WARNINGS /EHsc /ZI /Od") -endif() - -file(GLOB SOEM_SOURCES soem/*.c) -file(GLOB OSAL_SOURCES osal/${OS}/*.c) -file(GLOB OSHW_SOURCES oshw/${OS}/*.c) - -if(WIN32) - set(SOEM_SOURCES ${SOEM_SOURCES}) -endif() - -file(GLOB SOEM_HEADERS soem/*.h) -file(GLOB OSAL_HEADERS osal/osal.h osal/${OS}/*.h) -file(GLOB OSHW_HEADERS oshw/${OS}/*.h) - -if(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") - file(GLOB OSHW_ARCHSOURCES oshw/${OS}/${ARCH}/*.c) -endif() - -add_library(soem STATIC ${SOEM_SOURCES} ${OSAL_SOURCES} ${OSHW_SOURCES} ${OSHW_ARCHSOURCES}) -if(WIN32) - target_link_libraries(soem wpcap.lib Packet.lib Ws2_32.lib Winmm.lib ${HDF5_LIBRARIES}) -elseif(UNIX) - target_link_libraries(soem pthread rt) -endif() - -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/simple_test) +cmake_minimum_required(VERSION 2.8.4) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules") +project(SOEM C) + +if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + # Default to installing in SOEM source directory + set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install) +endif() + +set(SOEM_INCLUDE_INSTALL_DIR include/soem) + +if(WIN32) + set(OS "win32") + include_directories(oshw/win32/wpcap/Include) + link_directories(${CMAKE_SOURCE_DIR}/oshw/win32/wpcap/Lib) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_NO_WARNINGS") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") + set(OS_LIBS wpcap.lib Packet.lib Ws2_32.lib Winmm.lib) +elseif(UNIX) + set(OS "linux") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") + set(OS_LIBS pthread rt) +elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") + set(OS "rtk") + message("ARCH is ${ARCH}") + message("BSP is ${BSP}") + include_directories(oshw/${OS}/${ARCH}) + file(GLOB OSHW_EXTRA_SOURCES oshw/${OS}/${ARCH}/*.c) + set(OSHW_SOURCES "${OS_HW_SOURCES} ${OSHW_ARCHSOURCES}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format") + 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") +endif() + +message("OS is ${OS}") + +file(GLOB SOEM_SOURCES soem/*.c) +file(GLOB OSAL_SOURCES osal/${OS}/*.c) +file(GLOB OSHW_SOURCES oshw/${OS}/*.c) + +file(GLOB SOEM_HEADERS soem/*.h) +file(GLOB OSAL_HEADERS osal/osal.h osal/${OS}/*.h) +file(GLOB OSHW_HEADERS oshw/${OS}/*.h) + +include_directories(soem) +include_directories(osal) +include_directories(osal/${OS}) +include_directories(oshw/${OS}) + +add_library(soem STATIC + ${SOEM_SOURCES} + ${OSAL_SOURCES} + ${OSHW_SOURCES} + ${OSHW_EXTRA_SOURCES}) +target_link_libraries(soem ${OS_LIBS}) + +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/simple_test) diff --git a/osal/linux/Makefile b/osal/linux/Makefile deleted file mode 100644 index b7a0324..0000000 --- a/osal/linux/Makefile +++ /dev/null @@ -1,3 +0,0 @@ - -LIBNAME = osal -include $(PRJ_ROOT)/make/lib.mk diff --git a/osal/linux/osal.c b/osal/linux/osal.c old mode 100644 new mode 100755 index 23077ef..8ead2e8 --- a/osal/linux/osal.c +++ b/osal/linux/osal.c @@ -25,12 +25,13 @@ int osal_gettimeofday(struct timeval *tv, struct timezone *tz) { struct timespec ts; int return_value; + (void)tz; /* Not used */ /* Use clock_gettime to prevent possible live-lock. * Gettimeofday uses CLOCK_REALTIME that can get NTP timeadjust. * If this function preempts timeadjust and it uses vpage it live-locks. * 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_usec = ts.tv_nsec / 1000; return return_value; diff --git a/osal/rtk/Makefile b/osal/rtk/Makefile deleted file mode 100644 index 91768e0..0000000 --- a/osal/rtk/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -LIBNAME = osal -include $(PRJ_ROOT)/make/lib.mk diff --git a/osal/win32/Makefile b/osal/win32/Makefile deleted file mode 100644 index e29df23..0000000 --- a/osal/win32/Makefile +++ /dev/null @@ -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 diff --git a/oshw/linux/Makefile b/oshw/linux/Makefile deleted file mode 100644 index 0a103ad..0000000 --- a/oshw/linux/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -LIBNAME = oshw -include $(PRJ_ROOT)/make/lib.mk diff --git a/test/.late b/test/.late deleted file mode 100644 index e69de29..0000000 diff --git a/test/linux/eepromtool/CMakeLists.txt b/test/linux/eepromtool/CMakeLists.txt index 4517225..92d6e1c 100644 --- a/test/linux/eepromtool/CMakeLists.txt +++ b/test/linux/eepromtool/CMakeLists.txt @@ -1,12 +1,5 @@ - -set(SOURCES eepromtool.c) -add_executable(eepromtool ${SOURCES}) -target_link_libraries(eepromtool soem) - -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) + +set(SOURCES eepromtool.c) +add_executable(eepromtool ${SOURCES}) +target_link_libraries(eepromtool soem) +install(TARGETS eepromtool DESTINATION bin) diff --git a/test/linux/eepromtool/eepromtool.c b/test/linux/eepromtool/eepromtool.c index 23d29ff..0a02be8 100644 --- a/test/linux/eepromtool/eepromtool.c +++ b/test/linux/eepromtool/eepromtool.c @@ -225,25 +225,25 @@ int eeprom_read(int slave, int start, int length) for (i = start ; i < (start + length) ; i+=ainc) { b8 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP); - ebuf[i] = b8; - ebuf[i+1] = b8 >> 8; - ebuf[i+2] = b8 >> 16; - ebuf[i+3] = b8 >> 24; - ebuf[i+4] = b8 >> 32; - ebuf[i+5] = b8 >> 40; - ebuf[i+6] = b8 >> 48; - ebuf[i+7] = b8 >> 56; + ebuf[i] = b8 & 0xFF; + ebuf[i+1] = (b8 >> 8) & 0xFF; + ebuf[i+2] = (b8 >> 16) & 0xFF; + ebuf[i+3] = (b8 >> 24) & 0xFF; + ebuf[i+4] = (b8 >> 32) & 0xFF; + ebuf[i+5] = (b8 >> 40) & 0xFF; + ebuf[i+6] = (b8 >> 48) & 0xFF; + ebuf[i+7] = (b8 >> 56) & 0xFF; } } else { for (i = start ; i < (start + length) ; i+=ainc) { - b4 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP); - ebuf[i] = b4; - ebuf[i+1] = b4 >> 8; - ebuf[i+2] = b4 >> 16; - ebuf[i+3] = b4 >> 24; + b4 = ec_readeepromAP(aiadr, i >> 1 , EC_TIMEOUTEEP) & 0xFFFFFFFF; + ebuf[i] = b4 & 0xFF; + ebuf[i+1] = (b4 >> 8) & 0xFF; + ebuf[i+2] = (b4 >> 16) & 0xFF; + ebuf[i+3] = (b4 >> 24) & 0xFF; } } diff --git a/test/linux/simple_test/CMakeLists.txt b/test/linux/simple_test/CMakeLists.txt index 1541576..196e199 100644 --- a/test/linux/simple_test/CMakeLists.txt +++ b/test/linux/simple_test/CMakeLists.txt @@ -1,12 +1,5 @@ - -set(SOURCES simple_test.c) -add_executable(simple_test ${SOURCES}) -target_link_libraries(simple_test soem) - -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) + +set(SOURCES simple_test.c) +add_executable(simple_test ${SOURCES}) +target_link_libraries(simple_test soem) +install(TARGETS simple_test DESTINATION bin) diff --git a/test/linux/simple_test/simple_test.c b/test/linux/simple_test/simple_test.c index 4cd9c7c..684ff52 100644 --- a/test/linux/simple_test/simple_test.c +++ b/test/linux/simple_test/simple_test.c @@ -146,6 +146,7 @@ void simpletest(char *ifname) OSAL_THREAD_FUNC ecatcheck( void *ptr ) { int slave; + (void)ptr; /* Not used */ while(1) { diff --git a/test/linux/slaveinfo/CMakeLists.txt b/test/linux/slaveinfo/CMakeLists.txt old mode 100644 new mode 100755 index f279a93..dd594f2 --- a/test/linux/slaveinfo/CMakeLists.txt +++ b/test/linux/slaveinfo/CMakeLists.txt @@ -1,14 +1,5 @@ - -set(SOURCES slaveinfo.c) -add_executable(slaveinfo ${SOURCES}) -target_link_libraries(slaveinfo soem) - -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) + +set(SOURCES slaveinfo.c) +add_executable(slaveinfo ${SOURCES}) +target_link_libraries(slaveinfo soem) +install(TARGETS slaveinfo DESTINATION bin)