in $HOME/.platformio/platforms/ststm8 just edited:
platform.json:
{
"name": "ststm8",
"title": "ST STM8",
"description": "The STM8 is an 8-bit microcontroller family by STMicroelectronics an extended variant of the ST7 microcontroller architecture. STM8 microcontrollers are particularly low cost for a full-featured 8-bit microcontroller.",
"homepage": "https://www.st.com/en/microcontrollers/stm8-8-bit-mcus.html",
"license": "Apache-2.0",
"keywords": [
"dev-platform",
"STMicroelectronics",
"STM8",
"8-bit"
],
"engines": {
"platformio": "^6"
},
"repository": {
"type": "git",
"url": "https://github.com/platformio/platform-ststm8.git"
},
"version": "2.1.0",
"frameworks": {
"arduino": {
"package": "framework-arduinoststm8",
"script": "builder/frameworks/arduino.py"
},
"spl": {
"package": "framework-ststm8spl",
"script": "builder/frameworks/spl.py"
}
},
"packages": {
"toolchain-sdcc": {
"type": "toolchain",
"owner": "platformio",
"version": ">=1.40100.0,<1.40201.0",
"optionalVersions": [
"~1.30901.0"
]
},
"framework-arduinoststm8": {
"type": "framework",
"optional": true,
"owner": "platformio",
"version": "~0.50.0"
},
"framework-ststm8spl": {
"type": "framework",
"optional": true,
"owner": "platformio",
"version": "0.20301.181217"
},
"tool-stm8binutils": {
"type": "uploader",
"owner": "platformio",
"version": "https://github.com/maxgerhardt/tool-stm8binutils-aarch64.git"
},
"tool-stm8gal": {
"type": "uploader",
"optional": true,
"owner": "platformio",
"version": "~1.5.0"
},
"tool-stm8flash": {
"type": "uploader",
"optional": true,
"owner": "platformio",
"version": "~1.1.0"
},
"tool-openocd": {
"type": "uploader",
"optional": true,
"owner": "platformio",
"version": "~2.1000.0"
}
}
}
and platform.py:
# Copyright 2014-present PlatformIO <contact@platformio.org>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from platformio.public import PlatformBase
class Ststm8Platform(PlatformBase):
def configure_default_packages(self, variables, targets):
if "arduino" in variables.get("pioframework", []):
self.packages["toolchain-sdcc"]["version"] = "symlink:////home/whisper/.platformio/packages/toolchain-sdcc"
else:
self.packages["toolchain-sdcc"]["version"] = "symlink:////home/whisper/.platformio/packages/toolchain-sdcc"
return super().configure_default_packages(variables, targets)
def get_boards(self, id_=None):
result = super().get_boards(id_)
if not result:
return result
if id_:
return self._add_default_debug_tools(result)
else:
for key in result:
result[key] = self._add_default_debug_tools(result[key])
return result
def _add_default_debug_tools(self, board):
debug = board.manifest.get("debug", {})
upload_protocols = board.manifest.get("upload", {}).get(
"protocols", [])
if "tools" not in debug:
debug["tools"] = {}
# Configure OpenOCD debugging.
# Only via ST-Link for now
for link in ("stlink",):
if link == "stlink":
server_args = ["-s", "$PACKAGE_DIR/scripts"]
if debug.get("openocd_board"):
server_args.extend([
"-f", "board/%s.cfg" % debug.get("openocd_board")
])
else:
assert debug.get("openocd_target"), (
"Missing target configuration for %s" % board.id)
server_args.extend([
"-f", "interface/stlink-dap.cfg",
# transport protocol swim is automatically selected, no need to set it
"-f", "target/%s.cfg" % debug.get("openocd_target")
])
server_args.extend(debug.get("openocd_extra_args", []))
debug["tools"][link] = {
"server": {
"package": "tool-openocd",
"executable": "bin/openocd",
"arguments": server_args
}
}
debug["tools"][link]["onboard"] = link in debug.get(
"onboard_tools", [])
debug["tools"][link]["default"] = link in debug.get(
"default_tools", [])
board.manifest["debug"] = debug
return board
in $HOME/.platformio/packages/toolchain-sdcc creted a file named package.json:
{
"name": "toolchain-sdcc",
"version": "1.30901.11242",
"description": "Small Device C compiler suite",
"keywords": [
"build tools",
"compiler",
"assembler",
"linker",
"preprocessor"
],
"homepage": "http://sdcc.sourceforge.net",
"license": "GPL-2.0-or-later",
"repository": {
"type": "svn",
"url": "https://sourceforge.net/p/sdcc/code/HEAD/tree/trunk/sdcc"
},
"system": [
"linux_aarch64"
]
}
also before editing all the files:
sudo apt install sdcc
not sure this one is requred or not:
sudo apt install texinfo texi2html