Hello,
I was under the impression that the Config Tools, especially the Pins Tool, would create code that is usable in my own code in a reasonable way.
Turns out, I was wrong. The code created is just for initializing pins configuration. It can not be used to access or control the pins or at least reference the pins.
The config tool's generated code is a disaster.
For example if a project needs to control a LED, a GPIO is configured as output and assigned an identifier with a descriptive name. The routing information in the tool will look like this (example "led_blinky" from LPC5526 SDK, typos retained):

The generated code in pin_mux.c defines only this variable:
gpio_pin_config_t LED_BULE_config = {
.pinDirection = kGPIO_DigitalOutput,
.outputLogic = 0U
};
That is not enough information to control the GPIO.
Consequently, the code is required to define information related to the GPIO in a second file board.h:
#ifndef BOARD_LED_BLUE_GPIO
#define BOARD_LED_BLUE_GPIO GPIO
#endif
#define BOARD_LED_BLUE_GPIO_PORT 1U
#ifndef BOARD_LED_BLUE_GPIO_PIN
#define BOARD_LED_BLUE_GPIO_PIN 4U
#endif
To control the GPIO, led_blinky.c contains:
#define BOARD_LED_PORT BOARD_LED_BLUE_GPIO_PORT
#define BOARD_LED_PIN BOARD_LED_BLUE_GPIO_PIN
GPIO_PortToggle(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN);
That's an unmaintainable mess.
What I would expect - at the very least - is the Pin Tool to generate a data structure that represents the complete configuration information, e.g.:
PINMux_t pinmuxing[] = {
[PIN_LED_BLUE] = {1, 4, PIN_TYPE_GPIO, IOCON_MODE_INACT | IOCON_FUNC1, PIN_DIR_OUT}, /* identifier: LED_BLUE */
};
A GPIO would be addressed using an enum defined through the identifier.
The call to toggle a pin could then look like:
GPIOMuxed_PortToggle(PIN_LED_BLUE);
As simple as that and maintainable.
Or, to keep compatibility with existing SDK code, Pins Tool could generate functions to provide the information required to call SDK functions:
GPIO_PortToggle(GPIO, PINMUX_GetPort(PIN_LED_BLUE), PINMUX_GetMask(PIN_LED_BLUE));
What do you think?