some chibios experiments

This commit is contained in:
Jack Humbert 2023-04-05 18:27:47 -04:00
parent a1cb005981
commit cc22d67b32
22 changed files with 299 additions and 211 deletions

View File

@ -1,5 +1,7 @@
include(ParseMakefile)
# STM32F303
set(MCU "cortex-m4")
set(ARMV 7)
set(MCU_FAMILY "STM32")
@ -10,220 +12,207 @@ set(BOARD "GENERIC_STM32_F303XC")
set(USE_FPU TRUE)
set(UF2_FAMILY "STM32F3")
set(STM32_BOOTLOADER_ADDRESS 0x1FFFD800)
set(EEPROM_DRIVER "wear_leveling" CACHE STRING "" FORCE)
set(MCU_PORT_NAME ${MCU_FAMILY})
# platforms/chibios/platform.mk
if(NOT DEFINED MCU_PORT_NAME)
set(MCU_PORT_NAME ${MCU_FAMILY})
endif()
set(MCU_ARCH ${MCU})
set(CHIBIOS_PORT "ARMv${ARMV}-M")
set(PLATFORM_NAME platform)
if(NOT DEFINED CHIBIOS_PORT)
set(CHIBIOS_PORT "ARMv${ARMV}-M")
endif()
if(NOT DEFINED PLATFORM_NAME)
set(PLATFORM_NAME platform)
endif()
set(CHIBIOS ${CMAKE_SOURCE_DIR}/lib/chibios)
set(CHIBIOS_CONTRIB ${CMAKE_SOURCE_DIR}/lib/chibios-contrib)
set(EEPROM_DRIVER "wear_leveling" CACHE STRING "" FORCE)
# target_compile_definitions(qmk PUBLIC
# __ARM_ARCH_7M__
# STM32F303xC
# )
# port*.mk
include(chibios/ports/${CHIBIOS_PORT})
# F3 sources
set(CHIBIOS_PORT_SRCS
# RT
chcore.c
chcoreasm.S
# platform.mk
include(chibios/ports/${MCU_SERIES})
# startup_*.mk - might need to convert these
find_file(STARTUP_MK startup_${MCU_STARTUP}.mk
${CHIBIOS}/os/common/ports/ARMCMx/compilers/GCC/mk
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC/mk
${CHIBIOS_CONTRIB}/os/common/startup/ARMCMx/compilers/GCC/mk
)
foreach(SRC_FILE ${CHIBIOS_PORT_SRCS})
set(CHIBIOS_F3_SRC_FILE SRC_FILE-NOTFOUND)
find_file(CHIBIOS_F3_SRC_FILE ${SRC_FILE}
PATHS
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC
${CHIBIOS}/os/common/ports/ARMv7-M
CMAKE_FIND_ROOT_PATH_BOTH
)
ParseMakefile(${STARTUP_MK})
target_sources(qmk PUBLIC ${STARTUPSRC} ${STARTUPASM})
target_include_directories(qmk PUBLIC ${STARTUPINC})
target_sources(qmk PUBLIC ${CHIBIOS_F3_SRC_FILE})
endforeach()
# board paths - we should just standardize these
find_path(BOARD_PATH
NAMES
boards/${BOARD}/board.mk
board/board.mk
PATHS
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}
)
find_file(BOARD_MK board.mk
${BOARD_PATH}/boards/${BOARD}
${BOARD_PATH}/board
)
ParseMakefile(${BOARD_MK})
target_sources(qmk PUBLIC ${BOARDSRC})
target_include_directories(qmk PUBLIC ${BOARDINC})
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/common/ports/ARMv7-M
${CHIBIOS}/os/hal/boards/ST_STM32F3_DISCOVERY
# bootloader
if(DEFINED STM32_BOOTLOADER_ADDRESS)
target_compile_definitions(qmk PUBLIC STM32_BOOTLOADER_ADDRESS=${STM32_BOOTLOADER_ADDRESS})
endif()
if(DEFINED WB32_BOOTLOADER_ADDRESS)
target_compile_definitions(qmk PUBLIC WB32_BOOTLOADER_ADDRESS=${WB32_BOOTLOADER_ADDRESS})
endif()
find_file(BOOTLOADER_DEFS_H bootloader_defs.h
${QMK_KEYBOARD_FOLDER}
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
${BOARD_PATH}/configs
)
if(EXISTS ${BOOTLOADER_DEFS_H})
target_compile_options(qmk PUBLIC -include ${BOOTLOADER_DEFS_H})
endif()
# chconf directories
find_path(CHCONFDIR chconf.h
${QMK_KEYBOARD_FOLDER}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
)
target_include_directories(qmk PUBLIC ${CHCONFDIR})
# halconf directories
find_path(HALCONFDIR halconf.h
${QMK_KEYBOARD_FOLDER}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
)
target_include_directories(qmk PUBLIC ${HALCONFDIR})
# linker script
find_file(LDSCRIPT ${MCU_LDSCRIPT}.ld
${QMK_KEYBOARD_FOLDER}/ld
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/ld
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/ld
)
# F3 HAL specific
# os/hal/hal.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/src/hal.c
${CHIBIOS}/os/hal/src/hal_st.c
${CHIBIOS}/os/hal/src/hal_buffers.c
${CHIBIOS}/os/hal/src/hal_queues.c
${CHIBIOS}/os/hal/src/hal_flash.c
${CHIBIOS}/os/hal/src/hal_mmcsd.c
${CHIBIOS}/os/hal/src/hal_adc.c
${CHIBIOS}/os/hal/src/hal_can.c
${CHIBIOS}/os/hal/src/hal_crypto.c
${CHIBIOS}/os/hal/src/hal_dac.c
${CHIBIOS}/os/hal/src/hal_efl.c
${CHIBIOS}/os/hal/src/hal_gpt.c
${CHIBIOS}/os/hal/src/hal_i2c.c
${CHIBIOS}/os/hal/src/hal_i2s.c
${CHIBIOS}/os/hal/src/hal_icu.c
${CHIBIOS}/os/hal/src/hal_mac.c
${CHIBIOS}/os/hal/src/hal_mmc_spi.c
${CHIBIOS}/os/hal/src/hal_pal.c
${CHIBIOS}/os/hal/src/hal_pwm.c
${CHIBIOS}/os/hal/src/hal_rtc.c
${CHIBIOS}/os/hal/src/hal_sdc.c
${CHIBIOS}/os/hal/src/hal_serial.c
${CHIBIOS}/os/hal/src/hal_serial_usb.c
${CHIBIOS}/os/hal/src/hal_sio.c
${CHIBIOS}/os/hal/src/hal_spi.c
${CHIBIOS}/os/hal/src/hal_trng.c
${CHIBIOS}/os/hal/src/hal_uart.c
${CHIBIOS}/os/hal/src/hal_usb.c
${CHIBIOS}/os/hal/src/hal_wdg.c
${CHIBIOS}/os/hal/src/hal_wspi.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/common/ARMCMx
${CHIBIOS}/os/hal/include
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
${CHIBIOS}/os/common/portability/GCC
${CHIBIOS}/os/common/ports/ARM-common
${CHIBIOS}/os/common/ports/ARMv7-M
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC
${CHIBIOS}/os/common/startup/ARMCMx/devices/STM32F3xx
${CHIBIOS}/os/common/ext/ARM/CMSIS/Core/Include
${CHIBIOS}/os/common/ext/ST/STM32F3xx
${CHIBIOS}/os/hal/ports/STM32/LLD/ADCv3
${CHIBIOS}/os/hal/ports/STM32/LLD/CANv1
${CHIBIOS}/os/hal/ports/STM32/LLD/DACv1
${CHIBIOS}/os/hal/ports/STM32/LLD/DMAv1
${CHIBIOS}/os/hal/ports/STM32/LLD/EXTIv1
${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2
${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2
${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2
# ${CHIBIOS}/os/hal/ports/STM32/LLD/SDIOv1
${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1
${CHIBIOS}/os/hal/ports/STM32/LLD/SYSTICKv1
${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1
# ${CHIBIOS}/os/hal/ports/STM32/LLD/USART
${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2
${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
${CHIBIOS}/os/hal/ports/STM32/LLD/xWDGv1
)
# source files for ChibiOS HAL
set(CHIBIOS_HAL_SRCS
# startup code
crt1.c
vectors.S
crt0_v7m.S
nvic.c
stm32_isr.c
# HAL-OSAL files
hal.c
hal_st.c
hal_buffers.c
hal_queues.c
hal_flash.c
hal_mmcsd.c
hal_adc.c
hal_can.c
# hal_crypto.c
hal_dac.c
hal_efl.c
hal_gpt.c
hal_i2c.c
hal_i2s.c
hal_icu.c
hal_mac.c
hal_mmc_spi.c
hal_pal.c
hal_pwm.c
hal_rtc.c
hal_sdc.c
hal_serial.c
hal_serial_usb.c
hal_sio.c
hal_spi.c
hal_trng.c
hal_uart.c
hal_usb.c
hal_wdg.c
hal_wspi.c
# LLD HAL files
hal_lld.c
hal_adc_lld.c
hal_can_lld.c
hal_crypto_lld.c
hal_dac_lld.c
stm32_dma.c
stm32_exti.c
hal_pal_lld.c
hal_i2c_lld.c
hal_mac_lld.c
hal_usb_lld.c
hal_wspi_lld.c
hal_trng_lld.c
hal_rtc_lld.c
hal_sdc_lld.c
hal_i2s_lld.c
hal_spi_v2_lld.c
hal_st_lld.c
hal_gpt_lld.c
hal_icu_lld.c
hal_pwm_lld.c
hal_serial_lld.c
hal_uart_lld.c
hal_wdg_lld.c
# OSAL
osal.c
board.c
# os/hal/osal/rt-nil/osal.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/osal/rt-nil/osal.c
)
foreach(SRC_FILE ${CHIBIOS_HAL_SRCS})
set(CHIBIOS_HAL_SRC_FILE SRC_FILE -NOTFOUND)
find_file(CHIBIOS_HAL_SRC_FILE ${SRC_FILE}
PATHS
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC
${CHIBIOS}/os/hal/src
${CHIBIOS}/os/hal/ports/common/ARMCMx
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
${CHIBIOS}/os/hal/ports/STM32/LLD/ADCv3
${CHIBIOS}/os/hal/ports/STM32/LLD/CANv1
${CHIBIOS}/os/hal/ports/STM32/LLD/DACv1
${CHIBIOS}/os/hal/ports/STM32/LLD/DMAv1
${CHIBIOS}/os/hal/ports/STM32/LLD/EXTIv1
${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2
${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2
${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2
${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2
${CHIBIOS}/os/hal/ports/STM32/LLD/SYSTICKv1
${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1
${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1
${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
${CHIBIOS}/os/hal/ports/STM32/LLD/xWDGv1
# ${OSHAL_PATH}
# ${CHIBIOS_BOARD_DEFINITIONS_PATH}
CMAKE_FIND_ROOT_PATH_BOTH
)
if(EXISTS "${CHIBIOS_HAL_SRC_FILE}")
target_sources(qmk PUBLIC ${CHIBIOS_HAL_SRC_FILE})
endif()
endforeach()
# chibios
target_include_directories(qmk PUBLIC
# ${CHIBIOS}/os/hal/include
# ${CHIBIOS}/os/hal/osal/sb
# ${CHIBIOS}/os/common/portability/GCC
# ${CHIBIOS}/os/sb/user
# ${CHIBIOS}/os/sb/common
${CHIBIOS}/os
${CHIBIOS}/os/license
${CHIBIOS}/os/hal/ports/common/ARMCMx
${CHIBIOS}/os/hal/include
${CHIBIOS}/os/hal/osal/rt-nil
${CHIBIOS}/os/oslib/include
)
# os/rt/rt.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/rt/src/chsys.c
${CHIBIOS}/os/rt/src/chrfcu.c
${CHIBIOS}/os/rt/src/chdebug.c
${CHIBIOS}/os/rt/src/chtrace.c
${CHIBIOS}/os/rt/src/chvt.c
${CHIBIOS}/os/rt/src/chschd.c
${CHIBIOS}/os/rt/src/chinstances.c
${CHIBIOS}/os/rt/src/chthreads.c
${CHIBIOS}/os/rt/src/chsys.c
${CHIBIOS}/os/rt/src/chrfcu.c
${CHIBIOS}/os/rt/src/chdebug.c
${CHIBIOS}/os/rt/src/chtrace.c
${CHIBIOS}/os/rt/src/chvt.c
${CHIBIOS}/os/rt/src/chschd.c
${CHIBIOS}/os/rt/src/chinstances.c
${CHIBIOS}/os/rt/src/chthreads.c
${CHIBIOS}/os/rt/src/chtm.c
${CHIBIOS}/os/rt/src/chstats.c
${CHIBIOS}/os/rt/src/chregistry.c
${CHIBIOS}/os/rt/src/chsem.c
${CHIBIOS}/os/rt/src/chmtx.c
${CHIBIOS}/os/rt/src/chcond.c
${CHIBIOS}/os/rt/src/chevents.c
${CHIBIOS}/os/rt/src/chmsg.c
${CHIBIOS}/os/rt/src/chdynamic.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/rt/include
${CHIBIOS}/os/hal/ports/STM32/${MCU_SERIES}
${CHIBIOS}/os/common/ports/ARMv7-M
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC
${CHIBIOS}/os/common/abstractions/cmsis_os
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC
${CHIBIOS}/os/common/ext/CMSIS/include
${CHIBIOS}/os/common/ext/CMSIS/ST/${MCU_SERIES}
)
# os/oslib/oslib.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/oslib/src/chmboxes.c
${CHIBIOS}/os/oslib/src/chmemcore.c
${CHIBIOS}/os/oslib/src/chmemheaps.c
${CHIBIOS}/os/oslib/src/chmempools.c
${CHIBIOS}/os/oslib/src/chpipes.c
${CHIBIOS}/os/oslib/src/chobjcaches.c
${CHIBIOS}/os/oslib/src/chdelegates.c
${CHIBIOS}/os/oslib/src/chfactory.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/oslib/include
)
# os/hal/lib/streams/streams.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/lib/streams/chprintf.c
${CHIBIOS}/os/hal/lib/streams/chscanf.c
${CHIBIOS}/os/hal/lib/streams/memstreams.c
${CHIBIOS}/os/hal/lib/streams/nullstreams.c
${CHIBIOS}/os/hal/lib/streams/bufstreams.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/lib/streams
)
# resume platform.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/various/syscalls.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/license
${CHIBIOS}/os/oslib/include
${CHIBIOS}/os/various
)

View File

@ -12,14 +12,19 @@ function(ParseMakefile MKFile)
endfunction()
macro(_ParseMakefile MKFile)
message(STATUS "Parsing ${MKFile}")
file(READ "${MKFile}" FileContents)
string(REPLACE "\\\n" "" FileContents ${FileContents})
string(REPLACE "\n" ";" FileLines ${FileContents})
string(REGEX REPLACE "\\\\\r?\n *" " " FileContents ${FileContents})
string(REGEX REPLACE "\r?\n" ";" FileLines ${FileContents})
list(REMOVE_ITEM FileLines "")
foreach(line ${FileLines})
# if(line MATCHES "$\\((.+)\\)")
# string(REPLACE "(${CMAKE_MATCH_1})" "{${CMAKE_MATCH_1}}" line ${line})
# if(line MATCHES "\\$\\((.+)\\)")
# set(MAKE_VARIABLE "${CMAKE_MATCH_1}")
# string(REPLACE "$(${MAKE_VARIABLE})" "${${MAKE_VARIABLE}}" line ${line})
# endif()
# message(STATUS "From: ${line}")
string(REGEX REPLACE "\\$\\(([^\\(\\)]+)\\)" "${CHIBIOS}" line ${line})
# message(STATUS "To : ${line}")
# if(line MATCHES "^include (.+)$")
# set(MAKE_CHILD ${CMAKE_MATCH_1})
# message(STATUS "Reading ${MAKE_CHILD}")

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3/hal_adc_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1/hal_can_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1/hal_dac_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1/stm32_dma.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1/stm32_exti.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2/hal_pal_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2)

View File

@ -0,0 +1,7 @@
if(${USE_HAL_I2C_FALLBACK})
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C/hal_i2c_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C)
else()
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2/hal_i2c_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2)
endif()

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2/hal_rtc_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2)

View File

@ -0,0 +1,5 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_i2s_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_spi_v2_lld.c
)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2)

View File

@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1/hal_st_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1)

View File

@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_gpt_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_icu_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_pwm_lld.c
)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1)

