A working SDCC STM8 CMake configuration
If you have been looking desperately for a working CMake example for the SDCC compiler for STM8 microcontrollers here’s my take on it:
cmake_minimum_required(VERSION 3.2)
set(CMAKE_C_OUTPUT_EXTENSION ".rel")
set(CMAKE_C_COMPILER sdcc)
set(CMAKE_SYSTEM_NAME Generic) # No linux target etc
# Prevent default configuration
set(CMAKE_C_FLAGS_INIT "")
set(CMAKE_EXE_LINKER_FLAGS_INIT "")
project(STM8Blink C)
SET(CMAKE_C_FLAGS "-mstm8 --std-c99")
add_executable(main.ihx main.c)
# Flash targets
add_custom_target(flash ALL COMMAND stm8flash -c stlink -p stm8s105c6 -w main.ihx)
This will build main.ihx
from main.c
. main.ihx
is a Intel Hex file which can be directly flashed using stm8flash.
The last lines setup make flash
; you might need to use the correct microcontroller (stm8s105c6
in this example, run stm8flash -l
to show supported devices) and the correct flash adapter (stlink
, stlinkv2
, stlinkv21
, stlinkv3
or espstlink
).
The setup example shown here is for the STM8S eval board.
I suppose it can be easily modified for other microcontrollers, but I haven’t tried that so far.