platform-ststm8
platform-ststm8 copied to clipboard
Unable to compile for STM8AF52xx
Hi, I tried to get a custom Board running when I realized that I am not able to compile for targets with longer label than 8 characters.
https://github.com/platformio/platform-ststm8/blob/00bed19beec29236654bc3b239f03e0137931abe/builder/frameworks/spl.py#L46
I tried to use board_build.mcu = stm8af52ax
in platform.ini and the SPL needs to have STM8AF52Ax to be defined. There are several targets that have a different definition schema.
/* #define STM8S208 */ /*!< STM8S High density devices with CAN */
/* #define STM8S207 */ /*!< STM8S High density devices without CAN */
/* #define STM8S007 */ /*!< STM8S Value Line High density devices */
/* #define STM8AF52Ax */ /*!< STM8A High density devices with CAN */
/* #define STM8AF62Ax */ /*!< STM8A High density devices without CAN */
/* #define STM8S105 */ /*!< STM8S Medium density devices */
/* #define STM8S005 */ /*!< STM8S Value Line Medium density devices */
/* #define STM8AF626x */ /*!< STM8A Medium density devices */
/* #define STM8AF622x */ /*!< STM8A Low density devices */
/* #define STM8S103 */ /*!< STM8S Low density devices */
/* #define STM8S003 */ /*!< STM8S Value Line Low density devices */
/* #define STM8S903 */ /*!< STM8S Low density devices */
/* #define STM8S001 */ /*!< STM8S Value Line Low denisty devices */
A similar problem could appear with the arduino framework. https://github.com/platformio/platform-ststm8/blob/00bed19beec29236654bc3b239f03e0137931abe/builder/frameworks/arduino.py#L72
Also I found the stm8flash target to not fit https://github.com/platformio/platform-ststm8/blob/00bed19beec29236654bc3b239f03e0137931abe/builder/main.py#L163
correct target would be stm8af52a?
according to https://github.com/vdudouyt/stm8flash
I solved the flash target with setting "stm8flash_target": "stm8af52A?"
in the upload section of my board.json.
for the define flag I went with the following:
build_mcu = board_config.get("build.mcu")[:9].upper()
if build_mcu[5] == 'S':
build_mcu = build_mcu[:8]
else:
build_mcu += 'x'
command = [
env.subst("$CC"), "-m%s" % board_config.get("build.cpu"),
"-D%s" % build_mcu,
"-I.", "-I", "%s" % env.subst("$PROJECT_SRC_DIR"),
"-Wp-MM", "-E", "stm8s.h"
]