View File

@ -0,0 +1,9 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_serial_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_sio_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_uart_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USART
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2
)

View File

@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1/hal_usb_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1
)

View File

@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1/hal_wdg_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1
)

View File

@ -0,0 +1,10 @@
# os/common/ports/ARMv7/compilers/GCC/mk/port.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/common/ports/ARMv7-M/chcore.c
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC/chcoreasm.S
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/common/portability/GCC
${CHIBIOS}/os/common/ports/ARM-common
${CHIBIOS}/os/common/ports/ARMv7-M
)

View File

@ -0,0 +1,25 @@
# os/hal/ports/STM32/STM32F3xx/platform.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/stm32_isr.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_lld.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_efl_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/common/ARMCMx
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
)
include(chibios/LLD/ADCv3)
include(chibios/LLD/CANv1)
include(chibios/LLD/DACv1)
include(chibios/LLD/DMAv1)
include(chibios/LLD/EXTIv1)
include(chibios/LLD/GPIOv2)
include(chibios/LLD/I2Cv2)
include(chibios/LLD/RTCv2)
include(chibios/LLD/SPIv2)
include(chibios/LLD/SYSTICKv1)
include(chibios/LLD/TIMv1)
include(chibios/LLD/USARTv2)
include(chibios/LLD/USBv1)
include(chibios/LLD/xWDGv1)

