Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cleaner version #10690

Draft
wants to merge 20 commits into
base: maintenance-8.x.x
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cmake/cortex-m7.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ set(CORTEX_M7_COMMON_OPTIONS
-mcpu=cortex-m7
-mfloat-abi=hard
-mfpu=fpv5-sp-d16
#-mfpu=fpv5-d16
-fsingle-precision-constant
-Wdouble-promotion
-fdata-sections -ffunction-sections
)

set(CORTEX_M7_COMPILE_OPTIONS
Expand Down
1 change: 1 addition & 0 deletions cmake/stm32.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ include(stm32-bootloader)
include(stm32f4)
include(stm32f7)
include(stm32h7)
include(stm32h7a3)

include(CMakeParseArguments)

Expand Down
1 change: 0 additions & 1 deletion cmake/stm32h7.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -222,4 +222,3 @@ macro(define_target_stm32h7 subfamily size)
endmacro()

define_target_stm32h7(43 i)
define_target_stm32h7(A3 i)
41 changes: 41 additions & 0 deletions cmake/stm32h7a3-usb.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
set(STM32H7A3_USBCORE_DIR "${MAIN_LIB_DIR}/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core")
set(STM32H7A3_USBCORE_SRC
usbd_core.c
usbd_ctlreq.c
usbd_ioreq.c
)
list(TRANSFORM STM32H7A3_USBCORE_SRC PREPEND "${STM32H7A3_USBCORE_DIR}/Src/")

set(STM32H7A3_USBCDC_DIR "${MAIN_LIB_DIR}/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC")
set(STM32H7A3_USBCDC_SRC
usbd_cdc.c
)
list(TRANSFORM STM32H7A3_USBCDC_SRC PREPEND "${STM32H7A3_USBCDC_DIR}/Src/")

set(STM32H7A3_USBHID_DIR "${MAIN_LIB_DIR}/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID")
set(STM32H7A3_USBHID_SRC
usbd_hid.c
)
list(TRANSFORM STM32H7A3_USBHID_SRC PREPEND "${STM32H7A3_USBHID_DIR}/Src/")

set(STM32H7A3_USBMSC_DIR "${MAIN_LIB_DIR}/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC")
set(STM32H7A3_USBMSC_SRC
usbd_msc.c
usbd_msc_bot.c
usbd_msc_data.c
usbd_msc_scsi.c
)
list(TRANSFORM STM32H7A3_USBMSC_SRC PREPEND "${STM32H7A3_USBMSC_DIR}/Src/")

set(STM32H7A3_USB_INCLUDE_DIRS
"${STM32H7A3_USBCORE_DIR}/Inc"
"${STM32H7A3_USBCDC_DIR}/Inc"
"${STM32H7A3_USBHID_DIR}/Inc"
"${STM32H7A3_USBMSC_DIR}/Inc"
)

list(APPEND STM32H7A3_USB_SRC ${STM32H7A3_USBCORE_SRC})
list(APPEND STM32H7A3_USB_SRC ${STM32H7A3_USBCDC_SRC})
list(APPEND STM32H7A3_USB_SRC ${STM32H7A3_USBHID_SRC})
#XXX: Not working yet
#list(APPEND STM32H7A3_USB_SRC ${STM32H7A3_USBMSC_SRC})
235 changes: 235 additions & 0 deletions cmake/stm32h7a3.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
include(cortex-m7)
include(stm32h7a3-usb)

set(STM32H7A3_CMSIS_DEVICE_DIR "${MAIN_LIB_DIR}/main/STM32H7/Drivers/CMSIS/Device/ST/STM32H7xx")
set(STM32H7A3_HAL_DIR "${MAIN_LIB_DIR}/main/STM32H7/Drivers/STM32H7xx_HAL_Driver")

set(STM32H7A3_HAL_SRC
stm32h7xx_hal.c
stm32h7xx_hal_adc.c
stm32h7xx_hal_adc_ex.c
stm32h7xx_hal_cec.c
stm32h7xx_hal_comp.c
stm32h7xx_hal_cortex.c
stm32h7xx_hal_crc.c
stm32h7xx_hal_crc_ex.c
# stm32h7xx_hal_cryp.c
# stm32h7xx_hal_cryp_ex.c
stm32h7xx_hal_dac.c
stm32h7xx_hal_dac_ex.c
# stm32h7xx_hal_dcmi.c
# stm32h7xx_hal_dfsdm.c
# stm32h7xx_hal_dfsdm_ex.c
stm32h7xx_hal_dma.c
stm32h7xx_hal_dma2d.c
stm32h7xx_hal_dma_ex.c
# stm32h7xx_hal_dsi.c
stm32h7xx_hal_dts.c
# stm32h7xx_hal_eth.c
# stm32h7xx_hal_eth_ex.c
stm32h7xx_hal_exti.c
# stm32h7xx_hal_fdcan.c
stm32h7xx_hal_flash.c
stm32h7xx_hal_flash_ex.c
stm32h7xx_hal_gfxmmu.c
stm32h7xx_hal_gpio.c
# stm32h7xx_hal_hash.c
# stm32h7xx_hal_hash_ex.c
# stm32h7xx_hal_hcd.c
# stm32h7xx_hal_hrtim.c
stm32h7xx_hal_hsem.c
stm32h7xx_hal_i2c.c
stm32h7xx_hal_i2c_ex.c
# stm32h7xx_hal_i2s.c
# stm32h7xx_hal_i2s_ex.c
# stm32h7xx_hal_irda.c
# stm32h7xx_hal_iwdg.c
# stm32h7xx_hal_jpeg.c
# stm32h7xx_hal_lptim.c
# stm32h7xx_hal_ltdc.c
# stm32h7xx_hal_ltdc_ex.c
# stm32h7xx_hal_mdios.c
stm32h7xx_hal_mdma.c
stm32h7xx_hal_mmc.c
stm32h7xx_hal_mmc_ex.c
# stm32h7xx_hal_nand.c
# stm32h7xx_hal_nor.c
# stm32h7xx_hal_opamp.c
# stm32h7xx_hal_opamp_ex.c
stm32h7xx_hal_ospi.c
stm32h7xx_hal_otfdec.c
stm32h7xx_hal_pcd.c
stm32h7xx_hal_pcd_ex.c
stm32h7xx_hal_pssi.c
stm32h7xx_hal_pwr.c
stm32h7xx_hal_pwr_ex.c
stm32h7xx_hal_qspi.c
# stm32h7xx_hal_ramecc.c
stm32h7xx_hal_rcc.c
stm32h7xx_hal_rcc_ex.c
stm32h7xx_hal_rng.c
stm32h7xx_hal_rng_ex.c
stm32h7xx_hal_rtc.c
stm32h7xx_hal_rtc_ex.c
# stm32h7xx_hal_sai.c
# stm32h7xx_hal_sai_ex.c
stm32h7xx_hal_sd.c
stm32h7xx_hal_sd_ex.c
# stm32h7xx_hal_sdram.c
# stm32h7xx_hal_smartcard.c
# stm32h7xx_hal_smartcard_ex.c
# stm32h7xx_hal_smbus.c
# stm32h7xx_hal_spdifrx.c
stm32h7xx_hal_spi.c
stm32h7xx_hal_spi_ex.c
# stm32h7xx_hal_sram.c
# stm32h7xx_hal_swpmi.c
stm32h7xx_hal_tim.c
stm32h7xx_hal_tim_ex.c
stm32h7xx_hal_uart.c
stm32h7xx_hal_uart_ex.c
stm32h7xx_hal_usart.c
stm32h7xx_hal_usart_ex.c
stm32h7xx_hal_wwdg.c
stm32h7xx_ll_adc.c
stm32h7xx_ll_bdma.c
stm32h7xx_ll_comp.c
stm32h7xx_ll_crc.c
stm32h7xx_ll_crs.c
stm32h7xx_ll_dac.c
stm32h7xx_ll_delayblock.c
stm32h7xx_ll_dma.c
stm32h7xx_ll_dma2d.c
stm32h7xx_ll_exti.c
# stm32h7xx_ll_fmc.c
stm32h7xx_ll_gpio.c
# stm32h7xx_ll_hrtim.c
stm32h7xx_ll_i2c.c
# stm32h7xx_ll_lptim.c
# stm32h7xx_ll_lpuart.c
stm32h7xx_ll_mdma.c
# stm32h7xx_ll_opamp.c
stm32h7xx_ll_pwr.c
stm32h7xx_ll_rcc.c
stm32h7xx_ll_rng.c
stm32h7xx_ll_rtc.c
stm32h7xx_ll_sdmmc.c
stm32h7xx_ll_spi.c
# stm32h7xx_ll_swpmi.c
stm32h7xx_ll_tim.c
stm32h7xx_ll_usart.c
stm32h7xx_ll_usb.c
stm32h7xx_ll_utils.c
)

list(TRANSFORM STM32H7A3_HAL_SRC PREPEND "${STM32H7A3_HAL_DIR}/Src/")

set(STM32H7A3_VCP_DIR "${MAIN_SRC_DIR}/vcp_hal")

set(STM32H7A3_VCP_SRC
#usbd_desc.c
#usbd_conf_stm32h7xx.c
#usbd_cdc_interface.c
)
list(TRANSFORM STM32H7A3_VCP_SRC PREPEND "${STM32H7A3_VCP_DIR}/")

set(STM32H7A3_INCLUDE_DIRS
${STM32H7A3_HAL_DIR}/Inc
${STM32H7A3_CMSIS_DEVICE_DIR}/Include
)

main_sources(STM32H7A3_SRC
target/system_stm32h7a3.c
target/stm32h7a3_impl.c
target/stm32h7a3_impl_usbd_cdc_if.c
target/stm32h7a3_impl_usb_device.c
target/stm32h7a3_impl_usbd_conf.c
target/stm32h7a3_impl_usbd_desc.c
target/stm32h7a3_impl_inav_cdc.c
target/stm32h7a3_impl_it.c
target/stm32h7a3_hal_msp.c

config/config_streamer_stm32h7.c
config/config_streamer_ram.c
config/config_streamer_extflash.c

drivers/adc_stm32h7xx.c
drivers/bus_i2c_hal.c
drivers/dma_stm32h7xx.c
drivers/bus_spi_hal_ll.c
drivers/bus_quadspi.c
drivers/bus_quadspi_hal.c
drivers/memprot.h
drivers/memprot_hal.c
drivers/memprot_stm32h7a3.c
drivers/timer.c
drivers/timer_impl_hal.c
drivers/timer_stm32h7xx.c
drivers/system_stm32h7xx.c
drivers/serial_uart_stm32h7xx.c
drivers/serial_uart_hal.c
drivers/sdio.h
drivers/sdcard/sdmmc_sdio_hal.c
)

main_sources(STM32H7A3_MSC_SRC
# TODO
#drivers/usb_msc_h7xx.c
)

set(STM32H7A3_DEFINITIONS
${CORTEX_M7_DEFINITIONS}
USE_HAL_DRIVER
USE_FULL_LL_DRIVER
MAX_MPU_REGIONS=16
)

function(target_stm32h7ax)
target_stm32(
SOURCES ${STM32H7A3_HAL_SRC} ${STM32H7A3_SRC}
COMPILE_DEFINITIONS ${STM32H7A3_DEFINITIONS}
COMPILE_OPTIONS ${CORTEX_M7_COMMON_OPTIONS} ${CORTEX_M7_COMPILE_OPTIONS}
INCLUDE_DIRECTORIES ${STM32H7A3_INCLUDE_DIRS}
LINK_OPTIONS ${CORTEX_M7_COMMON_OPTIONS} ${CORTEX_M7_LINK_OPTIONS}

MSC_SOURCES ${STM32H7A3_USBMSC_SRC} ${STM32H7A3_MSC_SRC}
VCP_SOURCES ${STM32H7A3_USB_SRC} ${STM32H7A3_VCP_SRC}
VCP_INCLUDE_DIRECTORIES ${STM32H7A3_USB_INCLUDE_DIRS} ${STM32H7A3_VCP_DIR}

OPTIMIZATION -O0 -g

OPENOCD_TARGET stm32h7x

# BOOTLOADER

${ARGN}
)
endfunction()

macro(define_target_stm32h7a subfamily size)
message(STATUS "Adding target for STM32H7${subfamily}x${size}")
function(target_stm32h7${subfamily}x${size} name)
set(func_ARGV ARGV)
string(TOUPPER ${size} upper_size)
get_stm32_flash_size(flash_size ${size})
set(definitions
STM32H7
STM32H7${subfamily}xx
STM32H7${subfamily}x${upper_size}
# stm32h743xx.h defined FLASH_SIZE, used by HAL, but in bytes
# use MCU_FLASH_SIZE since we use KiB in our code
MCU_FLASH_SIZE=${flash_size}
)
target_stm32h7ax(
NAME ${name}
STARTUP startup_stm32h7${subfamily}xx.s
COMPILE_DEFINITIONS ${definitions}
LINKER_SCRIPT stm32_flash_h7${subfamily}x${size}
${${func_ARGV}}
SVD STM32H7${subfamily}
)
endfunction()
endmacro()

define_target_stm32h7a(A3 i)
define_target_stm32h7a(A3 g)
3 changes: 2 additions & 1 deletion src/main/drivers/adc_stm32h7xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,10 @@ ADCDevice adcDeviceByInstance(ADC_TypeDef *instance)

if (instance == ADC2)
return ADCDEV_2;

#ifdef ADCDEV_3
if (instance == ADC3)
return ADCDEV_3;
#endif

return ADCINVALID;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/drivers/display_ug2864hsweg01.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

#include "platform.h"

#ifdef USE_OLED_UG2864
#if defined(USE_OLED_UG2864) && defined(USE_I2C)

#include "drivers/bus.h"
#include "drivers/bus_i2c.h"
Expand Down
Loading
Loading