You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2017/03/27 06:45:54 UTC

[2/2] incubator-mynewt-site git commit: 1) Update OS User Guide for Task and Scheduler: - Added os_task_remove function. - Added os_sched_remove function. 2) Updated OS User Guide Memory Pool: Added mp_min_free field to os_mempool structure.

1) Update OS User Guide for Task and Scheduler:
   - Added os_task_remove function.
   - Added os_sched_remove function.
2) Updated OS User Guide Memory Pool:
   Added mp_min_free field to os_mempool structure.
   Added os_mempool_info to data structure and os_mempool_info_get_next function.
3) Updated Slinky on Remote Communication guide.
   - Changed the guide to use the NRF52DK nordic board instead of the Olimex board.
   - Updated the newtmgr command device output for the echo, image and taskstats commands
   - General cleanup.
4) Updated Create my first Mynewt Project guide with 1-latest, new tree output for new source base,
   new build output, and new paths.
5) Fixed typo in Serial Setup Port. It was using P0.08 for both the tx and rx pin on the NRF52DK board. Changed
   tx pin should be P0.06.
6) Remove references of Eric, tam, and Nathan from OS User Guide/Bootloader
7) Fix typo in Blinky olimex, arduino zero and nrf52 tutorials.

This closes #164.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/commit/470d2f2b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/tree/470d2f2b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/diff/470d2f2b

Branch: refs/heads/develop
Commit: 470d2f2bd34d256b319a640be302ebb7daed490c
Parents: 82acf33
Author: cwanda <wa...@happycity.com>
Authored: Sun Mar 26 10:49:50 2017 -0700
Committer: aditihilbert <ad...@runtime.io>
Committed: Sun Mar 26 23:34:01 2017 -0700

----------------------------------------------------------------------
 .../os/core_os/context_switch/context_switch.md |   1 +
 .../core_os/context_switch/os_sched_remove.md   |  45 ++++
 docs/os/core_os/memory_pool/memory_pool.md      |  12 +
 .../memory_pool/os_mempool_info_get_next.md     |  70 +++++
 docs/os/core_os/task/os_task_remove.md          |  43 +++
 docs/os/core_os/task/task.md                    |   1 +
 docs/os/get_started/project_create.md           | 100 +++++--
 docs/os/get_started/serial_access.md            |   2 +-
 docs/os/modules/bootloader/bootloader.md        |  10 +-
 docs/os/tutorials/arduino_zero.md               |   6 +-
 docs/os/tutorials/nRF52.md                      |   4 +-
 docs/os/tutorials/olimex.md                     |   4 +-
 docs/os/tutorials/project-target-slinky.md      | 263 +++++++++++--------
 mkdocs.yml                                      |   5 +-
 14 files changed, 412 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/context_switch/context_switch.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/context_switch/context_switch.md b/docs/os/core_os/context_switch/context_switch.md
index e3c582a..b134dc1 100644
--- a/docs/os/core_os/context_switch/context_switch.md
+++ b/docs/os/core_os/context_switch/context_switch.md
@@ -36,6 +36,7 @@ The functions available in context_switch are:
 | [os_sched_insert](os_sched_insert.md) | Insert a task into scheduler's *ready to run* list. |
 | [os_sched_next_task](os_sched_next_task.md) | Returns the pointer to highest priority task from the list which are *ready to run*. |
 | [os_sched_os_timer_exp](os_sched_os_timer_exp.md) | Inform scheduler that OS time has moved forward. |
+| [os_sched_remove](os_sched_remove.md) | Stops a task and removes it from all the OS task lists. |
 | [os_sched_resort](os_sched_resort.md) | Inform scheduler that the priority of the given task has changed and the *ready to run* list should be re-sorted. |
 | [os_sched_set_current_task](os_sched_set_current_task.md) | Sets the given task to *running*. |
 | [os_sched_sleep](os_sched_sleep.md) | The given task's state is changed from *ready to run* to *sleeping*. |

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/context_switch/os_sched_remove.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/context_switch/os_sched_remove.md b/docs/os/core_os/context_switch/os_sched_remove.md
new file mode 100644
index 0000000..f0a5048
--- /dev/null
+++ b/docs/os/core_os/context_switch/os_sched_remove.md
@@ -0,0 +1,45 @@
+## <font color="#F2853F" style="font-size:24pt"> os_sched_remove </font>
+
+```c
+int os_sched_remove(struct os_task *t)
+```
+Stops and removes task `t`.
+
+The function removes the task from the `g_os_task_list` task list. It also removes the task from one of the following task list:
+
+* `g_os_run_list` if the task is in the Ready state.
+* `g_os_sleep_list` if the task is in the Sleep state.
+
+#### Arguments
+
+| Arguments | Description |
+|-----------|-------------|
+| `t` | Pointer to the `os_task` structure for the task to be removed.|
+
+#### Returned values
+OS_OK - The task is removed successfully.
+
+#### Notes
+This function must be called with all interrupts disabled.
+
+#### Example
+
+The `os_task_remove` function calls the `os_sched_remove ` function to remove a task:
+```c
+
+int
+os_task_remove(struct os_task *t)
+{
+    int rc;
+    os_sr_t sr;
+
+    /* Add error checking code to ensure task can removed. */
+  
+
+    /* Call os_sched_remove to remove the task. */
+    OS_ENTER_CRITICAL(sr);
+    rc = os_sched_remove(t);
+    OS_EXIT_CRITICAL(sr);
+    return rc;
+}
+```

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/memory_pool/memory_pool.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/memory_pool/memory_pool.md b/docs/os/core_os/memory_pool/memory_pool.md
index 0a9cc77..ec60de1 100644
--- a/docs/os/core_os/memory_pool/memory_pool.md
+++ b/docs/os/core_os/memory_pool/memory_pool.md
@@ -42,11 +42,21 @@ struct os_mempool {
     int mp_block_size;
     int mp_num_blocks;
     int mp_num_free;
+    int mp_min_free;
     uint32_t mp_membuf_addr;
     STAILQ_ENTRY(os_mempool) mp_list;    
     SLIST_HEAD(,os_memblock);
     char *name;
 };