View File

@ -1,4 +1,4 @@
find_package(chibios REQUIRED)
find_package(Chibios REQUIRED)
target_link_options(qmk PUBLIC
-mcpu=${QMK_MCU}
@ -30,8 +30,12 @@ else()
)
endif()
# add_library(platforms_chibios)
target_sources(qmk PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/syscall-fallbacks.c
${CMAKE_CURRENT_SOURCE_DIR}/wait.c
${CMAKE_CURRENT_SOURCE_DIR}/synchronization_util.c
)
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/boards/common/configs)
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}/configs)
# target_link_libraries(platforms_chibios ${QMK_TARGET})
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}/configs)

View File

@ -33,7 +33,3 @@ target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bootmagic)
# target_link_libraries(quantum platforms_${QMK_PLATFORM})
# target_link_libraries(quantum tmk_core_protocol)
# target_link_libraries(quantum tmk_core_protocol_${QMK_PROTOCOL})
# if no printf
target_sources(qmk PUBLIC ${CMAKE_SOURCE_DIR}/lib/printf/src/printf/printf.c)
target_include_directories(qmk PUBLIC ${CMAKE_SOURCE_DIR}/lib/printf/src/printf)

View File

@ -12,7 +12,11 @@ target_sources(qmk PUBLIC
usb_util.c
)
find_package(chibios REQUIRED)
find_package(Chibios REQUIRED)
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lufa_utils)
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lufa_utils)
# if no printf
target_sources(qmk PUBLIC ${CMAKE_SOURCE_DIR}/lib/printf/src/printf/printf.c)
target_include_directories(qmk PUBLIC ${CMAKE_SOURCE_DIR}/lib/printf/src/printf)

View File

@ -19,7 +19,7 @@ target_sources(qmk PUBLIC
usb_util.c
)
find_package(lufa REQUIRED)
find_package(Lufa REQUIRED)
# target_compile_definitions(lufa PUBLIC ${COMPILE_DEFINITIONS})
target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})