Просмотр исходного кода

CMSIS and HAL scripts search for sources directly in STM32CubeMX folders now.
Removed useless projects.

Konstantin Oblaukhov 10 лет назад
Родитель
Сommit
4f8ef7a094

+ 3 - 17
README.mediawiki

@@ -8,13 +8,12 @@ Requirements:
 Project contains:
 * CMake common toolchain file, that configures cmake to use arm toolchain.
 * CMake family-specific toolchain file, that configures family-specific parameters.
-* CMake projects that installs CMSIS and STM32CubeMX (STM32HAL) sources into sysroot.
 * CMake modules to find and configure CMSIS ans STM32HAL components.
 * CMake modules to find and configure ChibiOS components.
 * CMake project template.
 * Example projects
-** blinky - blink LED using timers and PWM.
-** newlib - show date using uart and libc functions from newlib
+** stm32-blinky - blink LED using timers and PWM.
+** stm32-newlib - show date using uart and libc functions from newlib
 ** stm32-chibios - blink led using ChibiOS/NIL
 
 == Building & Installing ==
@@ -24,23 +23,10 @@ Variables for toolchain:
 * TARGET_TRIPLET - toolchain target triplet, '''default''': arm-none-eabi
 * STM32_FAMILY - STM32 family (F0, F1, F4, etc.) currently, F1 and F4 family are supported.
 '''Note:''' If STM32_CHIP variable is set, STM32_FAMILY is optional.
-
-Variables for CMSIS and STM32CubeMX:
 * STM32Cube_DIR - path to STM32CubeMX directory '''default''': /opt/STM32Cube_FW_F1_V1.1.0 /opt/STM32Cube_FW_F4_V1.6.0
 
-=== Build CMSIS and Standard Peripherals Library ===
-In cmsis folder:
- cmake -DCMAKE_TOOLCHAIN_FILE=../gcc_stm32.cmake -DCMAKE_MODULE_PATH=<path_to_stm32-cmake>/cmake -DSTM32_FAMILY=F1 -DCMAKE_INSTALL_PREFIX=<path_to_toolchain>/arm-none-eabi/ -DCMAKE_BUILD_TYPE=Release
- make && make install
-In stdperiph folder
- cmake -DCMAKE_TOOLCHAIN_FILE=../gcc_stm32.cmake -DCMAKE_MODULE_PATH=<path_to_stm32-cmake>/cmake -DSTM32_FAMILY=F1 -DCMAKE_INSTALL_PREFIX=<path_to_toolchain>/arm-none-eabi/ -DCMAKE_BUILD_TYPE=Release
- make && make install
-'''Note:''' For building for STM32F4 family, change -DSTM32_FAMILY=F1 to -DSTM32_FAMILY=F4
-
-'''Note:''' You can use different CMAKE_INSTALL_PREFIX, but than you'll have to configure cmake search paths when using cmake modules. You may specify an additional search path with -DEXTRA_FIND_PATH=<path-to-search>
-
 == Usage ==
-After building you'll need to copy contents of cmake folder into cmake's modules path, or just set CMAKE_MODULE_PATH variable. 
+For using scripts you'll need to copy contents of cmake folder into cmake's modules path, or use CMAKE_MODULE_PATH variable. 
 Template project can be found in stm32-template folder.
 
 === Configure === 

+ 58 - 28
cmake/FindCMSIS.cmake

@@ -1,17 +1,3 @@
-STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
-
-IF(STM32_FAMILY STREQUAL "F1")
-    SET(CMSIS_STARTUP_PREFIX startup_stm32f)
-    SET(CMSIS_HEADERS system_stm32f1xx.h core_cm3.h stm32f1xx.h)
-    SET(CMSIS_LINKER_SCRIPT_NAME stm32f1.ld.in)
-    SET(CMSIS_SRCS system_stm32f1xx.c)
-ELSEIF(STM32_FAMILY STREQUAL "F4")
-    SET(CMSIS_STARTUP_PREFIX startup_stm32f)
-    SET(CMSIS_HEADERS system_stm32f4xx.h core_cm4.h stm32f4xx.h)
-    SET(CMSIS_LINKER_SCRIPT_NAME stm32f4.ld.in)
-    SET(CMSIS_SRCS system_stm32f4xx.c)
-ENDIF()
-
 IF(STM32_CHIP_TYPE OR STM32_CHIP)
     IF(NOT STM32_CHIP_TYPE)
         STM32_GET_CHIP_TYPE(${STM32_CHIP} STM32_CHIP_TYPE)
