I'm not aware of anything like this, but I think it would be much more valuable than continuing the proliferation of GUI tools like this one. A GUI forces me to use your tool. A file format allows me to create my own tools and integrate it with any other part of my workflow. This would be especially nice for larger microcontrollers and application processors.
We are working on the file format for the same and plan to open source both it and the tool sometime soon! So you won't have to be limited to this tool or the MCU's that we've actively developed.
Great question! We're actually working on a standard for the same and plan to open source it. We aren't currently aware of any other global standard for the same.
We intended it to be similar, but we hope to expand the functionality to more complex features like logic programming and inbuilt drivers. We definitely want it to be less shitty, so just for the sake of argument - what exactly did you find shitty about START?
On chips from Atmel, ST, NXP, etc. certain peripheral functions can only be mapped to certain pins, with no discernible pattern. For parts like this, a pin planning tool can genuinely be useful when planning a board layout.
It's also nice when this tool generates starter code for you, because every peripheral usually has a slightly different way to enable/configure/map their IO to a pin, and there's a global GPIO control interface, and there's a global power management control interface, and (... etc). You need to set all of the properties correctly simultaneously, or the connection doesn't get made. It's easy to miss one of them and be confused about why your signal isn't showing up.
Nordic's GPIO pin mux allows you to map any peripheral IO to any pin like an FPGA. There's one uniform interface for controlling this mapping, with no weird exceptions. I think that's why they don't have a tool like this -- it just wouldn't be all that useful, because remapping pins is so easy. When you're designing your board, you can, for example, wire up an SPI device to literally any pins you want, and then make it work in software later.
These tools can also useful for setting PLL divider values and configuring clock distribution, because this can get complicated: https://i.stack.imgur.com/e8CQw.png
But Nordic chips also tend to run at one officially supported clock speed, because their Bluetooth stack relies on it. So you don't really need the clock configuration GUI either.
Totally agreed! The reason we do this for a fully muxed system like Nordic is just to make life a little easier when starting a project from scratch. Because it's not just the pin configuration that's covered, it's also the sdk_config.h and the .emproj file. We also get to remove some of the bloat that example files tend to carry with them when we do this.
While docker, can be used to build the firmware for SES, it is not a scalable solution as the docker image will have to be kept updated for each new update of SES. Segger being Segger, changes things in their toolchain very frequently. If you're interested in automating builds on SES using Docker, you can check out our docker image for SES on GitHub here: https://github.com/vicara-hq/ses-docker-images
However, most hardware toolchains and examples out there use Keil, which is Windows only and DOES NOT have a headless mode, making it utterly impossible for a docker image or a CI tool to automate the build process.
The best way to approach this would be to use Makefiles on Docker for the projects that we build, making it cross-platform as well as CI-friendly, which is an approach that we plan to take with the configuration tool, automating the entire process for ease of use in any environment.
We do plan to support other manufacturers as well. This actually started as an internal tool for us to speed up our configuration. We thought it'd be helpful to make it available to other hardware devs as well.