فهرست منبع

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

Konstantin Oblaukhov 10 سال پیش
والد
کامیت
4f8ef7a094
10فایلهای تغییر یافته به همراه71 افزوده شده و 701 حذف شده
  1. 3 17
      README.mediawiki
  2. 58 28
      cmake/FindCMSIS.cmake
  3. 7 1
      cmake/FindSTM32HAL.cmake
  4. 0 92
      cmsis/CMakeLists.txt
  5. 0 136
      cmsis/stm32f1.ld.in
  6. 0 157
      cmsis/stm32f4.ld.in
  7. 0 267
      hal/CMakeLists.txt
  8. 1 1
      stm32-blinky/CMakeLists.txt
  9. 1 1
      stm32-newlib/CMakeLists.txt
  10. 1 1
      stm32-template/CMakeLists.txt

+ 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}
 )