@@ -21,32 +7,76 @@ IF(STM32_CHIP_TYPE OR STM32_CHIP)
         MESSAGE(STATUS "${STM32_CHIP} is ${STM32_CHIP_TYPE} device")
     ENDIF()
     STRING(TOLOWER ${STM32_CHIP_TYPE} STM32_CHIP_TYPE_LOWER)
+ENDIF()
+
+SET(CMSIS_COMMON_HEADERS 
+    arm_common_tables.h 
+    arm_const_structs.h 
+    arm_math.h 
+    core_cmFunc.h 
+    core_cmInstr.h 
+    core_cmSimd.h
+)
+
+IF(STM32_FAMILY STREQUAL "F1")
+    IF(NOT STM32Cube_DIR)
+        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.1.0")
+        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
+    ENDIF()
+    
+    LIST(APPEND CMSIS_COMMON_HEADERS core_cm3.h) 
+    SET(CMSIS_DEVICE_HEADERS stm32f1xx.h system_stm32f1xx.h)
+    SET(CMSIS_DEVICE_SOURCES system_stm32f1xx.c)
+ELSEIF(STM32_FAMILY STREQUAL "F4")
+    IF(NOT STM32Cube_DIR)
+        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F4_V1.6.0")
+        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
+    ENDIF()
     
-    SET(CMSIS_STARTUP_NAME ${CMSIS_STARTUP_PREFIX}${STM32_CHIP_TYPE_LOWER}.s)
+    LIST(APPEND CMSIS_COMMON_HEADERS core_cm4.h) 
+    SET(CMSIS_DEVICE_HEADERS stm32f4xx.h system_stm32f4xx.h)
+    SET(CMSIS_DEVICE_SOURCES system_stm32f4xx.c)
 ENDIF()
 
