Compiler feature: Separate board aliases from controller list

Currently in embedded targets board aliases are handled as if they are new controllers. This is not accurate, since a board alias is a controller with board specific configuration (pin connectors, attached peripherals such as LEDs, buttons etc.). Currently checking whether a specific controller type is allowed when that controller is also specified for a board alias leads to extra checking. See e.g. this UNoLib example, which basically should create a fatal error at compile time if the specified controller is not an atmega328p. This is redundant, since a board alias already implies that a particular controller is also specified.

This MR separates the concept of a board alias and a controller. Specifying a board alias now should create a new macro FPC_BOARD_alias and also define the base controller for that board. Now code that is controller specific only needs to check for the controller type and not also board aliases as per the example. The board alias macro should then only be used where board specific features are important.

Merge request reports

Loading