There is one utility which needs to be installed: [PlatformIO](https://docs.platformio.org/en/latest/what-is-platformio.html). It's Open Source, on [GitHub](https://github.com/platformio).
- For use in [VSCode](https://code.visualstudio.com), see https://docs.platformio.org/en/latest/integration/ide/pioide.html
- To install the command-line version: https://docs.platformio.org/en/latest/core/index.html
PlatformIO (a.k.a. "PIO") is driven from a `platformio.ini` project file, a small text file which specifies what to build and how to upload and debug it. All the required *toolchains*, *frameworks*, and *upload/debug tools* will automatically be downloaded by PIO and managed in its own area.
PIO is implemented in the [Python](https://www.python.org) programming language, which also needs to be present.
But that's about it: VSCode (if you want an [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment)) or some other code editor, plus Python, plus PlatformIO are all that is needed to develop software for embedded microcontrollers.
FWIW, my personal preference is the command-line version of PIO, with the [Vim](https://www.vim.org) code editor. Because I don't like aiming a mouse at pixels on a screen ...