+
+struct os_mempool_info {
+    int omi_block_size;
+    int omi_num_blocks;
+    int omi_num_free;
+    int omi_min_free;
+    char omi_name[OS_MEMPOOL_INFO_NAME_LEN];
+};
+
 ```
 <br>
 
@@ -55,6 +65,7 @@ struct os_mempool {
 | mp_block_size | Size of the memory blocks, in bytes. This is not the actual  number of bytes used by each block; it is the requested size of each block. The actual memory block size will be aligned to OS_ALIGNMENT bytes |
 | mp_num_blocks | Number of memory blocks in the pool |
 | mp_num_free | Number of free blocks left |
+| mp_min_free | Lowest number of free blocks seen |
 | mp_membuf_addr | The address of the memory block. This is used to check that a valid memory block is being freed. |
 | mp_list | List pointer to chain memory pools so they can be displayed by newt tools |
 | SLIST_HEAD(,os_memblock) | List pointer to chain free memory blocks |
@@ -70,6 +81,7 @@ The functions/macros available in mem_pool are:
 | [os_memblock_get](os_memblock_get) | Allocate an element from the memory pool. |
 | [os_mempool_init](os_mempool_init) | Initializes the memory pool. |
 | [os_memblock_put](os_memblock_put) | Releases previously allocated element back to the pool. |
+| [os_mempool_info_get_next](os_mempool_info_get_next) | Retrieves memory pool information for the next memory pool. |
 | [OS_MEMPOOL_BYTES](OS_MEMPOOL_BYTES) | Calculates how many bytes of memory is used by n number of elements, when individual element size is blksize bytes. |
 | [OS_MEMPOOL_SIZE](OS_MEMPOOL_SIZE) | Calculates the number of os_membuf_t elements used by n blocks of size blksize bytes. |
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/memory_pool/os_mempool_info_get_next.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/memory_pool/os_mempool_info_get_next.md b/docs/os/core_os/memory_pool/os_mempool_info_get_next.md
new file mode 100644
index 0000000..8f5f2a3
--- /dev/null
+++ b/docs/os/core_os/memory_pool/os_mempool_info_get_next.md
@@ -0,0 +1,70 @@
+## <font color="F2853F" style="font-size:24pt"> os_mempool_info_get_next</font>
+
+```c
+struct os_mempool * os_mempool_info_get_next(struct os_mempool *mp, struct os_mempool_info *omi)
+```
+Populates the os_mempool_info structure pointed to by `omi` with memory pool information. 
+The value of `mp` specifies the memory pool information to populate. If `mp` is **NULL**, it populates the information for the first memory pool on the memory pool list. If `mp` is not NULL, it populates the information for the next memory pool after `mp`.   
+ 
+<br>
+#### Arguments
+
+| Arguments | Description | 
+|-----------|-------------| 
+| `mp` | Pointer to the memory pool in the memory pool list from the previous `os_mempool_info_get_next` function call. The next memory pool after `mp` is populated. If `mp` is NULL, the first memory pool on the memory pool list is populated.|
+| `omi` |  Pointer to `os_mempool_info` structure where memory information will be stored.| 
+
+<br>
+#### Returned values
+
+* A pointer to the memory pool structure that was used to populate the memory pool information structure. 
+
+* NULL indicates `mp` is the last memory pool on the list and `omi` is not populated with memory pool information.
+
+<br>
+#### Example
+
+```c
+
+shell_os_mpool_display_cmd(int argc, char **argv)
+{
+    struct os_mempool *mp;
+    struct os_mempool_info omi;
+    char *name;
+
+    name = NULL;
+    found = 0;
+
+    if (argc > 1 && strcmp(argv[1], "")) {
+        name = argv[1];                  
+    }
+    console_printf("Mempools: \n");
+    mp = NULL;
+    console_printf("%32s %5s %4s %4s %4s\n", "name", "blksz", "cnt", "free",
+                   "min");
+    while (1) {
+        mp = o{_mempool_info_get_next(mp, &omi);
+        if (mp == NULL) {
+            break;      
+        }
+        if (name) {
+            if (strcmp(name, omi.omi_name)) {
+                continue;
+            } else {
+                found = 1;
+            }
+        }
+
+        console_printf("%32s %5d %4d %4d %4d\n", omi.omi_name,
+                       omi.omi_block_size, omi.omi_num_blocks,
+                       omi.omi_num_free, omi.omi_min_free);
+    }
+
+    if (name && !found) {
+        console_printf("Couldn't find a memory pool with name %s\n",
+                name);
+    }
+    return (0);
+}
+
+```

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/task/os_task_remove.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/task/os_task_remove.md b/docs/os/core_os/task/os_task_remove.md
new file mode 100644
index 0000000..79f18c3
--- /dev/null
+++ b/docs/os/core_os/task/os_task_remove.md
@@ -0,0 +1,43 @@
+## <font color="F2853F" style="font-size:24pt"> os_task_remove</font>
+
+```c
+int os_task_remove(struct os_task *t)
+```
+Removes a task, `t`, from the task list. A task cannot be removed when it is in one of the following states:
+
+* It is running - a task cannot remove itself.
+* It has not been initialized.
+* It is holding a lock on a semphore or mutex.
+* It is suspended waiting on a lock (semaphore or mutex) or for an event on an event queue.
+
+<br>
+#### Arguments
+
+| Arguments | Description | 
+|-----------|-------------| 
+| `t` | Pointer to the `os_task` structure for the task to be removed |
+
+<br>
+#### Returned values
+`OS_OK`:  Task `t` is removed sucessfully.
+<br>`OS_INVALID_PARM`:  Task `t` is the calling task. A task cannot remove itself.
+<br>`OS_NOT_STARTED`:  Task `t` is not initialized.
+<br>`OS_EBUSY`: Task `t` is either holding a lock or suspended waiting on lock on event.
+<br>
+#### Example
+
+```c
+
+struct os_task worker_task;
+
+int
+remove_my_worker_task(void)
+{
+    /* Add error checking code to ensure task can removed. */
+    
+    /* Call os_task_remove to remove the worker task */
+    rc = os_task_remove(&worker_task);
+    return rc;
+}
+```
+

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/core_os/task/task.md
----------------------------------------------------------------------
diff --git a/docs/os/core_os/task/task.md b/docs/os/core_os/task/task.md
index 48ad829..4deee3d 100644
--- a/docs/os/core_os/task/task.md
+++ b/docs/os/core_os/task/task.md
@@ -223,3 +223,4 @@ The functions available in task are:
 | [os_task_init](os_task_init.md) | Called to create a task. This adds the task object to the list of ready to run tasks. |
 | [os_task_count](os_task_count.md) | Returns the number of tasks that have been created. |
 | [os_task_info_get_next](os_task_info_get_next.md) | Populates the os task info structure given with task information. |
+| [os_task_remove](os_task_remove.md)| Removes a task from the task list.| 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/get_started/project_create.md
----------------------------------------------------------------------
diff --git a/docs/os/get_started/project_create.md b/docs/os/get_started/project_create.md
index 1d794b5..199fbd5 100644
--- a/docs/os/get_started/project_create.md
+++ b/docs/os/get_started/project_create.md
@@ -85,12 +85,11 @@ file.
 ```no-highlight
 repository.apache-mynewt-core:
     type: github
-    vers: 0-latest
+    vers: 1-latest
     user: apache
     repo: incubator-mynewt-core
 ```
-Changing to 0-dev will put you on the develop branch. **The Develop Branch may not be stable and 
-you may encounter bugs or other problems.**
+Changing to 1-dev will put you on the develop branch. **The Develop Branch may not be stable and you may encounter bugs or other problems.**
 
 <br>
 
@@ -115,7 +114,7 @@ Once _newt install_ has successfully finished, the contents of _apache-mynewt-co
 
 ```no-highlight
 $ tree -L 2 repos/apache-mynewt-core/
-repos/apache-mynewt-core/
+
 repos/apache-mynewt-core/
 \u251c\u2500\u2500 CODING_STANDARDS.md
 \u251c\u2500\u2500 DISCLAIMER
@@ -128,10 +127,12 @@ repos/apache-mynewt-core/
 \u2502�� \u251c\u2500\u2500 blehci
 \u2502�� \u251c\u2500\u2500 bleprph
 \u2502�� \u251c\u2500\u2500 bleprph_oic
+\u2502�� \u251c\u2500\u2500 blesplit
 \u2502�� \u251c\u2500\u2500 bletest
 \u2502�� \u251c\u2500\u2500 bletiny
 \u2502�� \u251c\u2500\u2500 bleuart
 \u2502�� \u251c\u2500\u2500 boot
+\u2502�� \u251c\u2500\u2500 fat2native
 \u2502�� \u251c\u2500\u2500 ffs2native
 \u2502�� \u251c\u2500\u2500 ocf_sample
 \u2502�� \u251c\u2500\u2500 slinky
@@ -139,16 +140,20 @@ repos/apache-mynewt-core/
 \u2502�� \u251c\u2500\u2500 spitest
 \u2502�� \u251c\u2500\u2500 splitty
 \u2502�� \u251c\u2500\u2500 test
+\u2502�� \u251c\u2500\u2500 testbench
 \u2502�� \u2514\u2500\u2500 timtest
 \u251c\u2500\u2500 boot
 \u2502�� \u251c\u2500\u2500 boot_serial
 \u2502�� \u251c\u2500\u2500 bootutil
-\u2502�� \u2514\u2500\u2500 split
+\u2502�� \u251c\u2500\u2500 split
+\u2502�� \u2514\u2500\u2500 split_app
 \u251c\u2500\u2500 compiler
 \u2502�� \u251c\u2500\u2500 arm-none-eabi-m0
 \u2502�� \u251c\u2500\u2500 arm-none-eabi-m4
 \u2502�� \u251c\u2500\u2500 gdbmacros
-\u2502�� \u2514\u2500\u2500 sim
+\u2502�� \u251c\u2500\u2500 mips
+\u2502�� \u251c\u2500\u2500 sim
+\u2502�� \u2514\u2500\u2500 sim-mips
 \u251c\u2500\u2500 crypto
 \u2502�� \u251c\u2500\u2500 mbedtls
 \u2502�� \u2514\u2500\u2500 tinycrypt
@@ -160,6 +165,8 @@ repos/apache-mynewt-core/
 \u2502�� \u251c\u2500\u2500 json
 \u2502�� \u2514\u2500\u2500 tinycbor
 \u251c\u2500\u2500 fs
+\u2502�� \u251c\u2500\u2500 disk
+\u2502�� \u251c\u2500\u2500 fatfs
 \u2502�� \u251c\u2500\u2500 fcb
 \u2502�� \u251c\u2500\u2500 fs
 \u2502�� \u2514\u2500\u2500 nffs
@@ -205,7 +212,6 @@ repos/apache-mynewt-core/
 \u2502�� \u251c\u2500\u2500 crash_test
 \u2502�� \u251c\u2500\u2500 flash_test
 \u2502�� \u251c\u2500\u2500 runtest
-\u2502�� \u251c\u2500\u2500 testreport
 \u2502�� \u2514\u2500\u2500 testutil
 \u251c\u2500\u2500 time
 \u2502�� \u2514\u2500\u2500 datetime
@@ -214,7 +220,7 @@ repos/apache-mynewt-core/
     \u251c\u2500\u2500 crc
     \u2514\u2500\u2500 mem
 
-87 directories, 9 files
+94 directories, 9 files
 ```
 
 As you can see, the core of the Apache Mynewt operating system has been brought 
@@ -226,21 +232,44 @@ into your local directory.
 
 You have already built your first basic project. You can ask Newt to execute the unit tests in a package. For example, to test the `libs/os` package in the `apache-mynewt-core` repo, call newt as shown below.
 
-```
+```no-highlight
 $ newt test @apache-mynewt-core/sys/config
 Testing package @apache-mynewt-core/sys/config/test-fcb
 Compiling bootutil_misc.c
 Compiling image_ec.c
 Compiling image_rsa.c
 Compiling image_validate.c
-<snip>
+
+    ...
+
+Linking ~/dev/myproj/bin/targets/unittest/sys_config_test-fcb/app/sys/config/test-fcb/sys_config_test-fcb.elf
+Executing test: ~/dev/myproj/bin/targets/unittest/sys_config_test-fcb/app/sys/config/test-fcb/sys_config_test-fcb.elf
+Testing package @apache-mynewt-core/sys/config/test-nffs
+Compiling repos/apache-mynewt-core/encoding/base64/src/hex.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_cli.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_dirent.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_mkdir.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_mount.c
+Compiling repos/apache-mynewt-core/encoding/base64/src/base64.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_file.c
+Compiling repos/apache-mynewt-core/fs/disk/src/disk.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fs_nmgr.c
+Compiling repos/apache-mynewt-core/fs/fs/src/fsutil.c
+Compiling repos/apache-mynewt-core/fs/nffs/src/nffs.c
+
+     ...
+
+Linking ~/dev/myproj/bin/targets/unittest/sys_config_test-nffs/app/sys/config/test-nffs/sys_config_test-nffs.elf
+Executing test: ~/dev/myproj/bin/targets/unittest/sys_config_test-nffs/app/sys/config/test-nffs/sys_config_test-nffs.elf
+Passed tests: [sys/config/test-fcb sys/config/test-nffs]
+All tests passed
 ```
 
 **NOTE:** If you've installed the latest gcc using homebrew on your Mac, you will likely be running gcc-6. Make sure you have adjusted the compiler.yml configuration to reflect that as noted in [Native Install Option](native_tools.md). You can choose to downgrade to gcc-5 in order to use the default gcc compiler configuration for MyNewt.
 
 **NOTE:** If you are running the standard gcc for 64-bit machines, it does not support 32-bit. In that case you will see compilation errors. You need to install multiboot gcc (e.g. gcc-multilib if you running on a 64-bit Ubuntu).
 
-```
+```no-highlight
 $ brew uninstall gcc-6
 $ brew link gcc-5
 ```
@@ -251,14 +280,21 @@ To test all the packages in a project, specify `all` instead of the package name
 
 ```no-highlight
 $ newt test all
+Testing package @apache-mynewt-core/boot/boot_serial/test
+Compiling repos/apache-mynewt-core/boot/boot_serial/test/src/boot_test.c
+Compiling repos/apache-mynewt-core/boot/boot_serial/test/src/testcases/boot_serial_setup.c
+
+     ...
+
+Linking ~/dev/myproj/bin/targets/unittest/boot_boot_serial_test/app/boot/boot_serial/test/boot_boot_serial_test.elf
+
 ...lots of compiling and testing...
-...about 2 minutes later ...
-Compiling mn_sock_test.c
-Archiving mn_socket.a
-Linking test_mn_socket
-Executing test: /Users/dsimmons/myproj/bin/unittest/sys/mn_socket/test_mn_socket
-Passed tests: [libs/json libs/util libs/mbedtls net/nimble/host hw/hal libs/bootutil sys/log sys/config sys/fcb fs/nffs libs/os libs/boot_serial sys/mn_socket]
+
+Linking ~/dev/myproj/bin/targets/unittest/util_cbmem_test/app/util/cbmem/test/util_cbmem_test.elf
+Executing test: ~/dev/myproj/bin/targets/unittest/util_cbmem_test/app/util/cbmem/test/util_cbmem_test.elf
+Passed tests: [boot/boot_serial/test boot/bootutil/test crypto/mbedtls/test encoding/base64/test encoding/cborattr/test encoding/json/test fs/fcb/test fs/nffs/test kernel/os/test net/ip/mn_socket/test net/nimble/host/test net/oic/test sys/config/test-fcb sys/config/test-nffs sys/flash_map/test sys/log/full/test util/cbmem/test]
 All tests passed
+
 ```
 
 <br>
@@ -267,19 +303,25 @@ All tests passed
 
 To build and run your new application, simply issue the following command:
 
-```
+```no-highlight
 $ newt build my_blinky_sim 
 Building target targets/my_blinky_sim
-Compiling main.c
-Archiving blinky.a
-Compiling hal_bsp.c
-Compiling os_bsp.c
-Compiling sbrk.c
-Archiving native.a
-Compiling flash_map.c
-<snip>
-Linking blinky.elf
-App successfully built: ~/myproj/bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf
+Compiling repos/apache-mynewt-core/hw/hal/src/hal_common.c
+Compiling repos/apache-mynewt-core/hw/drivers/uart/src/uart.c
+Compiling repos/apache-mynewt-core/hw/hal/src/hal_flash.c
+Compiling repos/apache-mynewt-core/hw/bsp/native/src/hal_bsp.c
+Compiling repos/apache-mynewt-core/hw/drivers/uart/uart_hal/src/uart_hal.c
+Compiling apps/blinky/src/main.c
+
+    ...
+
+
+Archiving sys_mfg.a
+Archiving sys_sysinit.a
+Archiving util_mem.a
+Linking ~/dev/myproj/bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf
+Target successfully built: targets/my_blinky_sim
+
 ```
 
 <br>
@@ -289,7 +331,7 @@ App successfully built: ~/myproj/bin/targets/my_blinky_sim/app/apps/blinky/blink
 You can run the simulated version of your project and see the simulated LED
 blink. If you are using newt docker, use `newt run` to run the simulated binary.
 
-```
+```no-highlight
 $ newt run my_blinky_sim
 No download script for BSP hw/bsp/native
 Debugging /workspace/bin/my_blinky_sim/apps/blinky/blinky.elf

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/get_started/serial_access.md
----------------------------------------------------------------------
diff --git a/docs/os/get_started/serial_access.md b/docs/os/get_started/serial_access.md
index 57dd6d1..ee4fe9e 100644
--- a/docs/os/get_started/serial_access.md
+++ b/docs/os/get_started/serial_access.md
@@ -49,7 +49,7 @@ It should look like this:
 On the NRF52DK developer kit board, the Rx pin is P0.08, so you'll attach your
 jumper wire from the Tx pin (D0) of the FT232H board here.
 
-The TX Pin is pin P0.08, so you'll attache the jumper wire from the Rx Pin (D1)
+The TX Pin is pin P0.06, so you'll attache the jumper wire from the Rx Pin (D1)
 on the FT232H board here. 
 
 Finally, the GND wire should go to the GND Pin on the NRF52DK. When you're

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/modules/bootloader/bootloader.md
----------------------------------------------------------------------
diff --git a/docs/os/modules/bootloader/bootloader.md b/docs/os/modules/bootloader/bootloader.md
index 6c89ae6..3de1ca3 100644
--- a/docs/os/modules/bootloader/bootloader.md
+++ b/docs/os/modules/bootloader/bootloader.md
@@ -228,15 +228,7 @@ sector at a time.  The swap status is necessary for resuming a swap operation
 if the device rebooted before a swap operation completed.
 
 3. Copy done: A single byte indicating whether the image in this slot is
-complete (0x01=d< bok@bok.net
-35d33
-< ericmanganaro@gmail.com
-42d39
-< tam@proxy.co
-55d51
-< nathan@natb1.com
-110d105
-< rvs@apache.orgone; 0xff=not done).
+complete (0x01=done, 0xff=not done).
 
 4. Image OK: A single byte indicating whether the image in this slot has been
 confirmed as good by the user (0x01=confirmed; 0xff=not confirmed).

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/tutorials/arduino_zero.md
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/arduino_zero.md b/docs/os/tutorials/arduino_zero.md
index a334d87..4acfb2f 100644
--- a/docs/os/tutorials/arduino_zero.md
+++ b/docs/os/tutorials/arduino_zero.md
@@ -235,7 +235,7 @@ If the `newt load` command outputs the following error messages, you will need t
 ```
 $ newt load arduino_boot -v
 Loading bootloader
-Error: Downloading ~/dev/arduino_zero/bin/targets/arduino_boot/app/apps/boot/boot.elf.bin to 0x0
+Error: Downloading ~/dev/myproj/bin/targets/arduino_boot/app/apps/boot/boot.elf.bin to 0x0
 Open On-Chip Debugger 0.9.0 (2015-11-15-05:39)
 Licensed under GNU GPL v2
 For bug reports, read
@@ -284,7 +284,7 @@ Run the `newt load arduino_boot` command again after erasing the board.
 
 After you load the bootloader successfully onto your board, you can load and run the Blinky application. 
 
-Run the `newt run arduino_blinky 1.0.0` command to build the arduino_blinky target (if necessary), create an image with verison 1.0.0, load the image onto the board, and start a debugger session. 
+Run the `newt run arduino_blinky 1.0.0` command to build the arduino_blinky target (if necessary), create an image with version 1.0.0, load the image onto the board, and start a debugger session. 
 ```no-highlight
 $ newt run arduino_blinky 1.0.0
 App image succesfully generated: ~/dev/myproj/bin/targets/arduino_blinky/app/apps/blinky/blinky.img
@@ -342,7 +342,7 @@ Continuing.
 
 <br>
 
-**NOTE:** The 1.0.0 is the version number to assign to the image. You may assign an abitrary version number. If you are not providing remote upgrade, and are just developing locally, you can provide 1.0.0 for every image version.
+**NOTE:** The 1.0.0 is the version number to assign to the image. You may assign an arbitrary version number. If you are not providing remote upgrade, and are just developing locally, you can provide 1.0.0 for every image version.
 
 If you want the image to run without the debugger connected, simply quit the
 debugger and restart the board.  The image you programmed will come up and run on 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/tutorials/nRF52.md
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/nRF52.md b/docs/os/tutorials/nRF52.md
index 4661147..2a14967 100644
--- a/docs/os/tutorials/nRF52.md
+++ b/docs/os/tutorials/nRF52.md
@@ -26,7 +26,7 @@ Ensure that you have met the following prerequisites before continuing with this
 * Create a project space (directory structure) and populated it with the core code repository (apache-mynewt-core) or know how to as explained in [Creating Your First Project](/os/get_started/project_create).
 * Read the Mynewt OS [Concepts](/os/get_started/vocabulary.md) section.
 
-This tutorial uses the Nordic NRF52DK board.
+This tutorial uses the Nordic nRF52-DK board.
 <br>
 
 ### Create a Project  
@@ -155,7 +155,7 @@ App image succesfully generated: ~/dev/myproj/bin/targets/nrf52_blinky/app/apps/
 
 ### Connect to the Board
 
-* Connect a micro-USB cable from your computer to the micro-USB port on the NRF52DK board.
+* Connect a micro-USB cable from your computer to the micro-USB port on the nRF52-DK board.
 * Turn the power on the board to ON. You should see the green LED light up on the board.
         
 ### Load the Bootloader and the Blinky Application Image

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/tutorials/olimex.md
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/olimex.md b/docs/os/tutorials/olimex.md
index 3018234..c42a957 100644
--- a/docs/os/tutorials/olimex.md
+++ b/docs/os/tutorials/olimex.md
@@ -149,12 +149,12 @@ Configure the board to bootload from flash memory and to use the JTAG/SWD for th
 * Locate the boot jumpers on the lower right corner of the board.  **B1_1/B1_0** and **B0_1/B0_0** are PTH jumpers to control the boot mode when a bootloader is present.  These two jumpers must be moved together.  The board searches for the bootloader in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we configure the board to boot from flash by jumpering **B0_0** and **B1_0**.
 **Note:** The markings on the board may not always be accurate, and you should always refer to the manual for the correct positioning. 
 
-* Locate the **Power Input Select** jumpers on the lower left corner of the board.  Set the Power Select jumpers to position 3 and 4 to use the JTAG/SWD for the power source. If you would like to use a different power source, refer to [OLIMEZ STM32-E407] user manual](https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407.pdf) to pin specificiation.
+* Locate the **Power Input Select** jumpers on the lower left corner of the board.  Set the Power Select jumpers to position 3 and 4 to use the JTAG/SWD for the power source. If you would like to use a different power source, refer to the [OLIMEX STM32-E407 user manual](https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407.pdf) for pin specifications.
  
 
 * Connect the JTAG connector to the JTAG/SWD interface on the board. 
 
-* Connect the USB A-B cable to the ARM-USB-TINY-H connector and your personal computer. 
+* Connect the USB A-B cable to the ARM-USB-TINY-H connector and your computer.
 
 * Check that the red PWR LED lights up.
 <br>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/docs/os/tutorials/project-target-slinky.md
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/project-target-slinky.md b/docs/os/tutorials/project-target-slinky.md
index fcdf759..61eb4c5 100644
--- a/docs/os/tutorials/project-target-slinky.md
+++ b/docs/os/tutorials/project-target-slinky.md
@@ -1,184 +1,233 @@
-## Project Slinky using STM32 board
+## Project Slinky using the Nordic nRF52 Board
 
 
 <br>
 
-The goal of the project is to enable and demonstrate remote communications with the Mynewt OS via newt manager (newtmgr) by leveraging a sample app "Slinky" included under the /apps directory in the repository. In this project we will define a target for the STM32-E407 board and assign the app "Slinky" to it.
+The goal of this tutorial is to enable and demonstrate remote communications with a Mynewt application running on a device via newt manager (newtmgr). It uses the "Slinky" sample application that is included in the apache-mynewt-core/apps directory and the Nordic nRF52-DK board.
 
-If you have an existing project using a target that does not use the Slinky app and you wish to add newtmgt functonality to it, check out the tutorial titled [Enable newtmgr in any app](add_newtmgr.md).
+If you have an existing project that has a different application and you wish to add newtmgr functionality to it, check out the [Enable newtmgr in any app](add_newtmgr.md) tutorial.
 
