This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-documentation.git


The following commit(s) were added to refs/heads/master by this push:
     new aaa2505  Add more rust target explanations
aaa2505 is described below

commit aaa25052faa07bf108873337e56b8336d73ef3e9
Author: Fabio Utzig <[email protected]>
AuthorDate: Thu Jun 4 13:58:08 2020 -0300

    Add more rust target explanations
---
 docs/tutorials/other/rust.rst | 33 ++++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/docs/tutorials/other/rust.rst b/docs/tutorials/other/rust.rst
index 704de86..c8df081 100644
--- a/docs/tutorials/other/rust.rst
+++ b/docs/tutorials/other/rust.rst
@@ -208,17 +208,40 @@ Next we need a script for running ``cargo`` and moving 
the library to the correc
 place. Create a new file named ``apps/blinky/cargo_build.sh`` with the 
following contents:
 
 .. code-block:: bash
-    :emphasize-lines: 1-5
+    :emphasize-lines: 1-21
 
     #!/bin/bash
+
     set -eu
-    TARGET="thumbv7m-none-eabi"
+
+    if [[ ${MYNEWT_VAL_ARCH_NAME} == '"cortex_m0"' ]]; then
+      TARGET="thumbv6m-none-eabi"
+    elif [[ ${MYNEWT_VAL_ARCH_NAME} == '"cortex_m3"' ]]; then
+      TARGET="thumbv7m-none-eabi"
+    elif [[ ${MYNEWT_VAL_ARCH_NAME} == '"cortex_m4"' || 
${MYNEWT_VAL_ARCH_NAME} == '"cortex_m7"' ]]; then
+      if [[ $MYNEWT_VAL_HARDFLOAT -eq 1 ]]; then
+        TARGET="thumbv7em-none-eabihf"
+      else
+        TARGET="thumbv7em-none-eabi"
+      fi
+    else
+      echo "The ARCH_NAME ${MYNEWT_VAL_ARCH_NAME} is not supported"
+      exit 1
+    fi
+
     cargo build --target="${TARGET}" --target-dir="${MYNEWT_PKG_BIN_DIR}"
     cp "${MYNEWT_PKG_BIN_DIR}"/${TARGET}/debug/*.a "${MYNEWT_PKG_BIN_ARCHIVE}"
 
 The script first sets the name of the target as the Rust compiler knows it. 
Sadly
 this is not the same as the names mynewt uses. You need to choose the same 
type of
-compiler as mynewt uses. For nrf52 you need ``thumbv7m-none-eabi``.
+compiler as mynewt uses. The following targets are available depending on the
+MCU type:
+
+* ``thumbv6m-none-eabi`` - use this for Cortex-M0 and Cortex-M0+.
+* ``thumbv7m-none-eabi`` - use this for Cortex-M3.
+* ``thumbv7em-none-eabi`` - use this for Cortex-M4 and Cortex-M7.
+* ``thumbv7em-none-eabihf`` - use this for Cortex-M4 and Cortex-M7 with the
+  ``HARDFLOAT`` syscfg enabled.
 
 Then it runs ``cargo build`` with
 the target directory set to a path that ``newt`` provides. Lastly it copies 
the 
@@ -257,14 +280,14 @@ Now we are ready to build a firmware! Remove ``main.c`` 
and start the build:
 
     $ rm apps/blinky/src/main.c
     $ newt build nrf52_blinky
-        
+
 If this command complains about a target may not be installed, then you need 
to 
 install it. You need the same toolchain as configured earlier for the 
``TARGET``
 variable:
 
 .. code-block:: console
 
-    $ rustup target add thumbv7m-none-eabi
+    $ rustup target add <your-target>
 
 Conclusion
 ~~~~~~~~~~

Reply via email to