A STM8 Debugger for vscode. Use STLink to debug your STM8 program
Only for Windows platform
- Install STLink or RLink driver program on your PC
- Fill in launch.json, there are some examples:
- Use IAR/COSMIC Toolchain :
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "stm8-debug",
            "request": "launch",
            "name": "Launch Program",
            "serverType": "st7",
            "executable": ".\\out\\Debug\\stm8_demo.out",
            "cpu": "STM8S003F3P"
        }
    ]
}- Use SDCC Toolchain :
Notice: make sure you can find your 'target' and 'interface' in OpenOcd config folder !, like: 'target/stm8s003.cfg'
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "stm8-debug",
            "request": "launch",
            "name": "Launch Program",
            "serverType": "stm8-sdcc",
            "executable": ".\\out\\Debug\\stm8_demo.elf",
            "openOcdConfigs": [
                "interface/stlink.cfg",
                "target/stm8s003.cfg"
            ]
        }
    ]
}- link your STLink and board, press F5to launch stm8 debugger
You can browse cpu peripheral value by Peripheral View, like this:
- stm8s103f3
- stm8s003f3
- stm8s105k4
Note: You need to create a new <cpu_name>.svd.json file to support a new stm8 cpu.
step 1. create a new <cpu_name>.svd.json file, write peripheral descriptions.
step 2. set svdFile property in launch.json
There is a demo for stm8s003f3 cpu, file name: stm8s003f3.svd.json
[
    {
        "name": "GPIOA",
        "baseAddress": "0x5000",
        "registers": [
            {
                "name": "ODR",
                "bytes": 1,
                "fields": [
                    {
                        "name": "0",
                        "bitsOffset": 0,
                        "bitsWidth": 1
                    }
                ]
            },
            {
                "name": "IDR",
                "bytes": 1
            },
            {
                "name": "DDR",
                "bytes": 1
            },
            {
                "name": "CR1",
                "bytes": 1
            },
            {
                "name": "CR2",
                "bytes": 1
            }
        ]
    },
    {
        "name": "FLASH",
        "baseAddress": "0x505A",
        "registers": [
            {
                "name": "CR1",
                "bytes": 1
            },
            {
                "name": "CR2",
                "bytes": 1
            },
            {
                "name": "NCR2",
                "bytes": 1
            },
            {
                "name": "FPR",
                "bytes": 1
            },
            {
                "name": "NFPR",
                "bytes": 1
            },
            {
                "name": "IAPSR",
                "bytes": 1
            },
            {
                "name": "PUKR",
                "baseAddress": "0x5062",
                "bytes": 1
            },
            {
                "name": "DUKR",
                "baseAddress": "0x5064",
                "bytes": 1
            }
        ]
    }
]
