This commit is contained in:
2025-05-14 01:20:39 +03:00
commit a7dd296cfd
9 changed files with 1168 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_FLAGS_INIT "-mstm8 --std-sdcc11 --code-loc 0x8000") # -s
set(CMAKE_EXE_LINKER_FLAGS_INIT "")
# which compilers to use for C and ASM
SET(CMAKE_C_COMPILER /usr/bin/sdcc)
SET(CMAKE_ASM_COMPILER /usr/bin/sdasstm8)
find_program (SDCC NAMES sdcc)
get_filename_component(SDCC_BIN_DIR ${SDCC} DIRECTORY)
get_filename_component(SDCC_PATH_DIR ${SDCC_BIN_DIR} DIRECTORY)
# here is the target environment is located
SET(CMAKE_FIND_ROOT_PATH ${SDCC_PATH_DIR}/usr/share/sdcc)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# TODO This is not being recognised
set(CMAKE_ASM_OUTPUT_EXTENSION ".rel")
set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_ASM_COMPILER} -o <OBJECT> <SOURCE>")
+29
View File
@@ -0,0 +1,29 @@
find_program(STM8FLASH stm8flash
DOC "stm8flash binary location"
)
set(STM8FLASH_PROGRAMMER
"stlinkv2" CACHE STRING
"Choice of stlink, stlinkv2 or espstlink, when not specified in target properties")
function(add_upload_to_target target)
get_target_property(FAMILY ${target} FAMILY)
if (FAMILY STREQUAL "stm8")
if (STM8FLASH STREQUAL "STM8FLASH-NOTFOUND")
message(SEND_ERROR "stm8flash is not found")
endif()
get_target_property(STM8_PART ${target} PART)
get_target_property(PROGRAMMER ${target} PROGRAMMER)
if(PROGRAMMER STREQUAL "PROGRAMMER-NOTFOUND")
set(PROGRAMMER ${STM8FLASH_PROGRAMMER})
endif()
add_custom_target(${target}-upload
COMMAND ${STM8FLASH} -c ${PROGRAMMER} -p ${STM8_PART} -w ${target}.ihx
DEPENDS ${target}
COMMENT "Uploading ${target}"
)
endif()
endfunction(add_upload_to_target)