-subdirs(Led0 DCMotor PowerSwitch ShutterCtrl WorkhourMeter)
+SET(APPLIST "")
+if(TINYAPP_LED0)
+ LIST(APPEND APPLIST Led0)
+endif()
+if(TINYAPP_DCMOTOR)
+ LIST(APPEND APPLIST DCMotor)
+endif()
+if(TINYAPP_SHUTTERCTRL)
+ LIST(APPEND APPLIST ShutterCtrl)
+endif()
+if(TINYAPP_POWERSWITCH)
+ LIST(APPEND APPLIST PowerSwitch)
+endif()
+if(TINYAPP_WORKHOURMETER)
+ LIST(APPEND APPLIST WorkhourMeter)
+endif()
+
+OPTION(TINYAPP_LED0 "Build Led application" ON)
+OPTION(TINYAPP_DCMOTOR "Build DC Motor application" OFF)
+OPTION(TINYAPP_SHUTTERCTRL "Build Shutter Handler application" ON)
+OPTION(TINYAPP_POWERSWITCH "Build Powerswitch application" ON)
+OPTION(TINYAPP_WORKHOURMETER "Build WorkHourMeter application" ON)
+
+subdirs(${APPLIST})
+#subdirs(Led0 DCMotor PowerSwitch ShutterCtrl WorkhourMeter)
DCMotor.cpp
MotorHandler.cpp
)
-
+if (AVR_MCU)
target_link_libraries(
dcmotor-${AVR_MCU}.elf
avrHAL-${AVR_MCU}
avrPtf-${AVR_MCU}
avrDCMotorParameters-${AVR_MCU}
)
-
IF (${AVR_MCU} EQUAL "atmega328p")
SET(AVRPROG arduino)
SET(AVRPROG_MCU Atmega328p)
SET(AVRPROG_MCU m32u4)
ENDIF(${AVR_MCU} EQUAL "atmega328p")
+elseif(STM32_MCU)
+target_link_libraries(
+ dcmotor-${STM32_MCU}.elf
+ avrHAL-${STM32_MCU}
+ avrDrivers-${STM32_MCU}
+ avrComm-${STM32_MCU}
+ avrPtf-${STM32_MCU}
+ avrDCMotorParameters-${STM32_MCU}
+)
+endif()
+
add_custom_target(
flash_dcmotor
COMMAND
- # avrdude -c arduino -P ${AVRDUDE_PORT} -p Atmega328p -b 57600 -Uflash:w:${CMAKE_CURRENT_BINARY_DIR}/dcmotor-${AVR_MCU}.hex:i
avrdude -c ${AVRPROG} -P ${AVRDUDE_PORT} -p ${AVRPROG_MCU} -b 57600 -Uflash:w:${CMAKE_CURRENT_BINARY_DIR}/dcmotor-${AVR_MCU}.hex:i
DEPENDS dcmotor-${AVR_MCU}.hex
)
cmake_minimum_required(VERSION 2.8)
-
-
-##########################################################################
-# tools to beused for programming the AVR
-##########################################################################
-set(AVR_UPLOADTOOL avrdude CACHE STRING "AVR MCU Programmer ")
-set(AVR_PROGRAMMER arduino)
-set(AVR_UPLOADTOOL_PORT CACHE STRING "AVRdude upload port")
-set(AVR_UPLOADTOOL_BAUDRATE 57600)
-
-##########################################################################
-# AVR and fuses needs to be set
-##########################################################################
-#set(AVR_MCU atmega32)
-set(AVR_MCU atmega328p CACHE STRING "AVR MCU type choose between atmega32_p or atmega32 atmega328p")
-set(AVR_H_FUSE 0xd9)
-set(AVR_L_FUSE 0xc3)
-
-### END TOOLCHAIN SETUP AREA #############################################
-
-include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-generic.cmake)
-
-PROJECT(tinyapp)
-
-include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-common.cmake)
-
-IF(NOT CMAKE_BUILD_TYPE)
+project(tinyapp)
+if("${BUILD_TARGET}" STREQUAL "atmega328p")
+ include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
+elseif ("${BUILD_TARGET}" STREQUAL "atmega32u4")
+ include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
+elseif ("${BUILD_TARGET}" STREQUAL "stm32g030")
+ include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-stm32g030.cmake)
+else()
+ include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
+endif()
+
+if (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Debug")
ENDIF(NOT CMAKE_BUILD_TYPE)
OPTION(TINYAPP_LED0 "Build Led application" ON)
-OPTION(TINYAPP_DC_MOTOR "Build DC Motor application" OFF)
+OPTION(TINYAPP_DCMOTOR "Build DC Motor application" OFF)
OPTION(TINYAPP_SHUTTERCTRL "Build Shutter Handler application" ON)
+OPTION(TINYAPP_POWERSWITCH "Build Powerswitch application" ON)
IF (WIN32)
SET(AVRDUDE_PORT "COM3" CACHE STRING "Avrdude port to use for flashing")
m_Params->writeValue(paramId,result);
}
else
+ if (_eType == TYPE_U32)
{
Uint32_t val;
parse_num(_buf,len,val);
m_Params->writeValue(paramId,val);
}
+ else
+ {
+ Uint32_t val;
+ parse_num(_buf,len,val);
+ m_Params->writeValue(paramId,reinterpret_cast<Uint8_t & >(val));
+ }
}
void
# executables in use
##########################################################################
SET(TRIPLE arm-none-eabi)
+SET(CMAKE_CROSSCOMPILING 1)
+SET(CROSS_TARGET_TRIPLE "arm-none-eabi-")
find_program(ARM_CC ${TRIPLE}-gcc)
find_program(ARM_CXX ${TRIPLE}-g++)
find_program(ARM_OBJCOPY ${TRIPLE}-objcopy)
find_program(ARM_SIZE_TOOL ${TRIPLE}-size)
find_program(ARM_OBJDUMP ${TRIPLE}-objdump)
+##########################################################################
+# toolchain starts with defining mandatory variables
+##########################################################################
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR arm)
+set(CMAKE_C_COMPILER ${ARM_CC})
+set(CMAKE_CXX_COMPILER ${ARM_CXX})
+SET(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
+
######
# Identification
######
# default CORE
if(NOT STM32_CORE)
SET(
- STM32_MCU cortex-m3
+ STM32_CORE cortex-m3
CACHE STRING "Set default CPU cortex-m3"
)
-endif(NOT STM32_MCU)
+endif(NOT STM32_CORE)
# default uploadtool
if(NOT STM32_UPLOADTOOL)
STM32_UPLOAD_CONFIG board/stm32
CACHE STRING "Set default openocd config file for target"
)
-endif(NOT STM32_UPLOADTOOL)
+endif(NOT STM32_UPLOAD_CONFIG)
#default stm32-size args
--- /dev/null
+##########################################################################
+# tools to beused for programming the AVR
+##########################################################################
+set(AVR_UPLOADTOOL avrdude CACHE STRING "AVR MCU Programmer ")
+set(AVR_PROGRAMMER arduino)
+set(AVR_UPLOADTOOL_PORT CACHE STRING "AVRdude upload port")
+set(AVR_UPLOADTOOL_BAUDRATE 57600)
+
+##########################################################################
+# AVR and fuses needs to be set
+##########################################################################
+#set(AVR_MCU atmega32)
+set(AVR_MCU atmega328p CACHE STRING "AVR MCU type choose between atmega32_p or atmega32 atmega328p")
+set(AVR_H_FUSE 0xd9)
+set(AVR_L_FUSE 0xc3)
+
+### END TOOLCHAIN SETUP AREA #############################################
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-generic.cmake)
+
+PROJECT(tinyapp)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-common.cmake)
+
--- /dev/null
+##########################################################################
+# tools to beused for programming the AVR
+##########################################################################
+set(STM32_UPLOADTOOL openocd CACHE STRING "STM32 MCU Programmer")
+set(STM32_PROGRAMMER openocd)
+set(STM32_UPLOADTOOL_PORT CACHE STRING "AVRdude upload port")
+set(STM32_UPLOADTOOL_BAUDRATE 57600)
+
+##########################################################################
+# AVR and fuses needs to be set
+##########################################################################
+set(STM32_MCU stm32g030 CACHE STRING "STM32 MCU type stm32g030")
+set(AVR_H_FUSE 0xd9)
+set(AVR_L_FUSE 0xc3)
+
+### END TOOLCHAIN SETUP AREA #############################################
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-arm-generic.cmake)
+
+PROJECT(tinyapp)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-arm-common.cmake)
+
+
--- /dev/null
+
+SET PATH=%PATH%;C:\Tools\gcc-arm-none-eabi-10.3-win32\gcc-arm-none-eabi-10.3-2021.10\bin
+SET PATH=%PATH%;C:\Program Files\CMake\bin
+SET PATH=%PATH%;C:\msys64\usr\bin
+SET PATH=%PATH%;C:\tools\avrdude
+
+SET STM32_FIND_ROOT_PATH=C:\Tools\gcc-arm-none-eabi-10.3-win32\gcc-arm-none-eabi-10.3-2021.10\bin