Wenn du verzweifelt nach einem funktionierenden CMake-Beispiel für den SDCC-Compiler für STM8-Mikrocontroller gesucht hast, hier ist mein Ansatz:
CMakeLists.txt
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)Dies wird main.ihx aus main.c bauen. main.ihx ist eine Intel Hex-Datei, die direkt mit stm8flash geflasht werden kann.
Die letzten Zeilen richten make flash ein; du musst möglicherweise den korrekten Mikrocontroller (stm8s105c6 in diesem Beispiel, führe stm8flash -l aus um unterstützte Geräte anzuzeigen) und den korrekten Flash-Adapter (stlink, stlinkv2, stlinkv21, stlinkv3 oder espstlink) verwenden.
Das hier gezeigte Setup-Beispiel ist für das STM8S-Eval-Board.
Ich nehme an, es kann leicht für andere Mikrocontroller modifiziert werden, aber ich habe das bisher nicht ausprobiert.
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen