Skip to content

Commit

Permalink
Modustoolbox wrapper constructors fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
jaenrig-ifx committed May 20, 2022
1 parent 3cfc434 commit 259fc99
Show file tree
Hide file tree
Showing 12 changed files with 322 additions and 85 deletions.
56 changes: 42 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,38 @@
cmake_minimum_required(VERSION 3.12.4)

# Arduino Library Template
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

set(mhbcore multi-half-bridge-corelib)

project(${mhbcore} CXX C)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
set(CMAKE_C_OUTPUT_EXTENSION_REPLACE ON)
# set(CMAKE_CXX_STANDARD 11)
# set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
# set(CMAKE_C_OUTPUT_EXTENSION_REPLACE ON)

# # Coverage Flags
# set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
# set(CMAKE_C_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib)

# Coverage Flags
set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
message( STATUS "PROJECT_NAME : ${PROJECT_NAME}" )
message( STATUS "CMAKE_BUILD_TYPE : ${CMAKE_BUILD_TYPE}" )
message( STATUS "CMAKE_SYSTEM_NAME : ${CMAKE_SYSTEM_NAME}" )
message( STATUS "CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}" )

include( CompilerSettings )

# Search for include Files
include_directories(
Expand All @@ -39,10 +59,18 @@ add_library(${mhbcore} ${Sources} ${Headers})
# add_subdirectory(src/framework/raspberrypi)
# endif()

# Enable Testing with CTest
enable_testing()
option(SETUP_PROJECT_TESTS "Enable and setup project tests." ON)

if(SETUP_PROJECT_TESTS)

# Add GoogleTest
option(USE_GLOBAL_GOOGLETEST_INSTALLATION "Use available global installation of googletest." ON)
include(UseGoogleTestInstallation)

# Enable Testing with CTest
enable_testing()

# Add Tests Folder
add_subdirectory(test/unit)

# Add GoogleTest
add_subdirectory(googletest)
# Add Tests Folder
add_subdirectory(test/unit)
endif()
33 changes: 33 additions & 0 deletions cmake/CompilerSettings.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

set(CMAKE_CXX_STANDARD 20)


set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
set(CMAKE_C_OUTPUT_EXTENSION_REPLACE ON)


set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
#set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${GNUCXX_LIB_PATH})


message(STATUS "CMAKE_INSTALL_RPATH : ${CMAKE_INSTALL_RPATH}")


# settings per configuration
set(COMPILER_CXX_FLAGS "${COREDEV_BUILD_MODEL_FLAG} -pedantic -Wall -Wno-long-long -Wno-variadic-macros")
set(COMPILER_CXX_FLAGS_DEBUG "-g -O0 -fprofile-arcs -ftest-coverage")
set(COMPILER_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")

set(CMAKE_CXX_FLAGS "${COMPILER_CXX_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS "${COMPILER_CXX_FLAGS_RELEASE}")

set(CMAKE_CXX_FLAGS_DEBUG "${COMPILER_CXX_FLAGS_DEBUG}")
set(CMAKE_C_FLAGS_DEBUG "${COMPILER_CXX_FLAGS_DEBUG}")

message(STATUS "CMAKE_C_FLAGS_DEBUG : ${CMAKE_C_FLAGS_DEBUG}")

set(CMAKE_CXX_FLAGS_RELEASE "${COMPILER_CXX_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_RELEASE "${COMPILER_CXX_FLAGS_RELEASE}")

67 changes: 67 additions & 0 deletions cmake/TestMacros.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@

MACRO( createSimpleTests )

set( TestList "" )
set( LibraryList "" )
set( SourceList "" )
set( LabelList "" )
set( CurrentVar "" )

FOREACH( arg ${ARGN} )

IF( ${arg} STREQUAL "LIBRARIES" )
set( CurrentVar "LibraryList" )
ELSEIF( ${arg} STREQUAL "LABELS" )
set( CurrentVar "LabelList" )
ELSEIF( ${arg} STREQUAL "TESTS" )
set( CurrentVar "TestList" )
ELSEIF( ${arg} STREQUAL "SOURCES" )
set( CurrentVar "SourceList" )
ELSE( ${arg} STREQUAL "LIBRARIES" )
set( ${CurrentVar} ${${CurrentVar}} ${arg} )
ENDIF( ${arg} STREQUAL "LIBRARIES" )

ENDFOREACH( arg ${ARGN} )


string( TOUPPER ${CMAKE_BUILD_TYPE} MY_LOCAL_BUILD_TYPE )


IF( ${MY_LOCAL_BUILD_TYPE} STREQUAL "DEBUG" )

message( STATUS "#############################" )
message( STATUS "ARGN = ${ARGN}" )
message( STATUS "TestList = ${TestList}" )
message( STATUS "LibraryList = ${LibraryList}" )
message( STATUS "SourceList = ${SourceList}" )
message( STATUS "LabelList = ${LabelList}" )
message( STATUS "#############################" )

ENDIF( ${MY_LOCAL_BUILD_TYPE} STREQUAL "DEBUG" )


FOREACH( TestName ${TestList} )

IF( ${MY_LOCAL_BUILD_TYPE} STREQUAL "DEBUG" )

message( STATUS "###" )
message( STATUS "Testname = ${TestName}" )
message( STATUS "###" )

ENDIF( ${MY_LOCAL_BUILD_TYPE} STREQUAL "DEBUG" )


add_executable( ${TestName} ${TestName} ${SourceList} )
target_link_libraries( ${TestName} PUBLIC ${LibraryList} )


add_test( NAME ${TestName}
COMMAND ${TestName} )

set_tests_properties( ${TestName}
PROPERTIES
LABELS "${LabelList}")

ENDFOREACH( TestName ${TestList} )

ENDMACRO( createSimpleTests )
42 changes: 42 additions & 0 deletions cmake/UseGoogleTestInstallation.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@


set( GOOGLETEST_LIBRARIES gmock gmock_main gtest gtest_main )
set( GOOGLETEST_LINK_LIBRARIES ${GOOGLETEST_LIBRARIES} pthread )


if( USE_GLOBAL_GOOGLETEST_INSTALLATION )

if( NOT GOOGLETEST_PATH )

set( GOOGLETEST_PATH "${CMAKE_SOURCE_DIR}/googletest" )
message(STATUS "GOOGLETEST_PATH not set, setting it to ${GOOGLETEST_PATH} !")

endif( NOT GOOGLETEST_PATH )

set( GOOGLETEST_INCLUDE_PATH "${GOOGLETEST_PATH}/googlemock/include" "${GOOGLETEST_PATH}/googletest/include" )
set( GOOGLETEST_LIBRARY_PATH "${GOOGLETEST_PATH}/build/lib" )

include_directories( ${GOOGLETEST_INCLUDE_PATH} )
link_directories( ${GOOGLETEST_LIBRARY_PATH} )


foreach(LIBNAME ${GOOGLETEST_LIBRARIES})

add_library( ${LIBNAME} STATIC IMPORTED )

set_target_properties( ${LIBNAME}
PROPERTIES
IMPORTED_LOCATION "${GOOGLETEST_LIBRARY_PATH}/lib${LIBNAME}.a"
IMPORTED_LOCATION_RELEASE "${GOOGLETEST_LIBRARY_PATH}/lib${LIBNAME}.a"
IMPORTED_LOCATION_DEBUG "${GOOGLETEST_LIBRARY_PATH}/lib${LIBNAME}.a"
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" )

endforeach(LIBNAME ${GOOGLETEST_LIBRARIES})


else( USE_GLOBAL_GOOGLETEST_INSTALLATION )

add_subdirectory( ${CMAKE_SOURCE_DIR}/googletest )

endif( USE_GLOBAL_GOOGLETEST_INSTALLATION )

2 changes: 1 addition & 1 deletion devops/xfpbuild/sonar-project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

sonar.projectKey=XFP_Build_multi-half-bridge
sonar.projectName=XFP_Build_multi-half-bridge
sonar.projectVersion=5.0.0
sonar.projectVersion=5.0.1
sonar.verbose=true

sonar.sourceEncoding=UTF-8
Expand Down
2 changes: 1 addition & 1 deletion src/framework/arduino/library.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"url":"https://www.infineon.com/cms/en/product/power/motor-control-ics/brushed-dc-motor-driver-ics/multi-half-bridge-ics/",
"maintainer": true
},
"version":"5.0.0",
"version":"5.0.1",
"license":"MIT",
"frameworks":"arduino",
"platforms":[
Expand Down
2 changes: 1 addition & 1 deletion src/framework/arduino/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=multi-half-bridge
version=5.0.0
version=5.0.1
author=Infineon Technologies
maintainer=Infineon Technologies <www.infineon.com>
sentence=Library of Infineon Multi Half-Bridge IC controllers family
Expand Down
22 changes: 15 additions & 7 deletions src/framework/modustoolbox/wrapper/tle94112-mtb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
* @param sckPin system clock pin for the SPIC
*/
Tle94112Mtb::Tle94112Mtb(cyhal_gpio_t csPin, cyhal_gpio_t misoPin, cyhal_gpio_t mosiPin, cyhal_gpio_t sckPin)
:Tle94112(new SPICMtb(SPICMtb::unusedPin, misoPin, mosiPin, sckPin),
new GPIOMtb(csPin, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE),
new GPIOMtb(TLE94112_PIN_EN, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE),
new TimerMtb())
:Tle94112()
{

Tle94112::en = new GPIOMtb(TLE94112_PIN_EN, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE);
Tle94112::cs = new GPIOMtb(csPin, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE);
Tle94112::timer = new TimerMtb();
Tle94112::sBus = new SPICMtb(SPICMtb::unusedPin, misoPin, mosiPin, sckPin);
}

/**
Expand All @@ -37,8 +37,12 @@ Tle94112Mtb::Tle94112Mtb(cyhal_gpio_t csPin, cyhal_gpio_t misoPin, cyhal_gpio_t
*
*/
Tle94112Mtb::Tle94112Mtb(void)
:Tle94112()
{
Tle94112Mtb(TLE94112_PIN_CS1, KIT_SPI_MASTER_MISO, KIT_SPI_MASTER_MOSI, KIT_SPI_MASTER_SCLK);
Tle94112::en = new GPIOMtb(TLE94112_PIN_EN, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE );
Tle94112::cs = new GPIOMtb(TLE94112_PIN_CS1, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE );
Tle94112::timer = new TimerMtb();
Tle94112::sBus = new SPICMtb(SPICMtb::unusedPin,KIT_SPI_MASTER_MISO,KIT_SPI_MASTER_MOSI,KIT_SPI_MASTER_SCLK);
}

/**
Expand All @@ -50,6 +54,10 @@ Tle94112Mtb::Tle94112Mtb(void)
* @param csPin chipselect pin for the wrapping GPIO
*/
Tle94112Mtb::Tle94112Mtb(cyhal_gpio_t csPin)
:Tle94112()
{
Tle94112Mtb(csPin, KIT_SPI_MASTER_MISO, KIT_SPI_MASTER_MOSI, KIT_SPI_MASTER_SCLK);
Tle94112::en = new GPIOMtb(TLE94112_PIN_EN, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE );
Tle94112::cs = new GPIOMtb(csPin, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, GPIOMtb::POSITIVE );
Tle94112::timer = new TimerMtb();
Tle94112::sBus = new SPICMtb(SPICMtb::unusedPin,KIT_SPI_MASTER_MISO,KIT_SPI_MASTER_MOSI,KIT_SPI_MASTER_SCLK);
}
2 changes: 1 addition & 1 deletion src/framework/raspberrypi/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def build_extension(self, ext):
# logic and declaration, and simpler if you include description/version in a file.
setup(
name="multi-half-bridge",
version="5.0.0",
version="5.0.1",
author="Infineon Technologies",
description="Python Library for Infineon's multi half-bridge IC drivers",
long_description="Python library for Infineons multi half-bridge IC drivers",
Expand Down
Loading

0 comments on commit 259fc99

Please sign in to comment.