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

ChibiOS support for L0 family.

Konstantin Oblaukhov 9 лет назад
Родитель
Сommit
9a895d4f45
3 измененных файлов с 80 добавлено и 1 удалено
  1. 56 1
      cmake/ChibiOS16_HAL.cmake
  2. 12 0
      cmake/ChibiOS16_NIL.cmake
  3. 12 0
      cmake/ChibiOS16_RT.cmake

+ 56 - 1
cmake/ChibiOS16_HAL.cmake

@@ -1,5 +1,5 @@
 SET(CHIBIOS_HAL_LIB_MODULES chprintf memstreams nullstreams)
-SET(CHIBIOS_HAL_MODULES adc can dac ext gpt i2c i2s icu mac mmc_spi mmcsd pal pwm rtc sdc serial serial_usb spi st uart usb)
+SET(CHIBIOS_HAL_MODULES adc can dac ext gpt i2c i2s icu mac mmc_spi mmcsd pal pwm rtc sdc serial serial_usb spi st uart usb wdg)
 
 IF(${CHIBIOS_KERNEL} STREQUAL nil)
   SET(CHIBIOS_OSAL_PATH ${CHIBIOS_ROOT}/os/hal/osal/nil)
@@ -194,6 +194,61 @@ ELSEIF(STM32_FAMILY STREQUAL "F4")
             SET(CHIBIOS_${module}_PLATFORM_SOURCES ${CHIBIOS_ext_PLATFORM_SOURCES} ext_lld_isr.c)
         ENDIF()
 
+        MATH(EXPR INDEX "${INDEX} + 1")
+    ENDFOREACH()
+ELSEIF(STM32_FAMILY STREQUAL "L0")
+    SET(CHIBIOS_HAL_PLATFORM_MODULES adc can dac ext gpt i2c icu pal pwm rtc serial spi st uart usb wdg)
+    SET(CHIBIOS_HAL_PLATFORM_MODULES_PATHES
+      LLD/ADCv1
+      LLD/CANv1
+      LLD/DACv1
+      LLD/EXTIv1
+      LLD/TIMv1
+      LLD/I2Cv2
+      LLD/TIMv1
+      LLD/GPIOv2
+      LLD/TIMv1
+      LLD/RTCv2
+      LLD/USARTv2
+      LLD/SPIv1
+      LLD/TIMv1
+      LLD/USARTv2
+      LLD/USBv1
+      LLD/xWDGv1
+    )
+
+    SET(CHIBIOS_hal_PLATFORM_SEARCH_PATH
+        ${CHIBIOS_ROOT}/os/hal/ports/common/ARMCMx
+        ${CHIBIOS_ROOT}/os/hal/ports/STM32/STM32L0xx
+        ${CHIBIOS_ROOT}/os/hal/ports/STM32/LLD/TIMv1
+        ${CHIBIOS_ROOT}/os/hal/ports/STM32/LLD/DMAv1
+    )
+    SET(CHIBIOS_hal_PLATFORM_SEARCH_HEADERS
+        hal_lld.h
+        stm32_dma.h
+        nvic.h
+        st_lld.h
+    )
+    SET(CHIBIOS_hal_PLATFORM_SOURCES
+        hal_lld.c
+        stm32_dma.c
+        nvic.c
+        st_lld.c
+    )
+    SET(INDEX 0)
+    FOREACH(module ${CHIBIOS_HAL_PLATFORM_MODULES})
+        LIST(GET CHIBIOS_HAL_PLATFORM_MODULES_PATHES ${INDEX} path)
+
+        SET(CHIBIOS_${module}_PLATFORM_SEARCH_PATH ${CHIBIOS_ROOT}/os/hal/ports/STM32/${path})
+        SET(CHIBIOS_${module}_PLATFORM_SEARCH_HEADERS ${module}_lld.h)
+        SET(CHIBIOS_${module}_PLATFORM_SOURCES ${module}_lld.c)
+
+        IF(${module} STREQUAL ext)
+            SET(CHIBIOS_${module}_PLATFORM_SEARCH_PATH ${CHIBIOS_ext_PLATFORM_SEARCH_PATH} ${CHIBIOS_ROOT}/os/hal/ports/STM32/STM32L0xx)
+            SET(CHIBIOS_${module}_PLATFORM_SEARCH_HEADERS ${CHIBIOS_ext_PLATFORM_SEARCH_HEADERS} ext_lld_isr.h)
+            SET(CHIBIOS_${module}_PLATFORM_SOURCES ${CHIBIOS_ext_PLATFORM_SOURCES} ext_lld_isr.c)
+        ENDIF()
+
         MATH(EXPR INDEX "${INDEX} + 1")
     ENDFOREACH()
 ENDIF()

+ 12 - 0
cmake/ChibiOS16_NIL.cmake

@@ -54,4 +54,16 @@ ELSEIF(STM32_FAMILY STREQUAL "F4")
     stm32f4xx.h
     cmparams.h
   )
+ELSEIF(STM32_FAMILY STREQUAL "L0")
+  SET(CHIBIOS_nil_SOURCES  ${CHIBIOS_nil_SOURCES} crt0_v6m.s nilcore_v6m.c nilcoreasm_v6m.s)
+  SET(CHIBIOS_nil_PLATFORM_SEARCH_PATH
+    ${CHIBIOS_ROOT}/os/common/ports/ARMCMx/devices/STM32L0xx
+    ${CHIBIOS_ROOT}/os/ext/CMSIS/include
+    ${CHIBIOS_ROOT}/os/ext/CMSIS/ST/STM32L0xx/
+  )
+  SET(CHIBIOS_nil_PLATFORM_SEARCH_HEADERS
+    core_cm0plus.h
+    stm32l0xx.h
+    cmparams.h
+  )
 ENDIF()

+ 12 - 0
cmake/ChibiOS16_RT.cmake

@@ -74,4 +74,16 @@ ELSEIF(STM32_FAMILY STREQUAL "F4")
     stm32f4xx.h
     cmparams.h
   )
+ELSEIF(STM32_FAMILY STREQUAL "L0")
+  SET(CHIBIOS_rt_SOURCES  ${CHIBIOS_rt_SOURCES} crt0_v6m.s chcore_v6m.c chcoreasm_v6m.s)
+  SET(CHIBIOS_rt_PLATFORM_SEARCH_PATH
+    ${CHIBIOS_ROOT}/os/common/ports/ARMCMx/devices/STM32L0xx
+    ${CHIBIOS_ROOT}/os/ext/CMSIS/include
+    ${CHIBIOS_ROOT}/os/ext/CMSIS/ST/STM32L0xx/
+  )
+  SET(CHIBIOS_rt_PLATFORM_SEARCH_HEADERS
+    core_cm0plus.h
+    stm32l0xx.h
+    cmparams.h
+  )
 ENDIF()