-<br>
-
-### What you need
-
-1. STM32-E407 development board from Olimex. You can order it from [http://www.mouser.com](http://www.mouser.com/search/ProductDetail.aspx?R=0virtualkey0virtualkeySTM32-E407), [http://www.digikey.com](http://www.digikey.com/product-detail/en/STM32-E407/1188-1093-ND/3726951), and other places.
-2. ARM-USB-TINY-H connector with JTAG interface for debugging ARM microcontrollers (comes with the ribbon cable to hook up to the board)
-3. USB A-B type cable to connect the debugger to your personal computer
-4. A USB to TTL Serial Cable with female wiring harness. An example is [http://www.amazon.com/JBtek�-WINDOWS-Supported-Raspberry-Programming/dp/B00QT7LQ88/ref=lp_464404_1_9?s=pc&ie=UTF8&qid=1454631303&sr=1-9](http://www.amazon.com/JBtek�-WINDOWS-Supported-Raspberry-Programming/dp/B00QT7LQ88/ref=lp_464404_1_9?s=pc&ie=UTF8&qid=1454631303&sr=1-9)
-5. Personal Computer
+### Prerequisites
 
-The instructions assume the user is using a Bourne-compatible shell (e.g. bash or zsh) on your computer. The given instructions have been tested with the following releases of operating systems:
+Ensure that you have met the following prerequisites before continuing with this tutorial:
 
-* Mac: OS X Yosemite Version 10.10.5
+* Have a Nordic nRF52-DK board.  
+* Have Internet connectivity to fetch remote Mynewt components.
+* Have a computer to build a Mynewt application and connect to the board over USB.
+* Have a Micro-USB cable to connect the board and the computer.
+* Have a [Serial Port Setup](/os/get_started/serial_access.md). 
+* Install the newt tool and the toolchains (See [Basic Setup](/os/get_started/get_started.md)).
+* Install the [newtmgr tool](../../newtmgr/installing/). 
+* Create a project space (directory structure) and populated it with the core code repository (apache-mynewt-core) or know how to as explained in [Creating Your First Project](/os/get_started/project_create).
+* Read the Mynewt OS [Concepts](/os/get_started/vocabulary.md) section.
 
-### Overview of steps
+### Overview of Steps
 
 * Install dependencies
-* Define a target using the newt tool
+* Define targets using the newt tool
 * Build executables for the targets using the newt tool
 * Set up serial connection with the targets
 * Create a connection profile using the newtmgr tool
 * Use the newtmgr tool to communicate with the targets
 
-### Install newt
-
-If you have not already installed `newt`, see the
-[newt installation instructions](../get_started/get_started/) and ensure newt is installed an in your path.
-
-### Install newtmgr
-
-If you have not already installed `newtmgr`, see the
-[newtmgr installation instructions](../../newtmgr/installing/) and ensure newtmgr is installed an in your path.
+### Create a New Project
+Create a new project if you do not have an existing one.  You can skip this step and proceed to [create the targets](#create_targets) if you already have a project created or completed the [Sim Slinky](project-slinky.md) tutorial. 
 
-### Create a new project
-
-Instructions for creating a project are located in the [Basic Setup](../get_started/project_create/) section of the [Mynewt Documentation](../introduction.md).
-
-If you already completed [Sim Slinky](project-slinky.md) you can skip this step.
-
-We will list only the steps here for brevity.  We will name the project
-`slinky`.
+Run the following commands to create a new project. We name the project `slinky`.	
 
 ```no-highlight
 $ newt new slinky
 Downloading project skeleton from apache/incubator-mynewt-blinky...
 ...
 Installing skeleton in slink...
-Project slink successfully created
+Project slinky successfully created
 $ cd slinky
-$newt install -v
-Downloading repository description for apache-mynewt-core... success!
-...
-Repos successfully installed
+$newt install 
+apache-mynewt-core
 ```
 
 <br>
 
-### Set up your target builds
+###<a name="create_targets"></a> Create the Targets
+
+Create two targets for the nRF52-DK board - one for the bootloader and one for the Slinky application.
 
-Create a target for `stm32_slinky` using the native BSP. The Newt tool output is suppressed below for brevity.
+Run the following `newt target` commands, from your project directory, to create a bootloader target. We name the target `nrf52_boot`.
 
 ```no-highlight
-$ newt target create stm32_slinky
-$ newt target set stm32_slinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
-$ newt target set stm32_slinky build_profile=debug
-$ newt target set stm32_slinky app=@apache-mynewt-core/apps/slinky
+$ newt target create nrf52_boot
+$ newt target set nrf52_boot bsp=@apache-mynewt-core/hw/bsp/nrf52dk
+$ newt target set nrf52_boot build_profile=optimized
+$ newt target set nrf52_boot app=@apache-mynewt-core/apps/boot
 ```
-
-Create a second target for `stm32_bootloader` to build a bootloader to boot
-the `stm32_slinky` image.  The tool output is suppressed below for brevity.
+<br>
+Run the following `newt target` commands to create a target for the Slinky application. We name the target `nrf52_slinky`.
 
 ```no-highlight
-$ newt target create stm32_bootloader
-$ newt target set stm32_bootloader bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
-$ newt target set stm32_bootloader build_profile=optimized
-$ newt target set stm32_bootloader target.app=@apache-mynewt-core/apps/boot
+$ newt target create nrf52_slinky
+$ newt target set nrf52_slinky bsp=@apache-mynewt-core/hw/bsp/nrf52dk
+$ newt target set nrf52_slinky build_profile=debug
+$ newt target set nrf52_slinky app=@apache-mynewt-core/apps/slinky
 ```
 
 <br>
 
-### Build Targets
+### Build the Targets
 
-```no-highlight
-$ newt build stm32_slinky
-Compiling main.c
-...
-Linking slinky.elf
-App successfully built: ~/dev/slinky/bin/stm32_slinky/apps/slinky/slinky.elf
-```
+Run the `newt build nrf52_boot` command to build the bootloader:
 
 ```no-highlight
-newt build stm32_bootloader
-Compiling crc16.c
-...
-Linking boot.elf
-App successfully built: ~/slinky/bin/stm32_bootloader/apps/boot/boot.elf
+$ newt build nrf52-boot
+Building target targets/nrf52_boot
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+Compiling repos/apache-mynewt-core/apps/boot/src/boot.c
+    ...
+
+Archiving sys_mfg.a
+Archiving sys_sysinit.a
+Archiving util_mem.a
+Linking ~/dev/slinky/bin/targets/nrf52_boot/app/apps/boot/boot.elf
+Target successfully built: targets/nrf52_boot
 ```
+<br>
 
-For the main image, you need to create an image using newt create-image.
-Give this image some arbitrary version number "1.2.3".
+Run the `newt build nrf52_slinky` command to build the Slinky application:
 
 ```no-highlight
-$ newt create-image stm32_slinky 1.2.3
-App image successfully generated: /Users/paulfdietrich/dev/slinky/bin/stm32_slinky/apps/slinky/slinky.img
-Build manifest: /Users/paulfdietrich/dev/slinky/bin/stm32_slinky/apps/slinky/manifest.json
+$newt build nrf52_slinky
+Building target targets/nrf52_slinky
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+Compiling repos/apache-mynewt-core/boot/split/src/split.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+Compiling repos/apache-mynewt-core/boot/split/src/split_config.c
+Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aesni.c
+Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+Compiling repos/apache-mynewt-core/apps/slinky/src/main.c
+
+       ...
+
+Archiving util_mem.a
+Linking ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.elf
+Target successfully built: targets/nrf52_slinky
 ```
 
 <br>
 
-### Using newtmgr with a remote target
-
-* First make sure the USB A-B type cable is connected to the ARM-USB-TINY-H debugger connector on the Olimex board.
+### Sign and Create the Slinky Application Image
 
-     Next go the to project directory and download the slinky project image to the flash of the Olimex board.
+Run the `newt create-image nrf52_slinky 1.0.0` command to create and sign the application image. You may assign an arbitrary version (e.g. 1.0.0) to the image.
 
 ```no-highlight
-$ newt load stm32_bootloader
-$ newt load stm32_slinky
+$ newt create-image nrf52_slinky 1.0.0
+App image succesfully generated: ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.img
+$
 ```
+<br>
+
+### Connect to the Board
 
-You can now disconnect the debugging cable from the board. You should see the green LED blinking. If not, try powercycling the board.
+* Connect a micro-USB cable from your computer to the micro-USB port on the nRF52-DK board.
+* Turn the power on the board to ON. You should see the green LED light up on the board.
 
 <br>
+### Load the Bootloader and the Slinky Application Image
 
-* Now you have to set up the serial connection from your computer to the Olimex board. Locate the PC6/USART6_TX (pin#3), PC7/USART6_RX (pin#4), and GND (pin#2) of the UEXT connector on the Olimex board. More information on the UEXT connector can be found at [https://www.olimex.com/Products/Modules/UEXT/](https://www.olimex.com/Products/Modules/UEXT/). The schematic of the board can be found at [https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407_sch.pdf](https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407_sch.pdf) for reference.
+Run the `newt load nrf52_boot` command to load the bootloader onto the board:
 
-    ![Alt Layout - Serial Connection](pics/serial_conn.png)
+```no-highlight
+$ newt load nrf52_boot
+Loading bootloader
+$
+```
+<br>
+Run the `newt load nrf52_slinky` command to load the Slinky application image onto the board:
+```no-highlight
+$ newt load nrf52_slinky
+Loading app image into slot 1
+$
+```
+<br>
+
+
+### Connect Newtmgr with the Board using a Serial Connection
 
+Set up serial connection from your computer to the nRF52-DK board (See [Serial Port Setup](/os/get_started/serial_access.md)).  
 
-	* Connect the female RX pin of the USB-TTL serial cable to the TX of the UEXT connector on the board.
-	* Connect the female TX pin of the USB-TTL serial cable to the RX of the UEXT connector on the board.
-	* Connect the GND pin of the USB-TTL serial cable to the GND of the UEXT connector on the board.
+Locate the port, in the /dev directory on your computer, that the serial connection uses. It should be of the type `tty.usbserial-<some identifier>`.
 
+```no-highlight
+$ ls /dev/tty*usbserial*
+/dev/tty.usbserial-1d11
+$
+```
 <br>
+Setup a newtmgr connection profile for the serial port. For our example, the port is  `/dev/tty.usbserial-1d11`. 
 
-* Locate the serial connection established in the /dev directory of your computer. It should be of the type `tty.usbserial-<some identifier>`.
+Run the `newtmgr conn add` command to define a newtmgr connection profile for the serial port.  We name the connection profile `nrf52serial`.  You will need to replace the `connstring` with the specific port for your serial connection. 
 
 ```no-highlight
-        $ ls /dev/tty.usbserial-AJ03HAQQ
-        /dev/tty.usbserial-AJ03HAQQ
+$ newtmgr conn add nrf52serial type=serial connstring=/dev/tty.usbserial-1d11
+Connection profile nrf52serial successfully added
+$
+```
+<br>
+You can run the `newt conn show` command to see all the newtmgr connection profiles:
+
+```no-highlight
+$ newtmgr conn show
+Connection profiles:
+  nrf52serial: type=serial, connstring='/dev/tty.usbserial-1d11'
+  sim1: type=serial, connstring='/dev/ttys012'
+$
 ```
 
 <br>
+### Use Newtmgr to Query the Board
+Run some newtmgr commands to query and receive responses back from the board (See the [Newt Manager Guide](newtmgr/overview) for more information on the newtmgr commands). 
+
 
-* You now have to define a connection profile using newtmgr. You can give it any name you want. The example below shows the connection profile being named as the very imaginative `olimex01`.
+Run the `newtmgr echo hello -c nrf52serial` command. This is the simplest command that requests the board to echo back the text. 
 
 ```no-highlight
-        $ pwd
-        /Users/<user>/dev/project/slinky
-        $ newtmgr conn add olimex01 type=serial connstring=/dev/tty.usbserial-AJ03HAQQ
-        Connection profile olimex01 successfully added
-        $ newtmgr conn show
-        Connection profiles:
-          sim1: type=serial, connstring='/dev/ttys007'
-          olimex01: type=serial, connstring='/dev/tty.usbserial-AJ03HAQQ'
+$ newtmgr echo hello -c nrf52serial 
+hello
+$
 ```
-
 <br>
+Run the `newtmgr image list -c nrf52serial` command to list the images on the board:
 
-* Now go ahead and query the Olimex board to get responses back. The simplest command is the `echo` command to ask it to respond with the text you send it.
+```no-highlight
+$ newtmgr image list -c nrf52serial 
+Images:
+ slot=0
+    version: 1.0.0
+    bootable: true
+    flags: active confirmed
+    hash: f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42
+Split status: N/A
+$
+```
+
+<br>
+Run the `newtmgr taskstats -c nrf52serial` command to display the task statistics on the board:
 
 ```no-highlight
-    $ newtmgr echo -c olimex01 hello
-    {"r": "hello"}
-    $ newtmgr image -c olimex01 list
-    Images:
-        0 : 1.2.3
-    $ newtmgr -c olimex01 taskstats
-    Return Code = 0
-      newtmgr (prio=4 tid=2 runtime=0 cswcnt=12 stksize=512 stkusage=255 last_checkin=0 next_checkin=0)
-      task1 (prio=1 tid=3 runtime=0 cswcnt=299 stksize=128 stkusage=33 last_checkin=0 next_checkin=0)
-      task2 (prio=2 tid=4 runtime=0 cswcnt=300 stksize=128 stkusage=31 last_checkin=0 next_checkin=0)
-      idle (prio=255 tid=0 runtime=299916 cswcnt=313 stksize=32 stkusage=18 last_checkin=0 next_checkin=0)
-      shell (prio=3 tid=1 runtime=1 cswcnt=20 stksize=384 stkusage=60 last_checkin=0 next_checkin=0)
+$ newtmgr taskstats -c nrf52serial
+Return Code = 0
+      task pri tid  runtime      csw    stksz   stkuse last_checkin next_checkin
+     task1   8   2        0     1751      192      110        0        0
+     task2   9   3        0     1751       64       31        0        0
+      idle 255   0   224081     2068       64       32        0        0
+      main 127   1        3       29     1024      365        0        0
+$
 ```

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/470d2f2b/mkdocs.yml
----------------------------------------------------------------------
diff --git a/mkdocs.yml b/mkdocs.yml
index 6119efc..ba52bb6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -49,7 +49,7 @@ pages:
         - 'Events and Event Queues': 'os/tutorials/event_queue.md'
         - 'Project Slinky for remote comms':
             - 'Slinky on sim device': 'os/tutorials/project-slinky.md'
-            - 'Slinky on STM32 board': 'os/tutorials/project-target-slinky.md'
+            - 'Slinky on Nordic nRF52 board': 'os/tutorials/project-target-slinky.md'
         - 'Enable Newt Manager in any app': 'os/tutorials/add_newtmgr.md' 
         - 'Enable the OS Shell and Console': 'os/tutorials/add_shell.md'
         - 'BLE app to check stats via console': 'os/tutorials/bletiny_project.md'
@@ -83,6 +83,7 @@ pages:
                     - 'os_sched_insert': 'os/core_os/context_switch/os_sched_insert.md'
                     - 'os_sched_next_task': 'os/core_os/context_switch/os_sched_next_task.md'
                     - 'os_sched_os_timer_exp': 'os/core_os/context_switch/os_sched_os_timer_exp.md'
+                    - 'os_sched_remove': 'os/core_os/context_switch/os_sched_remove.md'
                     - 'os_sched_resort': 'os/core_os/context_switch/os_sched_resort.md'
                     - 'os_sched_set_current_task': 'os/core_os/context_switch/os_sched_set_current_task.md'
                     - 'os_sched_sleep': 'os/core_os/context_switch/os_sched_sleep.md'
@@ -101,6 +102,7 @@ pages:
                     - 'os_task_count': 'os/core_os/task/os_task_count.md'
                     - 'os_task_info_get_next': 'os/core_os/task/os_task_info_get_next.md'
                     - 'os_task_init': 'os/core_os/task/os_task_init.md'
+                    - 'os_task_remove': 'os/core_os/task/os_task_remove.md'
             - Event Queues:
                 - toc: 'os/core_os/event_queue/event_queue.md'
                 - 'Functions':
@@ -128,6 +130,7 @@ pages:
                 - toc: 'os/core_os/memory_pool/memory_pool.md'
                 - 'Functions/Macros':
                     - 'os_memblock_get': 'os/core_os/memory_pool/os_memblock_get.md'
+                    - 'os_mempool_info_get_next': 'os/core_os/memory_pool/os_mempool_info_get_next.md'
                     - 'os_mempool_init': 'os/core_os/memory_pool/os_mempool_init.md'
                     - 'os_memblock_put': 'os/core_os/memory_pool/os_memblock_put.md'
                     - 'OS_MEMPOOL_BYTES': 'os/core_os/memory_pool/OS_MEMPOOL_BYTES.md'