Openocd communication was done over a deprecated interface definition,
namely ft2232. Using the new ftdi interface speeds up flashing and
doesn't throw warnings anymore.
Please see #1715.
Closes#1715.
This PR implements the new Makefile variables "FEATURES_PROVIDED" and
"FEATURES_REQUIRED". A board *can* have a new file `Makefile.features`
which looks like:
```make
FEATURES_PROVIDED = transceiver
```
An application can have a corresponding line
```make
FEATURES_REQUIRED = transceiver
```
If the selected BOARD does not fulfil the requirements of the
application, then a *warning* is issued at compile time.
This change only includes the feature "transceiver", further features
are expected to be listed in further PRs. The requirement "transceiver"
is automatically added if the application uses the module
"defaulttransceiver".
`make buildtest` understands the new feature listing, so the user won't
need to add boards to `BOARD_BLACKLIST` manually.
Part of the change are the added Make targets
* `info-features-missing`, which prints the required features
`\setminus` the provided features. The output is empty if there are no
features missing.
* `info-boards-features-missing`, the same as `info-features-missing`
but as a table for all boards, but heeded `BOARD_WHITELIST` and
`BOARD_BLACKLIST`.
Applications don't have to use this new feature. This change does not
break existing Makefile.
It can be useful to know if the current compilation builds the native
board module, because e.g. then we must not include `sys/types.h`.
This diff adds `-DNATIVE_INCLUDES` to the make variable
`NATIVEINCLUDES`.
For the MSB-A2 the DTR and RTS pins have to be pulled down over the
serial interface in the beginning. (This is required because the Linux
usbserial driver pulls them up when initializing the device which set
the node into reset mode.) Since this is not necessary on most other
platforms and might even cause problems, it's better to make this an
optional behavior of pyterm.