diff --git a/README.md b/README.md
index 5ccce2859a..c1e3c01c89 100644
--- a/README.md
+++ b/README.md
@@ -80,6 +80,18 @@ The following versions of the mbed-os and sd-driver repositories are known to wo
- {mbed-os, sd-driver} = {mbed-os-5.4.0-rc2, sd-driver-0.0.1-mbed-os-5.4.0-rc2}.
`K64F`, `NUCLEO_F429ZI` and `UBLOX_EVK_ODIN_W2` fopen and basic filesystem tests working.
+- {mbed-os, sd-driver} = {mbed-os-5.4.0, sd-driver-0.0.2-mbed-os-5.4.0}.
+ `K64F`, `NUCLEO_F429ZI` and `UBLOX_EVK_ODIN_W2` fopen and basic filesystem tests working.
+- {mbed-os, sd-driver} = {mbed-os-5.4.1, sd-driver-0.0.3-mbed-os-5.4.1}.
+
+To find the latest compatible versions, use the following command to see the messages attached to the tags
+in the sd-driver repository:
+
+ ex_app7/$ cd sd-driver
+ ex_app7/sd-driver$ git tag -n
+ sd-driver-0.0.1-mbed-os-5.3.4 Version compatible with mbed-os-5.3.4, and private_mbedos_filesystems-0.0.1-mbed-os-5.3.4.
+ sd-driver-0.0.2-mbed-os-5.4.0 Updated README.md to include worked exmaples and restructuring of information.
+ sd-driver-0.0.3-mbed-os-5.4.1 Version compatible with mbed-os-5.4.1.
### Known Issues With This Document
@@ -244,12 +256,7 @@ Next, copy the example1.cpp file and `mbed_app.json` files from inside the sd-dr
The `mbed_app.json` file specifies the SPI bus pin configuration for different targets.
The file includes a specific configuration of the K64F which is used
because the mbed compile command specifies the K64F build target. The `mbed_app.json` file
-is described in more detail in the
-[Testing with an SDCard on Target XYZ](#testing-with-an-sdcard-on-target-xyx) section.
-
-
- Testing with an SDCard on Target XYZ
-
+is described in more detail in the [Testing with an SDCard on Target XYZ](#testing-with-an-sdcard-on-target-xyx) section.
### Build the Example Project
@@ -258,6 +265,20 @@ Next, build the example application:
simhug01@E107851:/d/demo_area/sd_ex1$ mbed compile -m K64F -t GCC_ARM 2>&1 | tee build_log.txt
+#### WARNING: "mbed new ." command and possible mbed-os sd-driver versioning incompatibilities
+
+If you experience problems building the example then it may mean the version
+of the mbed-os repository created with the "mbed new ." command is not compatible with
+the sd-driver repository version created with "mbed add sd-driver" command. This is because:
+
+- The "mbed new ." creates the mbed-os repository at the latest "Release" e.g. `mbed-os-5.4.0`.
+- The "mbed add sd-driver" command creates the sd-driver repository at the latest version of
+ master i.e. the tip of master. Changes may be present that are not compatible with
+ the latest mbed-os release e.g. in preparation for the next release.
+
+This situation can be resolved by checking out compatible versions of the repositories as
+described in the section [Setting mbed-os/sd-driver Repositories To Compatible Versions](#settting-repos-to-compatible-versions)
+
### Insert SDCard into K64F
The examples and test cases have been run on a K64F with the following pre-formatted microSDHC cards:
@@ -589,24 +610,11 @@ Finally, copy the `mbed_app.json` application configuration file from `sd-driver
simhug01@E107851:/d/demo_area/ex_app1$
The `mbed_app.json` file specifies the SPI bus pin configuration for different targets,
-and is discussed in the
-[Testing with an SDCard on Target XYZ](#testing-with-an-sdcard-on-target-xyx) section.
+and is discussed in the [Testing with an SDCard on Target XYZ](#testing-with-an-sdcard-on-target-xyx) section.
### Build the mbed OS Test Cases
-The sd-driver master HEAD and the mbed-os master HEAD should be compatible
-with one another and therefore no specific tagged versions need to be checked out.
-However, in the case that you experience problems building, checkout out the compatible
-tagged version of each repository, as shown below:
-
- simhug01@E107851:/d/demo_area/ex_app1$ pushd mbed-os
- simhug01@E107851:/d/demo_area/ex_app1$ git checkout tags/mbed-os-5.4.0
- simhug01@E107851:/d/demo_area/ex_app1$ popd
- simhug01@E107851:/d/demo_area/ex_app1$ pushd sd-driver
- simhug01@E107851:/d/demo_area/ex_app1$ git checkout tags/sd-driver-0.0.2-mbed-os-5.4.0
- simhug01@E107851:/d/demo_area/ex_app1$ popd
-
Build the test cases for the K64F target using the following command:
simhug01@E107851:/d/demo_area/ex_app1$ mbed -v test --compile -t GCC_ARM -m K64F --app-config mbed_app.json 2>&1 | tee build_tests_gcc_20161219_1007.txt
@@ -643,6 +651,26 @@ The FAT32/SDCard test cases are at following locations in the source code tree:
/d/demo_area/ex_app1/sd-driver/features/TESTS/filesystem/fopen/fopen.cpp
+#### Setting mbed-os/sd-driver Repositories To Compatible Versions
+
+The sd-driver master HEAD and the mbed-os master HEAD should be compatible
+with one another and therefore no specific tagged versions need to be checked out.
+However, in the case that you experience problems building, checkout out the compatible
+tagged version of each repository, as shown below:
+
+ simhug01@E107851:/d/demo_area/ex_app1$ pushd mbed-os
+ simhug01@E107851:/d/demo_area/ex_app1$ git checkout tags/mbed-os-5.4.0
+ simhug01@E107851:/d/demo_area/ex_app1$ popd
+ simhug01@E107851:/d/demo_area/ex_app1$ pushd sd-driver
+ simhug01@E107851:/d/demo_area/ex_app1$ git checkout tags/sd-driver-0.0.2-mbed-os-5.4.0
+ simhug01@E107851:/d/demo_area/ex_app1$ popd
+
+In the above:
+
+- `mbed-os-5.4.0` should be replaced with the latest mbed-os release tag.
+- For an mbed-os release tag `mbed-os-x.y.z`, use the equivalent sd-driver tag `sd-driver-a.b.c-mbed-os-x.y.z`
+ where `a.b.c` is the latest version code for the `mbed-os-x.y.z` tag.
+
### Insert SDCard into K64F for Greentea Testing
See the previous section for [Insert SDCard into K64F](#insert-sdcard-into-k64f) for details.