diff --git a/.idea/runConfigurations/OCD_Boot.xml b/.idea/runConfigurations/OCD_Boot.xml index baab017..d3cb7ab 100644 --- a/.idea/runConfigurations/OCD_Boot.xml +++ b/.idea/runConfigurations/OCD_Boot.xml @@ -1,5 +1,5 @@ - + diff --git a/.idea/runConfigurations/OCD_mainprog.xml b/.idea/runConfigurations/OCD_mainprog.xml index 142ceed..0144789 100644 --- a/.idea/runConfigurations/OCD_mainprog.xml +++ b/.idea/runConfigurations/OCD_mainprog.xml @@ -1,5 +1,5 @@ - + diff --git a/Boot/CMakeLists.txt b/Boot/CMakeLists.txt index a46b832..116bf56 100644 --- a/Boot/CMakeLists.txt +++ b/Boot/CMakeLists.txt @@ -1,6 +1,4 @@ - set(CMAKE_C_COMPILER arm-none-eabi-gcc) - set(CMAKE_CXX_COMPILER arm-none-eabi-g++) - set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) project(boot C CXX ASM) @@ -48,8 +46,8 @@ list(FILTER SOURCES EXCLUDE REGEX "IAR\\/.*.[c|h]$") list(FILTER SOURCES EXCLUDE REGEX "Keil\\/.*.[c|h]$") set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/Boot/STM32G070CBTX_FLASH.ld) add_executable(${PROJECT_NAME}.elf ${SOURCES} ) -target_compile_options(${PROJECT_NAME}.elf PUBLIC ${COMPILE_OPTIONS}) -target_link_options(${PROJECT_NAME}.elf PUBLIC ${LINK_OPTIONS}) +target_compile_options(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_OPTIONS}) +target_link_options(${PROJECT_NAME}.elf PUBLIC $ENV{LINK_OPTIONS}) set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) target_include_directories(${PROJECT_NAME}.elf PRIVATE ${INCLUDE_DIR} ) diff --git a/Boot/STM32G070CBTX_FLASH.ld b/Boot/STM32G070CBTX_FLASH.ld index e43db58..c2ed1e9 100644 --- a/Boot/STM32G070CBTX_FLASH.ld +++ b/Boot/STM32G070CBTX_FLASH.ld @@ -34,7 +34,7 @@ /* Entry Point */ ENTRY(Reset_Handler) -INCLUDE memory_map.inc +INCLUDE Boot/memory_map.inc /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ diff --git a/CMakeLists.txt b/CMakeLists.txt index f6dd406..ac04abf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,11 @@ cmake_minimum_required(VERSION 3.23) #/////////////////////////////////////////////PLEASE CHOOSE THIS OPTIONS BY YOURSELF set (ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/stm32g0xx_hal_conf.h) set(ENV{MCU} "STM32G070xx") -set(ENV{LINKER_SCRIPT} ${CMAKE_SOURCE_DIR}/STM32G070CBTX_FLASH.ld) +if(BOOT) + set (ENV{LINKER_SCRIPT} ${CMAKE_SOURCE_DIR}/Boot/STM32G070CBTX_FLASH.ld) +else() + set(ENV{LINKER_SCRIPT} ${CMAKE_SOURCE_DIR}/STM32G070CBTX_FLASH.ld ) +endif() set(ENV{FREERTOS_CONFIG} "${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/FreeRTOSConfig.h") #///////////////////////////////////////////// @@ -44,12 +48,15 @@ else() add_subdirectory(cmake_func) math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) add_compile_definitions("PAGE_SIZE=0x0800") + set(LEN_OFFSET 0xBC) + set (CRC_ADDRESS 0) + set (FLASH_MAIN_ADDRESS 0) + set(MEM_MAP_FILE "memory_map.inc") + math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) + add_compile_definitions("PAGE_SIZE=0x0800") + + - if (BOOT) - add_compile_definitions("BOOT_FLASH_VECTOR_TABLE_CS_OFFSET=${LEN_OFFSET}" "LEN_ADDRESS=${LEN_ADDRESS}") - add_subdirectory(libs) - add_subdirectory(Boot) - else() set(CMAKE_AR arm-none-eabi-ar) set(CMAKE_OBJCOPY arm-none-eabi-objcopy) @@ -114,6 +121,14 @@ else() endif() set(ENV{COMPILE_OPTIONS} "${COMPILE_OPTIONS}") set(ENV{COMPILE_DEF} "${COMPILE_DEF}") + if (BOOT) + set (ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/stm32g0xx_hal_conf.h) + FUNC_CREATE_MEMORY_MAP("${MEM_MAP_FILE}" "128" "8" "4" ) + add_compile_definitions("BOOT_FLASH_VECTOR_TABLE_CS_OFFSET=${LEN_OFFSET}" "LEN_ADDRESS=${LEN_ADDRESS}") + add_compile_definitions("PAGE_SIZE=0x0800") + add_subdirectory(libs) + add_subdirectory(Boot) + else() add_subdirectory(libs) add_subdirectory(main_prog) endif() diff --git a/main_prog/Core/Inc/stm32g0xx_hal_conf.h b/main_prog/Core/Inc/stm32g0xx_hal_conf.h index 8e3b1d7..abbb65c 100644 --- a/main_prog/Core/Inc/stm32g0xx_hal_conf.h +++ b/main_prog/Core/Inc/stm32g0xx_hal_conf.h @@ -37,7 +37,7 @@ extern "C" { /* #define HAL_ADC_MODULE_ENABLED */ /* #define HAL_CEC_MODULE_ENABLED */ /* #define HAL_COMP_MODULE_ENABLED */ -/* #define HAL_CRC_MODULE_ENABLED */ +#define HAL_CRC_MODULE_ENABLED /* #define HAL_CRYP_MODULE_ENABLED */ /* #define HAL_DAC_MODULE_ENABLED */ /* #define HAL_EXTI_MODULE_ENABLED */