-FIND_PATH(CMSIS_INCLUDE_DIR ${CMSIS_HEADERS}
-    PATH_SUFFIXES include stm32${STM32_FAMILY_LOWER}
+SET(CMSIS_STARTUP_SOURCE startup_stm32f${STM32_CHIP_TYPE_LOWER}.s)
+
+FIND_PATH(CMSIS_COMMON_INCLUDE_DIR ${CMSIS_COMMON_HEADERS}
+    PATH_SUFFIXES include stm32${STM32_FAMILY_LOWER} cmsis
+    HINTS ${STM32Cube_DIR}/Drivers/CMSIS/Include/
+    CMAKE_FIND_ROOT_PATH_BOTH
+)
+
+FIND_PATH(CMSIS_DEVICE_INCLUDE_DIR ${CMSIS_DEVICE_HEADERS}
+    PATH_SUFFIXES include stm32${STM32_FAMILY_LOWER} cmsis
+    HINTS ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32${STM32_FAMILY}xx/Include
+    CMAKE_FIND_ROOT_PATH_BOTH
 )
 
-FIND_FILE(CMSIS_LINKER_SCRIPT ${CMSIS_LINKER_SCRIPT_NAME} 
-    PATHS ${CMAKE_FIND_ROOT_PATH}
-    PATH_SUFFIXES share/cmsis cmsis
+SET(CMSIS_INCLUDE_DIRS
+    ${CMSIS_DEVICE_INCLUDE_DIR}
+    ${CMSIS_COMMON_INCLUDE_DIR}
 )
 
-FOREACH(CMSIS_SRC ${CMSIS_SRCS})
-    FIND_FILE(CMSIS_SRC_FILE NAMES ${CMSIS_SRC} PATHS ${CMAKE_FIND_ROOT_PATH} PATH_SUFFIXES share/cmsis cmsis)
-    LIST(APPEND CMSIS_SOURCES ${CMSIS_SRC_FILE})
+FOREACH(SRC ${CMSIS_DEVICE_SOURCES})
+    SET(SRC_FILE SRC_FILE-NOTFOUND)
+    FIND_FILE(SRC_FILE ${SRC} 
+        PATH_SUFFIXES src stm32${STM32_FAMILY_LOWER} cmsis
+        HINTS ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32${STM32_FAMILY}xx/Source/Templates/ 
+        CMAKE_FIND_ROOT_PATH_BOTH
+    )
+    LIST(APPEND CMSIS_SOURCES ${SRC_FILE})
 ENDFOREACH()
 
 IF(STM32_CHIP_TYPE)
-    FIND_FILE(CMSIS_STARTUP_SOURCE
-        ${CMSIS_STARTUP_NAME}
-        PATHS ${CMAKE_FIND_ROOT_PATH}/share/cmsis/
+    SET(SRC_FILE SRC_FILE-NOTFOUND)
+    FIND_FILE(SRC_FILE ${CMSIS_STARTUP_SOURCE} 
+        PATH_SUFFIXES src stm32${STM32_FAMILY_LOWER} cmsis
+        HINTS ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32${STM32_FAMILY}xx/Source/Templates/gcc/
+        CMAKE_FIND_ROOT_PATH_BOTH
     )
-    LIST(APPEND CMSIS_SOURCES ${CMSIS_STARTUP_SOURCE})
+    LIST(APPEND CMSIS_SOURCES ${SRC_FILE})
 ENDIF()
 
 INCLUDE(FindPackageHandleStandardArgs)
 
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(CMSIS DEFAULT_MSG CMSIS_INCLUDE_DIR CMSIS_LINKER_SCRIPT CMSIS_SOURCES)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CMSIS DEFAULT_MSG CMSIS_INCLUDE_DIRS CMSIS_SOURCES)

+ 7 - 1
cmake/FindSTM32HAL.cmake

@@ -231,11 +231,17 @@ STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
 
 FIND_PATH(STM32HAL_INCLUDE_DIR ${HAL_HEADERS}
     PATH_SUFFIXES include stm32${STM32_FAMILY_LOWER}
+    HINTS ${STM32Cube_DIR}/Drivers/STM32${STM32_FAMILY}xx_HAL_Driver/Inc
+    CMAKE_FIND_ROOT_PATH_BOTH
 )
 
 FOREACH(HAL_SRC ${HAL_SRCS})
     SET(HAL_SRC_FILE HAL_SRC_FILE-NOTFOUND)
-    FIND_FILE(HAL_SRC_FILE NAMES ${HAL_SRC} PATHS ${CMAKE_FIND_ROOT_PATH} PATH_SUFFIXES share/stm32hal/${STM32_FAMILY_LOWER} stm32hal/${STM32_FAMILY_LOWER})
+    FIND_FILE(HAL_SRC_FILE ${HAL_SRC} 
+        PATH_SUFFIXES src stm32${STM32_FAMILY_LOWER}
+        HINTS ${STM32Cube_DIR}/Drivers/STM32${STM32_FAMILY}xx_HAL_Driver/Src
+        CMAKE_FIND_ROOT_PATH_BOTH
+    )
     LIST(APPEND STM32HAL_SOURCES ${HAL_SRC_FILE})
 ENDFOREACH()
 

+ 0 - 92
cmsis/CMakeLists.txt

@@ -1,92 +0,0 @@
-PROJECT(stm32cmsis)
-
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-ENABLE_LANGUAGE(ASM)
-
-IF(${STM32_FAMILY} STREQUAL "F1")
-IF(NOT STM32Cube_DIR)
-        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.1.0")
-        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
-    ENDIF()
-    
-    SET(CMSIS_HEADERS        
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f100xb.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f100xe.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f101x6.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f101xb.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f101xe.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f101xg.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f102x6.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f102xb.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103x6.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xg.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f105xc.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f107xc.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h
-
-        
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_common_tables.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_const_structs.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_math.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cm3.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmFunc.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmInstr.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmSimd.h
-    )
-    
-    SET(CMSIS_SOURCES 
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c
-    )
-    
-    SET(CMSIS_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/stm32f1.ld.in)
-    SET(STARTUP_PREFIX ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f)
-ELSEIF(${STM32_FAMILY} STREQUAL "F4")
-    IF(NOT STM32Cube_DIR)
-        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F4_V1.6.0")
-        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
-    ENDIF()
-    
-    SET(CMSIS_HEADERS 
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xc.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f415xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f417xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f427xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f429xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f437xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f439xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f446xx.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h
-        
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_common_tables.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_const_structs.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/arm_math.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cm4.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmFunc.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmInstr.h
-        ${STM32Cube_DIR}/Drivers/CMSIS/Include/core_cmSimd.h
-    )
-    
-    SET(CMSIS_SOURCES 
-        ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
-    )
-    
-    SET(CMSIS_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/stm32f4.ld.in)
-    SET(STARTUP_PREFIX ${STM32Cube_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f)
-ENDIF()
-
-FOREACH(CHIP_TYPE ${STM32_CHIP_TYPES})
-    STRING(TOLOWER ${CHIP_TYPE} CHIP_TYPE_LOWER)
-    LIST(APPEND CMSIS_STARTUP_FILES ${STARTUP_PREFIX}${CHIP_TYPE_LOWER}.s)
-ENDFOREACH()
-
-INSTALL(FILES ${CMSIS_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})
-INSTALL(FILES ${CMSIS_STARTUP_FILES} ${CMSIS_LINKER_SCRIPT} DESTINATION share/cmsis/)
-INSTALL(FILES ${CMSIS_SOURCES} DESTINATION share/cmsis/)

+ 0 - 136
cmsis/stm32f1.ld.in

@@ -1,136 +0,0 @@
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = ${STM32_STACK_ADDRESS};    /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = ${STM32_MIN_HEAP_SIZE};      /* required amount of heap  */
-_Min_Stack_Size = ${STM32_MIN_STACK_SIZE}; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx)      : ORIGIN = ${STM32_FLASH_ORIGIN}, LENGTH = ${STM32_FLASH_SIZE}
-RAM (xrw)      : ORIGIN = ${STM32_RAM_ORIGIN}, LENGTH = ${STM32_RAM_SIZE}
-}
-
-/* Define output sections */
-SECTIONS
-{
-  /* The startup code goes first into FLASH */
-  .isr_vector :
-  {
-    . = ALIGN(4);
-    KEEP(*(.isr_vector)) /* Startup code */
-    . = ALIGN(4);
-  } >FLASH
-
-  /* The program code and other data goes into FLASH */
-  .text :
-  {
-    . = ALIGN(4);
-    *(.text)           /* .text sections (code) */
-    *(.text*)          /* .text* sections (code) */
-    *(.glue_7)         /* glue arm to thumb code */
-    *(.glue_7t)        /* glue thumb to arm code */
-    *(.eh_frame)
-
-    KEEP (*(.init))
-    KEEP (*(.fini))
-
-    . = ALIGN(4);
-    _etext = .;        /* define a global symbols at end of code */
-  } >FLASH
-
-  /* Constant data goes into FLASH */
-  .rodata :
-  {
-    . = ALIGN(4);
-    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
-    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
-    . = ALIGN(4);
-  } >FLASH
-
-  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
-  .ARM : {
-    __exidx_start = .;
-    *(.ARM.exidx*)
-    __exidx_end = .;
-  } >FLASH
-
-  .preinit_array     :
-  {
-    PROVIDE_HIDDEN (__preinit_array_start = .);
-    KEEP (*(.preinit_array*))
-    PROVIDE_HIDDEN (__preinit_array_end = .);
-  } >FLASH
-  .init_array :
-  {
-    PROVIDE_HIDDEN (__init_array_start = .);
-    KEEP (*(SORT(.init_array.*)))
-    KEEP (*(.init_array*))
-    PROVIDE_HIDDEN (__init_array_end = .);
-  } >FLASH
-  .fini_array :
-  {
-    PROVIDE_HIDDEN (__fini_array_start = .);
-    KEEP (*(SORT(.fini_array.*)))
-    KEEP (*(.fini_array*))
-    PROVIDE_HIDDEN (__fini_array_end = .);
-  } >FLASH
-
-  /* used by the startup to initialize data */
-  _sidata = LOADADDR(.data);
-
-  /* Initialized data sections goes into RAM, load LMA copy after code */
-  .data : 
-  {
-    . = ALIGN(4);
-    _sdata = .;        /* create a global symbol at data start */
-    *(.data)           /* .data sections */
-    *(.data*)          /* .data* sections */
-
-    . = ALIGN(4);
-    _edata = .;        /* define a global symbol at data end */
-  } >RAM AT> FLASH
-  
-  /* Uninitialized data section */
-  . = ALIGN(4);
-  .bss :
-  {
-    /* This is used by the startup in order to initialize the .bss secion */
-    _sbss = .;         /* define a global symbol at bss start */
-    __bss_start__ = _sbss;
-    *(.bss)
-    *(.bss*)
-    *(COMMON)
-
-    . = ALIGN(4);
-    _ebss = .;         /* define a global symbol at bss end */
-    __bss_end__ = _ebss;
-  } >RAM
-
-  /* User_heap_stack section, used to check that there is enough RAM left */
-  ._user_heap_stack :
-  {
-    . = ALIGN(4);
-    PROVIDE ( end = . );
-    PROVIDE ( _end = . );
-    . = . + _Min_Heap_Size;
-    . = . + _Min_Stack_Size;
-    . = ALIGN(4);
-  } >RAM
-
-  
-
-  /* Remove information from the standard libraries */
-  /DISCARD/ :
-  {
-    libc.a ( * )
-    libm.a ( * )
-    libgcc.a ( * )
-  }
-
-  .ARM.attributes 0 : { *(.ARM.attributes) }
-}

+ 0 - 157
cmsis/stm32f4.ld.in

@@ -1,157 +0,0 @@
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = ${STM32_STACK_ADDRESS};    /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = ${STM32_MIN_HEAP_SIZE};      /* required amount of heap  */
-_Min_Stack_Size = ${STM32_MIN_STACK_SIZE}; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx)      : ORIGIN = ${STM32_FLASH_ORIGIN}, LENGTH = ${STM32_FLASH_SIZE}
-RAM (xrw)      : ORIGIN = ${STM32_RAM_ORIGIN}, LENGTH = ${STM32_RAM_SIZE}
-CCMRAM (rw)      : ORIGIN = 0x10000000, LENGTH = 64K
-}
-
-/* Define output sections */
-SECTIONS
-{
-  /* The startup code goes first into FLASH */
-  .isr_vector :
-  {
-    . = ALIGN(4);
-    KEEP(*(.isr_vector)) /* Startup code */
-    . = ALIGN(4);
-  } >FLASH
-
-  /* The program code and other data goes into FLASH */
-  .text :
-  {
-    . = ALIGN(4);
-    *(.text)           /* .text sections (code) */
-    *(.text*)          /* .text* sections (code) */
-    *(.glue_7)         /* glue arm to thumb code */
-    *(.glue_7t)        /* glue thumb to arm code */
-    *(.eh_frame)
-
-    KEEP (*(.init))
-    KEEP (*(.fini))
-
-    . = ALIGN(4);
-    _etext = .;        /* define a global symbols at end of code */
-  } >FLASH
-
-  /* Constant data goes into FLASH */
-  .rodata :
-  {
-    . = ALIGN(4);
-    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
-    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
-    . = ALIGN(4);
-  } >FLASH
-
-  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
-  .ARM : {
-    __exidx_start = .;
-    *(.ARM.exidx*)
-    __exidx_end = .;
-  } >FLASH
-
-  .preinit_array     :
-  {
-    PROVIDE_HIDDEN (__preinit_array_start = .);
-    KEEP (*(.preinit_array*))
-    PROVIDE_HIDDEN (__preinit_array_end = .);
-  } >FLASH
-  .init_array :
-  {
-    PROVIDE_HIDDEN (__init_array_start = .);
-    KEEP (*(SORT(.init_array.*)))
-    KEEP (*(.init_array*))
-    PROVIDE_HIDDEN (__init_array_end = .);
-  } >FLASH
-  .fini_array :
-  {
-    PROVIDE_HIDDEN (__fini_array_start = .);
-    KEEP (*(SORT(.fini_array.*)))
-    KEEP (*(.fini_array*))
-    PROVIDE_HIDDEN (__fini_array_end = .);
-  } >FLASH
-
-  /* used by the startup to initialize data */
-  _sidata = LOADADDR(.data);
-
-  /* Initialized data sections goes into RAM, load LMA copy after code */
-  .data : 
-  {
-    . = ALIGN(4);
-    _sdata = .;        /* create a global symbol at data start */
-    *(.data)           /* .data sections */
-    *(.data*)          /* .data* sections */
-
-    . = ALIGN(4);
-    _edata = .;        /* define a global symbol at data end */
-  } >RAM AT> FLASH
-
-  _siccmram = LOADADDR(.ccmram);
-
-  /* CCM-RAM section 
-  * 
-  * IMPORTANT NOTE! 
-  * If initialized variables will be placed in this section, 
-  * the startup code needs to be modified to copy the init-values.  
-  */
-  .ccmram :
-  {
-    . = ALIGN(4);
-    _sccmram = .;       /* create a global symbol at ccmram start */
-    *(.ccmram)
-    *(.ccmram*)
-    
-    . = ALIGN(4);
-    _eccmram = .;       /* create a global symbol at ccmram end */
-  } >CCMRAM AT> FLASH
-
-  
-  /* Uninitialized data section */
-  . = ALIGN(4);
-  .bss :
-  {
-    /* This is used by the startup in order to initialize the .bss secion */
-    _sbss = .;         /* define a global symbol at bss start */
-    __bss_start__ = _sbss;
-    *(.bss)
-    *(.bss*)
-    *(COMMON)
-
-    . = ALIGN(4);
-    _ebss = .;         /* define a global symbol at bss end */
-    __bss_end__ = _ebss;
-  } >RAM
-
-  /* User_heap_stack section, used to check that there is enough RAM left */
-  ._user_heap_stack :
-  {
-    . = ALIGN(4);
-    PROVIDE ( end = . );
-    PROVIDE ( _end = . );
-    . = . + _Min_Heap_Size;
-    . = . + _Min_Stack_Size;
-    . = ALIGN(4);
-  } >RAM
-
-  
-
-  /* Remove information from the standard libraries */
-  /DISCARD/ :
-  {
-    libc.a ( * )
-    libm.a ( * )
-    libgcc.a ( * )
-  }
-
-  .ARM.attributes 0 : { *(.ARM.attributes) }
-}

