The project does not depend on any specific IDE or development tool. Any descent IDE suitable for embedded systems and C/C++ development should be enough. To assist IDEs with the include directories and the project structure in general, the underlying CMake build system by default produces the compile_commands.json file inside the build directory.
For launching, attaching and debugging, the following launch configuration can be used as a baseline.
{
"version": "0.2.0",
"configurations": [
{
"name": "Zephyr SatNOGS COMMS ST-Link",
"cwd": "${workspaceRoot}",
"executable": "build/zephyr/satnogs-comms.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"device": "STM32H743VI",
"targetId": "STM32H743VI",
"boardId": "",
"armToolchainPath": "/path/to/zephyr/sdk/arm-zephyr-eabi/bin",
"gdbPath": "/path/o/zephyr/sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb",
"interface": "swd",
"liveWatch": {
"enabled": true,
"samplesPerSecond": 4
},
"runToEntryPoint": "main",
"configFiles": ["openocd-stlink.cfg"
],
"showDevDebugOutput": "parsed",
"searchDir": ["${workspaceRoot}/openocd"],
},
{
"name": "Zephyr SatNOGS COMMS Remote openOCD",
"cwd": "${workspaceRoot}",
"executable": "build/zephyr/satnogs-comms.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "external",
"swoConfig":{
"enabled":true,
"source":"probe",
"swoFrequency": 20000000,
"cpuFrequency":256000000,
"decoders": [
{
"port": 0,
"type": "console",
"label": "SWO output",
"encoding":"ascii"
}
]
},
"gdbTarget": "localhost:3333",
"device": "STM32H743VI",
"targetId": "STM32H743VI",
"boardId": "",
"armToolchainPath": "/path/to/zephyr/sdk/arm-zephyr-eabi/bin/",
"interface": "swd",
"rtos": "Zephyr",
"runToEntryPoint": "main",
"svdFile": "contrib/st/STM32H743.svd",
"configFiles": [
"openocd-jlink-remote.cfg"
],
"liveWatch": {
"enabled": true,
"samplesPerSecond": 4
},
"showDevDebugOutput": "parsed",
"rttConfig": {
"enabled": false,
"address": "auto",
"clearSearch": false,
"decoders": [
{
"label": "",
"port": 0,
"type": "console"
}
]
},
},
{
"name": "Zephyr SatNOGS COMMS Segger",
"cwd": "${workspaceRoot}",
"executable": "build/zephyr/satnogs-comms.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"swoConfig":{
"enabled":true,
"source":"probe",
"swoFrequency": 10000000,
"cpuFrequency":256000000,
"decoders": [
{
"port": 0,
"type": "console",
"label": "SWO output",
"encoding":"ascii"
}
]
},
"device": "STM32H743VI",
"targetId": "STM32H743VI",
"boardId": "",
"armToolchainPath": "/path/to/zephyr/sdk/arm-zephyr-eabi/bin",
"gdbPath": "/path/to/zephyr/sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb",
"interface": "swd",
"rtos": "Zephyr",
"runToEntryPoint": "_start",
"svdFile": "contrib/st/STM32H743.svd",
"configFiles": ["openocd-jlink.cfg"
],
"liveWatch": {
"enabled": true,
"samplesPerSecond": 4
},
"showDevDebugOutput": "raw",
"searchDir": ["${workspaceRoot}/openocd"],
},
{
"name": "Zephyr SatNOGS COMMS Segger Attach",
"cwd": "${workspaceRoot}",
"executable": "build/zephyr/satnogs-comms.elf",
"request": "attach",
"type": "cortex-debug",
"servertype": "openocd",
"device": "STM32H743VI",
"targetId": "STM32H743VI",
"boardId": "",
"armToolchainPath": "/path/to/zephyr/sdk/arm-zephyr-eabi/bin",
"gdbPath": "/path/o/zephyr/sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb",
"interface": "swd",
"rtos": "Zephyr",
"runToEntryPoint": "__start",
"svdFile": "contrib/st/STM32H743.svd",
"configFiles": ["openocd-jlink.cfg"
],
"liveWatch": {
"enabled": true,
"samplesPerSecond": 4
},
"showDevDebugOutput": "raw",
"searchDir": ["${workspaceRoot}/openocd"],
},
]
}