George Djabarov / Mbed OS mbed-os-example-mesh-minimal
Revision:
7:0540282551e7
Parent:
6:2e2035344aa6
Child:
8:f02c15c5e51e
--- a/README.md	Wed Aug 03 08:45:20 2016 +0100
+++ b/README.md	Thu Aug 04 16:00:28 2016 +0100
@@ -67,6 +67,27 @@
 
         mbed compile -m K64F -t GCC_ARM
 
+## Important Note (Multi-platform support)
+
+mbed-OS provides the developer with total control of the device. However some defaults are always loaded if the user does not provide proper information regarding them. This becomes evident when a user switches among platforms. On some platforms a particular pin might be reserved for a particular functionality (depending upon the MCU) which thus cannot be used generally. A good example of such phenomenon is the use of atmel-rf-sheild with [Nucleo F401RE platform](https://developer.mbed.org/platforms/ST-Nucleo-F401RE/). 
+If user do not provide particular pin configuration for the atmel-rf-driver (sometimes a desired behaviour) the driver falls back to a default Arduino form factor, see [atmel-rf-driver pin assignment](https://github.com/ARMmbed/atmel-rf-driver/blob/master/source/driverAtmelRFInterface.h). This fallback mechanism works on most of the platforms, however in the above mentioned case, there is a catch. Fall back mechanism sets the GPIO pin D5 as a designated Reset pin for SPI (SPI_RST) in the radio driver. Whereas this particular pin is assigned by the MCU to debugging in Nucleo F401RE. This will result in hard fault ofcourse. The solution is to map the conflicting pins to a free GPIO pin. For example, the user can add *"atmel-rf.spi-rst": "D4"* to his/her mbed_app.json file. This will set the SPI_RST pin to D4 of the GPIO. 
+
+```json
+{
+    "target_overrides": {
+        "*": {
+            "target.features_add": ["IPV6", "COMMON_PAL"],
+            "atmel-rf.spi-rst": "D4"
+        }
+    }
+}
+```
+
+Desired work flow in such situations (if it may arise) should be:
+
+1.  Checking the platform pinmap from [mbed Platforms](https://developer.mbed.org/platforms/).
+2. Making sure that the desired GPIO pin is free by looking at the data sheet of the particular MCU. Most of the data sheets are available on  [mbed Platforms](https://developer.mbed.org/platforms/). 
+3. If necessary, change the pin or pins by using the mbed -OS config mechanism. You can get more informations about the configuration system in the [documentation](https://github.com/ARMmbed/mbed-os/blob/master/docs/config_system.md)
 
 ## Known Issues