+ 0 - 267
hal/CMakeLists.txt

@@ -1,267 +0,0 @@
-PROJECT(stm32hal)
-
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-ENABLE_LANGUAGE(ASM)
-
-IF(NOT DEFINED CMSIS_INCLUDE_DIR)
-    FIND_PACKAGE(CMSIS REQUIRED)
-ENDIF()
-
-IF(${STM32_FAMILY} STREQUAL "F1")
-    IF(NOT STM32Cube_DIR)
-        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.1.0")
-        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
-    ENDIF()
-    
-    SET(HAL_HEADER_DIR ${STM32Cube_DIR}/Drivers/STM32F1xx_HAL_Driver/Inc)
-    SET(HAL_SOURCE_DIR ${STM32Cube_DIR}/Drivers/STM32F1xx_HAL_Driver/Src)
-    
-    SET(HAL_HEADERS
-        ${HAL_HEADER_DIR}/stm32f1xx_hal.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_adc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_adc_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_can.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_can_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_cec.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_conf_template.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_cortex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_crc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_dac.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_dac_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_def.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_dma.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_dma_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_eth.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_flash.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_flash_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_gpio.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_gpio_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_hcd.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_i2c.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_i2s.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_irda.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_iwdg.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_nand.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_nor.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_pccard.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_pcd.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_pcd_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_pwr.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_rcc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_rcc_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_rtc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_rtc_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_sd.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_smartcard.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_spi.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_sram.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_tim.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_tim_ex.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_uart.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_usart.h
-        ${HAL_HEADER_DIR}/stm32f1xx_hal_wwdg.h
-        ${HAL_HEADER_DIR}/stm32f1xx_ll_fsmc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_ll_sdmmc.h
-        ${HAL_HEADER_DIR}/stm32f1xx_ll_usb.h
-    )
-    
-    SET(HAL_SOURCES
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_adc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_adc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_can.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_cec.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_cortex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_crc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_dac.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_dac_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_dma.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_eth.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_flash.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_flash_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_gpio.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_gpio_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_hcd.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_i2c.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_i2s.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_irda.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_iwdg.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_msp_template.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_nand.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_nor.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_pccard.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_pcd.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_pcd_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_pwr.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_rcc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_rcc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_rtc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_rtc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_sd.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_smartcard.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_spi.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_spi_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_sram.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_tim.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_tim_ex.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_uart.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_usart.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_hal_wwdg.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_ll_fsmc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_ll_sdmmc.c
-        ${HAL_SOURCE_DIR}/stm32f1xx_ll_usb.c
-    )
-    
-    INSTALL(FILES ${HAL_HEADER_DIR}/Legacy/stm32_hal_legacy.h DESTINATION include/stm32f1/Legacy)
-ELSEIF(${STM32_FAMILY} STREQUAL "F4")
-    IF(NOT STM32Cube_DIR)
-        SET(STM32Cube_DIR "/opt/STM32Cube_FW_F4_V1.6.0")
-        MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
-    ENDIF()
-    
-    SET(HAL_HEADER_DIR ${STM32Cube_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc)
-    SET(HAL_SOURCE_DIR ${STM32Cube_DIR}/Drivers/STM32F4xx_HAL_Driver/Src)
-    
-    SET(HAL_HEADERS         
-        ${HAL_HEADER_DIR}/stm32f4xx_hal.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_adc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_adc_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_can.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_cec.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_conf_template.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_cortex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_crc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_cryp.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_cryp_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dac.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dac_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dcmi.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dcmi_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_def.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dma.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dma2d.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_dma_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_eth.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_flash.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_flash_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_flash_ramfunc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_fmpi2c.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_fmpi2c_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_gpio.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_gpio_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_hash.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_hash_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_hcd.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_i2c.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_i2c_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_i2s.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_i2s_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_irda.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_iwdg.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_ltdc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_nand.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_nor.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_pccard.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_pcd.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_pcd_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_pwr.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_pwr_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_qspi.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_rcc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_rcc_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_rng.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_rtc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_rtc_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_sai.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_sai_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_sd.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_sdram.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_smartcard.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_spdifrx.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_spi.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_sram.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_tim.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_tim_ex.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_uart.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_usart.h
-        ${HAL_HEADER_DIR}/stm32f4xx_hal_wwdg.h
-        ${HAL_HEADER_DIR}/stm32f4xx_ll_fmc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_ll_fsmc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_ll_sdmmc.h
-        ${HAL_HEADER_DIR}/stm32f4xx_ll_usb.h
-    )
-    
-    SET(HAL_SOURCES
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_adc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_adc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_can.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_cec.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_cortex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_crc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_cryp.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_cryp_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dac.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dac_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dcmi.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dcmi_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma2d.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_eth.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash_ramfunc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_fmpi2c.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_fmpi2c_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_gpio.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_hash.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_hash_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_hcd.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2c.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2c_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2s.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2s_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_irda.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_iwdg.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_ltdc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_msp_template.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_nand.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_nor.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_pccard.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_pcd.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_pcd_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_pwr.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_pwr_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_qspi.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_rcc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_rcc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_rng.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_rtc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_rtc_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_sai.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_sai_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_sd.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_sdram.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_smartcard.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_spdifrx.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_spi.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_sram.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_tim.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_tim_ex.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_uart.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_usart.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_hal_wwdg.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_ll_fmc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_ll_fsmc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_ll_sdmmc.c
-        ${HAL_SOURCE_DIR}/stm32f4xx_ll_usb.c
-    )
-    
-    INSTALL(FILES ${HAL_HEADER_DIR}/Legacy/stm32_hal_legacy.h DESTINATION include/stm32f4/Legacy)
-ENDIF()
-
-STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
-
-INSTALL(FILES ${HAL_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})
-INSTALL(FILES ${HAL_SOURCES} DESTINATION share/stm32hal/${STM32_FAMILY_LOWER})

+ 1 - 1
stm32-blinky/CMakeLists.txt

@@ -8,7 +8,7 @@ FIND_PACKAGE(STM32HAL REQUIRED)
 
 INCLUDE_DIRECTORIES(
     ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMSIS_INCLUDE_DIR}
+    ${CMSIS_INCLUDE_DIRS}
     ${STM32HAL_INCLUDE_DIR}
 )
 

+ 1 - 1
stm32-newlib/CMakeLists.txt

@@ -8,7 +8,7 @@ FIND_PACKAGE(STM32HAL REQUIRED)
 
 INCLUDE_DIRECTORIES(
     ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMSIS_INCLUDE_DIR}
+    ${CMSIS_INCLUDE_DIRS}
     ${STM32HAL_INCLUDE_DIR}
 )
 

+ 1 - 1
stm32-template/CMakeLists.txt

@@ -8,7 +8,7 @@ FIND_PACKAGE(CMSIS REQUIRED)
 
 INCLUDE_DIRECTORIES(
     ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMSIS_INCLUDE_DIR}
+    ${CMSIS_INCLUDE_DIRS}
     #${STM32HAL_INCLUDE_DIR}
 )